109 lines
4.0 KiB
PHP
109 lines
4.0 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
// 🔹 Настройки OpenAI API
|
|||
|
|
const OPENAI_ASSISTANT_API = 'http://195.133.66.13:8000/v1/assistants';
|
|||
|
|
const OPENAI_FILES_API = 'http://195.133.66.13:8000/v1/files';
|
|||
|
|
const OPENAI_API_KEY = 'sk-NsasXO7IPLdzUSNaAy64R3EBveyIZNfIV3PaOEq5_WT3BlbkFJWTivsJpMK1J2YPfVDSMCrU6hQMxwEy64RktHVWEvEA'; // Замените на ваш API-ключ
|
|||
|
|
const LOG_FILE = 'logs/assistants.log'; // Файл для логирования
|
|||
|
|
|
|||
|
|
// 🔹 Функция логирования
|
|||
|
|
function logMessage($message) {
|
|||
|
|
file_put_contents(LOG_FILE, date('Y-m-d H:i:s') . " - " . $message . "\n", FILE_APPEND | LOCK_EX);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 🔹 1️⃣ Получение списка ассистентов
|
|||
|
|
function listAssistants() {
|
|||
|
|
logMessage("Запрос списка ассистентов...");
|
|||
|
|
|
|||
|
|
$curl = curl_init();
|
|||
|
|
curl_setopt_array($curl, [
|
|||
|
|
CURLOPT_URL => OPENAI_ASSISTANT_API,
|
|||
|
|
CURLOPT_RETURNTRANSFER => true,
|
|||
|
|
CURLOPT_HTTPHEADER => [
|
|||
|
|
'Content-Type: application/json',
|
|||
|
|
'Authorization: Bearer ' . OPENAI_API_KEY,
|
|||
|
|
'OpenAI-Beta: assistants=v2'
|
|||
|
|
]
|
|||
|
|
]);
|
|||
|
|
|
|||
|
|
$response = curl_exec($curl);
|
|||
|
|
curl_close($curl);
|
|||
|
|
|
|||
|
|
$decodedResponse = json_decode($response, true);
|
|||
|
|
return $decodedResponse['data'] ?? [];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 🔹 2️⃣ Получение списка загруженных файлов
|
|||
|
|
function listFilesForAssistant() {
|
|||
|
|
logMessage("Запрос списка загруженных файлов...");
|
|||
|
|
|
|||
|
|
$curl = curl_init();
|
|||
|
|
curl_setopt_array($curl, [
|
|||
|
|
CURLOPT_URL => OPENAI_FILES_API,
|
|||
|
|
CURLOPT_RETURNTRANSFER => true,
|
|||
|
|
CURLOPT_HTTPHEADER => [
|
|||
|
|
'Content-Type: application/json',
|
|||
|
|
'Authorization: Bearer ' . OPENAI_API_KEY,
|
|||
|
|
'OpenAI-Beta: assistants=v2'
|
|||
|
|
]
|
|||
|
|
]);
|
|||
|
|
|
|||
|
|
$response = curl_exec($curl);
|
|||
|
|
curl_close($curl);
|
|||
|
|
|
|||
|
|
$decodedResponse = json_decode($response, true);
|
|||
|
|
return $decodedResponse['data'] ?? [];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 🔹 3️⃣ Основной скрипт
|
|||
|
|
logMessage("Запуск скрипта для получения списка ассистентов и их документов.");
|
|||
|
|
|
|||
|
|
echo "<h1>Список ассистентов и загруженных файлов</h1>";
|
|||
|
|
|
|||
|
|
$assistants = listAssistants();
|
|||
|
|
$files = listFilesForAssistant();
|
|||
|
|
|
|||
|
|
$fileMap = [];
|
|||
|
|
foreach ($files as $file) {
|
|||
|
|
$fileMap[$file['id']] = $file['filename'] ?? 'Неизвестное имя';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!empty($assistants)) {
|
|||
|
|
logMessage("Вывод списка ассистентов в таблицу.");
|
|||
|
|
|
|||
|
|
echo "<table border='1'>";
|
|||
|
|
echo "<tr><th>ID</th><th>Имя</th><th>Модель</th><th>Инструкции</th><th>Создан</th><th>Файлы</th></tr>";
|
|||
|
|
|
|||
|
|
foreach ($assistants as $assistant) {
|
|||
|
|
echo "<tr>";
|
|||
|
|
echo "<td>" . htmlspecialchars($assistant['id']) . "</td>";
|
|||
|
|
echo "<td>" . htmlspecialchars($assistant['name']) . "</td>";
|
|||
|
|
echo "<td>" . htmlspecialchars($assistant['model']) . "</td>";
|
|||
|
|
echo "<td><pre>" . htmlspecialchars($assistant['instructions']) . "</pre></td>";
|
|||
|
|
echo "<td>" . date('Y-m-d H:i:s', $assistant['created_at']) . "</td>";
|
|||
|
|
|
|||
|
|
// 🔹 Выводим файлы, загруженные в ассистента
|
|||
|
|
$fileList = [];
|
|||
|
|
foreach ($assistant['tools'] ?? [] as $tool) {
|
|||
|
|
if ($tool['type'] === 'file_search') {
|
|||
|
|
foreach ($tool['file_ids'] ?? [] as $fileId) {
|
|||
|
|
$fileList[] = $fileMap[$fileId] ?? "Неизвестный файл ($fileId)";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo "<td>" . (!empty($fileList) ? implode("<br>", $fileList) : "Нет загруженных файлов") . "</td>";
|
|||
|
|
echo "</tr>";
|
|||
|
|
|
|||
|
|
logMessage("Ассистент: " . json_encode($assistant, JSON_UNESCAPED_UNICODE));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo "</table>";
|
|||
|
|
} else {
|
|||
|
|
logMessage("Ошибка: список ассистентов пуст.");
|
|||
|
|
echo "<p>Ошибка: список ассистентов пуст.</p>";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
logMessage("Завершение работы скрипта.");
|
|||
|
|
?>
|