64 lines
3.1 KiB
PHP
Executable File
64 lines
3.1 KiB
PHP
Executable File
<?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;
|
||
}
|
||
?>
|