Files
sbnews/server/app/common/service/ai/AiAssistantOrchestrator.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(),
];
}
}