27 lines
890 B
PHP
27 lines
890 B
PHP
<?php
|
|
|
|
namespace app\common\service\ai;
|
|
|
|
class AiAssistantOrchestrator
|
|
{
|
|
public static function run(string $message, array $historyMessages, int $userId, int $sessionId): array
|
|
{
|
|
$trace = new AiAssistantTrace($message, $historyMessages);
|
|
|
|
$trace->plan = AiAssistantPlanner::plan($message, $historyMessages);
|
|
$trace = AiAssistantRetriever::retrieve($trace, $userId, $sessionId);
|
|
$trace = AiAssistantRanker::rank($trace);
|
|
$trace = AiAssistantResponder::respond($trace);
|
|
|
|
return [
|
|
'success' => !empty($trace->responseResult['success']),
|
|
'answer' => $trace->finalAnswer,
|
|
'sources' => $trace->finalSources,
|
|
'context_text' => $trace->contextText,
|
|
'plan' => $trace->plan,
|
|
'result' => $trace->responseResult,
|
|
'trace' => $trace->toArray(),
|
|
];
|
|
}
|
|
}
|