solver-sdk
Version:
SDK для интеграции с Code Solver Backend API
140 lines (110 loc) • 4.36 kB
Markdown
const { CodeSolverSDK } = require('solver-sdk');
// Создаем экземпляр SDK с настройками
const sdk = new CodeSolverSDK({
baseURL: 'https://api.example.com',
apiKey: 'your-api-key'
});
```
```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);
```
```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` | Уведомление об ошибке |
Эта документация описывает, как использовать WebSocket соединения через Solver SDK для работы в реальном времени.
```javascript