UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API

140 lines (110 loc) 4.36 kB
# Работа с WebSocket в Solver SDK Эта документация описывает, как использовать WebSocket соединения через Solver SDK для работы в реальном времени. ## Инициализация SDK ```javascript const { CodeSolverSDK } = require('solver-sdk'); // Создаем экземпляр SDK с настройками const sdk = new CodeSolverSDK({ baseURL: 'https://api.example.com', apiKey: 'your-api-key' }); ``` ## Работа с рассуждениями (Reasoning) ### Создание рассуждения и получение результатов в реальном времени ```javascript // Создание рассуждения const reasoning = await sdk.reasoning.createReasoning({ projectId: 'project-id', query: 'Объясни этот проект' }); // Подключение к WebSocket await sdk.reasoning.connectWebSocket(reasoning.id); // Подписка на события sdk.reasoning.on('thinking', (data) => { console.log('Мышление:', data.content); }); sdk.reasoning.on('complete', (data) => { console.log('Результат:', data.content); // Отключение после завершения sdk.reasoning.disconnectWebSocket(); }); // Запуск рассуждения await sdk.reasoning.startReasoning(reasoning.id); ``` ## Потоковый чат с мышлением AI ```javascript // Обработчик событий для потокового получения ответа и мышления const handleEvent = (eventType, data) => { if (eventType === 'thinking_delta' && data.thinking) { console.log('Мышление:', data.thinking); } else if (eventType === 'text_delta' && data.text) { process.stdout.write(data.text); } else if (eventType === 'message_stop') { console.log('\nОтвет завершен'); } }; // Отправка запроса const messages = [ { role: 'user', content: 'Расскажи о JavaScript' } ]; const options = { model: 'claude-3-7-sonnet-20240229', thinking: true, temperature: 0.7 }; // Отправка с потоковым получением ответа const response = await sdk.chat.streamChatWithThinking( messages, options, handleEvent ); ``` ## Мониторинг индексации проектов ```javascript // Подключение к WebSocket для проектов await sdk.projects.connectWebSocket(); // Отслеживание прогресса индексации sdk.projects.on('indexing_progress', (data) => { console.log(`Прогресс индексации: ${data.progress}%`); console.log(`Обработано файлов: ${data.processedFiles} из ${data.totalFiles}`); }); // Завершение индексации sdk.projects.on('indexing_complete', (data) => { console.log('Индексация завершена!', data.success ? 'Успешно' : 'С ошибками'); // Отключение после завершения sdk.projects.disconnectWebSocket(); }); ``` ## Работа с зависимостями ```javascript // Подключение к пространству имен зависимостей await sdk.dependencies.connectWebSocket(projectId); // Подписка на события зависимостей sdk.dependencies.on('dependency_update', (data) => { console.log('Обновление зависимостей:', data); }); // Отключение await sdk.dependencies.disconnectWebSocket(); ``` ## Обработка ошибок ```javascript try { await sdk.chat.streamChatWithThinking( messages, options, handleEvent ); } catch (error) { console.error('Произошла ошибка:', error.message); } ``` ## Основные события | Событие | Описание | |---------|----------| | `message_start` | Начало сообщения | | `thinking_delta` | Обновление мышления AI | | `text_delta` | Часть текстового ответа | | `message_stop` | Конец сообщения | | `indexing_progress` | Прогресс индексации | | `indexing_complete` | Завершение индексации | | `error` | Уведомление об ошибке |