deploy: auto commit server changes 2026-06-12 14:57:05
This commit is contained in:
@@ -31,7 +31,6 @@ class AiAssistantService
|
||||
}
|
||||
|
||||
$history = self::historyMessages((int) $session->id);
|
||||
$context = AiAssistantContextService::build($message, $userId, (int) $session->id);
|
||||
|
||||
AiChatMessage::create([
|
||||
'session_id' => (int) $session->id,
|
||||
@@ -45,24 +44,29 @@ class AiAssistantService
|
||||
'update_time' => time(),
|
||||
]);
|
||||
|
||||
$messages = self::buildModelMessages($history, $message, $context);
|
||||
$result = self::callAssistantModel($messages);
|
||||
$orchestrated = AiAssistantOrchestrator::run($message, $history, $userId, (int) $session->id);
|
||||
$result = is_array($orchestrated['result'] ?? null)
|
||||
? $orchestrated['result']
|
||||
: ['success' => false, 'error' => 'AI助手模型服务暂时不可用', 'tokens' => 0];
|
||||
|
||||
$status = !empty($result['success']) ? AiChatMessage::STATUS_SUCCESS : AiChatMessage::STATUS_FAILED;
|
||||
$answer = !empty($result['success'])
|
||||
? trim((string) ($result['content'] ?? ''))
|
||||
: 'AI助手暂时没有生成成功,请稍后再试。';
|
||||
$answer = trim((string) ($orchestrated['answer'] ?? ($result['content'] ?? '')));
|
||||
if ($answer === '' && empty($result['success'])) {
|
||||
$answer = 'AI助手暂时没有生成成功,请稍后再试。';
|
||||
}
|
||||
if ($answer === '') {
|
||||
$answer = '我暂时没有找到足够的站内依据,请换个关键词再问一次。';
|
||||
}
|
||||
|
||||
$sources = is_array($orchestrated['sources'] ?? null) ? $orchestrated['sources'] : [];
|
||||
|
||||
$assistantMessage = AiChatMessage::create([
|
||||
'session_id' => (int) $session->id,
|
||||
'user_id' => $userId,
|
||||
'client_id' => $clientId,
|
||||
'role' => AiChatMessage::ROLE_ASSISTANT,
|
||||
'content' => $answer,
|
||||
'sources_json' => json_encode($context['sources'] ?? [], JSON_UNESCAPED_UNICODE),
|
||||
'sources_json' => json_encode($sources, JSON_UNESCAPED_UNICODE),
|
||||
'model' => (string) ($result['model'] ?? self::defaultModelOptions()['model']),
|
||||
'tokens_used' => (int) ($result['tokens'] ?? 0),
|
||||
'cost_ms' => (int) ($result['cost_ms'] ?? 0),
|
||||
@@ -85,7 +89,7 @@ class AiAssistantService
|
||||
'data' => [
|
||||
'session' => self::formatSession($session->toArray()),
|
||||
'message' => self::formatMessage($assistantMessage->toArray()),
|
||||
'sources' => $context['sources'] ?? [],
|
||||
'sources' => $sources,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user