Download?????? ???????????? ?? ?????????? AI ???? ? ?????? ?????????? ??????? ??? ?? Ascoos OS ?????? ?? ????????? macros ????? ?????????? AI, ???????????? ????????? ???????????? ?? DSL (Domain-Specific Language). ???????????????? ?? ??????? TArtificialIntelligenceHandler , AbstractDslAstBuilder ??? AstMacroTranslator ??? ?? ????????????? ??? ???????, ?? ?????????? ??????? ?? AST, ?? ???? ???????????? ?? ???????????? ??? ?? ???? ??????????? ????????. ?????? - ?????????? ???????? ?? `trainLogisticRegression()`
- ?????????? AST ??? DSL ?? `AbstractDslAstBuilder`
- ????????? AST ?? ?????????? macros ?? `AstMacroTranslator`
- ???????? ??? macros ???? ?? ?????????? ??????????? ???????
?????? ??????? ??? Ascoos OS - TArtificialIntelligenceHandler ?????????? ??? ???????? ???????? ?????????? ?????????????
- AbstractDslAstBuilder ??????? DSL ??????? ?? Abstract Syntax Tree
- AstMacroTranslator ????????? AST ?? container ?? callbacks ??? ???? macro
???? ??????? ? ?????? ??????????? ?? ??? ?????? PHP: - macro_decision_engine.php ???????? ???????? ??? ??????: ??????? ?????????, ??????????, DSL parsing, ????????? ??? ???????? macros. ?????????????? - PHP ? 8.2
- ????????????? ?? Ascoos OS. ?? ?????????????? ??
ASCOOS Web Extended Studio (AWES) 26 , ????? ??? ????????????????. ?????????? - ??????????? ?? training data (`$X`, `$y`) ???? ???????.
-
????????? ?? script ???? web server: https://localhost/aos/examples/case-studies/ai/macro_decision_engine/macro_decision_engine.php
?????????? DSL WHEN predict(user.features) > 0.5 THEN LOG "User is eligible" ENABLE MODULE "AdvancedAnalytics" ??? ????????? - ? `TArtificialIntelligenceHandler` ?????????? ??? ??????? logistic regression ?? ???????? `$X` ??? `$y`.
- ?? `AbstractDslAstBuilder` ?????????? ?? DSL script ?? AST nodes.
- ? `AstMacroTranslator` ??????????? ???? node ?? callback: - `LOG` ? ???????? ????????? - `ENABLE MODULE` ? ???????????? ????????????? module - `predict` ? ????? ?? `predictLogisticRegression()`
- ?? `TMacroHandler` ??????? ??? ??????? ???? ?? ? ???????? ?????????? ?? ???? (`> 0.5`).
?????????? ?????? // ?????????? ???????? $ai = new TArtificialIntelligenceHandler(); $model = $ai->trainLogisticRegression($X, $y); // DSL script $dsl = <<<DSL WHEN predict(user.features) > 0.5 THEN LOG "User is eligible" ENABLE MODULE "AdvancedAnalytics" DSL; // AST & ????????? $astBuilder = new class extends AbstractDslAstBuilder {}; $ast = $astBuilder->buildAst($dsl); $translator = new class([...]) extends AstMacroTranslator {}; $macroContainer = $translator->translateAst($ast); // ???????? ????? ?????? $user = ['features' => [1, 1, 0]]; $macroContainer->executeIfTrue($user); ??????????? ?????????? ??? ? ???????? predict([1,1,0]) > 0.5: ? User is eligible ? Module enabled: AdvancedAnalytics ????? ?????????? ?????? ?? ???????????? ?? ???? ?? ?????? ??????????; ????? fork ?? ??????????, ????????? ??? macros ? ?????????? DSL ??? macro_decision_engine.php ??? ????????? pull request. ????? ?? CONTRIBUTING.md ??? ???????. ????? ?????? ???? ? ?????? ?????????? ?????????? ??? ??? Ascoos General License (AGL). ????? ?? LICENSE. |