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. |