Files
crm.clientright.ru/aiassist/gpt_handler.php

64 lines
3.1 KiB
PHP
Raw Normal View History

<?php
// assistance/gpt_handler.php
/**
* Функция формирования запроса и получения финального анализа от GPT.
*
* @param string $combinedContent Объединённый текст для анализа (например, объединённый текст всех документов кейса).
* @param array $searchResults Результаты семантического поиска, которые можно использовать как контекст.
* @param array $caseDetails Извлечённые данные (истец, ответчик, суть спора) для уточнения запроса.
* @return array Результат анализа от GPT, включая вывод и вердикт.
*/
function analyzeDocumentWithGPT($combinedContent, $searchResults, $caseDetails) {
// Формируем промпт для GPT, объединяя информацию:
$prompt = "Проанализируй следующие данные:\n";
$prompt .= "Детали кейса:\n";
$prompt .= "Истец: " . ($caseDetails['истец'] ?? 'Не определено') . "\n";
$prompt .= "Ответчик: " . ($caseDetails['ответчик'] ?? 'Не определено') . "\n";
$prompt .= "Суть спора: " . ($caseDetails['суть_спора'] ?? 'Не определено') . "\n\n";
$prompt .= "Содержимое документов:\n" . $combinedContent . "\n\n";
$prompt .= "Найденные похожие решения:\n" . json_encode($searchResults, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n";
$prompt .= "Сформируй подробный анализ, укажи вердикт, вероятность выигрыша дела, а также рекомендации по дальнейшим действиям.";
// Параметры для запроса к OpenAI
$data = [
"assistant_id" => ASSISTANT_ID,
"thread" => [
"messages" => [
["role" => "user", "content" => $prompt]
]
],
"stream" => false
];
$payload = json_encode($data, JSON_UNESCAPED_UNICODE);
// Настройка cURL для запроса в OpenAI
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => OPENAI_THREADS_API . "/runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . OPENAI_API_KEY,
'OpenAI-Beta: assistants=v2'
]
]);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
if ($curlError) {
logMessage("Ошибка cURL в analyzeDocumentWithGPT: " . $curlError);
return null;
}
$result = json_decode($response, true);
// Здесь можно добавить дополнительную обработку ответа, например, извлечение вердикта
return $result;
}
?>