solver-sdk 1.8.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +176 -468
- package/dist/cjs/api/{chat-api.js → chat-api/index.js} +77 -125
- package/dist/cjs/api/chat-api/index.js.map +1 -0
- package/dist/cjs/api/chat-api/interfaces.js +3 -0
- package/dist/cjs/api/chat-api/interfaces.js.map +1 -0
- package/dist/cjs/api/chat-api/models.js +6 -0
- package/dist/cjs/api/chat-api/models.js.map +1 -0
- package/dist/cjs/api/chat-api/stream-utils.js +192 -0
- package/dist/cjs/api/chat-api/stream-utils.js.map +1 -0
- package/dist/cjs/api/chat-api/websocket-helpers.js +211 -0
- package/dist/cjs/api/chat-api/websocket-helpers.js.map +1 -0
- package/dist/cjs/api/projects-api.js +279 -5
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +12 -17
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/constants/websocket-events.constants.js +77 -52
- package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
- package/dist/cjs/utils/code-solver-websocket-client.js +87 -56
- package/dist/cjs/utils/code-solver-websocket-client.js.map +1 -1
- package/dist/cjs/utils/http-client.js +7 -0
- package/dist/cjs/utils/http-client.js.map +1 -1
- package/dist/cjs/utils/reasoning-auth-helper.js +58 -0
- package/dist/cjs/utils/reasoning-auth-helper.js.map +1 -0
- package/dist/cjs/utils/websocket-client.js +37 -10
- package/dist/cjs/utils/websocket-client.js.map +1 -1
- package/dist/esm/api/{chat-api.js → chat-api/index.js} +74 -125
- package/dist/esm/api/chat-api/index.js.map +1 -0
- package/dist/esm/api/chat-api/interfaces.js +2 -0
- package/dist/esm/api/chat-api/interfaces.js.map +1 -0
- package/dist/esm/api/chat-api/models.js +5 -0
- package/dist/esm/api/chat-api/models.js.map +1 -0
- package/dist/esm/api/chat-api/stream-utils.js +188 -0
- package/dist/esm/api/chat-api/stream-utils.js.map +1 -0
- package/dist/esm/api/chat-api/websocket-helpers.js +205 -0
- package/dist/esm/api/chat-api/websocket-helpers.js.map +1 -0
- package/dist/esm/api/projects-api.js +279 -5
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +10 -15
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/constants/websocket-events.constants.js +76 -51
- package/dist/esm/constants/websocket-events.constants.js.map +1 -1
- package/dist/esm/utils/code-solver-websocket-client.js +87 -56
- package/dist/esm/utils/code-solver-websocket-client.js.map +1 -1
- package/dist/esm/utils/http-client.js +7 -0
- package/dist/esm/utils/http-client.js.map +1 -1
- package/dist/esm/utils/reasoning-auth-helper.js +54 -0
- package/dist/esm/utils/reasoning-auth-helper.js.map +1 -0
- package/dist/esm/utils/websocket-client.js +37 -10
- package/dist/esm/utils/websocket-client.js.map +1 -1
- package/dist/types/api/chat-api/index.d.ts +81 -0
- package/dist/types/api/chat-api/index.d.ts.map +1 -0
- package/dist/types/api/chat-api/interfaces.d.ts +47 -0
- package/dist/types/api/chat-api/interfaces.d.ts.map +1 -0
- package/dist/types/api/{chat-api.d.ts → chat-api/models.d.ts} +10 -73
- package/dist/types/api/chat-api/models.d.ts.map +1 -0
- package/dist/types/api/chat-api/stream-utils.d.ts +31 -0
- package/dist/types/api/chat-api/stream-utils.d.ts.map +1 -0
- package/dist/types/api/chat-api/websocket-helpers.d.ts +40 -0
- package/dist/types/api/chat-api/websocket-helpers.d.ts.map +1 -0
- package/dist/types/api/projects-api.d.ts +114 -1
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +1 -1
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/constants/websocket-events.constants.d.ts +65 -36
- package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
- package/dist/types/interfaces/http-client.d.ts +1 -1
- package/dist/types/interfaces/http-client.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +8 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/code-solver-websocket-client.d.ts +44 -43
- package/dist/types/utils/code-solver-websocket-client.d.ts.map +1 -1
- package/dist/types/utils/http-client.d.ts +5 -0
- package/dist/types/utils/http-client.d.ts.map +1 -1
- package/dist/types/utils/reasoning-auth-helper.d.ts +24 -0
- package/dist/types/utils/reasoning-auth-helper.d.ts.map +1 -0
- package/dist/types/utils/websocket-client.d.ts +6 -0
- package/dist/types/utils/websocket-client.d.ts.map +1 -1
- package/docs/API_REFERENCE.md +432 -0
- package/docs/AUTHENTICATION.md +179 -0
- package/docs/ERROR_HANDLING.md +240 -0
- package/docs/INTEGRATION_EXAMPLES.md +342 -0
- package/docs/PING_PONG.md +212 -0
- package/docs/README.md +102 -0
- package/docs/WEBSOCKET.md +299 -0
- package/docs/advanced/PING_PONG.md +212 -0
- package/docs/features/THINKING.md +158 -0
- package/docs/indexing/INDEXING.md +231 -0
- package/package.json +4 -3
- package/dist/cjs/api/chat-api.js.map +0 -1
- package/dist/esm/api/chat-api.js.map +0 -1
- package/dist/types/api/chat-api.d.ts.map +0 -1
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# WebSocket Ping/Pong механизм
|
|
2
|
+
|
|
3
|
+
Данный документ описывает механизм поддержания WebSocket соединений и мониторинга их состояния через ping/pong обмен.
|
|
4
|
+
|
|
5
|
+
## Обзор функциональности
|
|
6
|
+
|
|
7
|
+
SDK поддерживает автоматический механизм отправки ping-сообщений и обработки pong-ответов для:
|
|
8
|
+
|
|
9
|
+
1. **Проверки активности соединения** - обнаружение разрывов соединения даже в отсутствие активности
|
|
10
|
+
2. **Измерения времени отклика (Round Trip Time, RTT)** - мониторинг качества соединения
|
|
11
|
+
3. **Сбора статистики соединения** - для диагностики и отладки
|
|
12
|
+
4. **Автоматического обнаружения проблем** - уведомление о потере соединения
|
|
13
|
+
|
|
14
|
+
## Включение механизма ping/pong
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
import { CodeSolverSDK, WebSocketNamespace } from 'solver-sdk';
|
|
18
|
+
|
|
19
|
+
// Создаем экземпляр SDK
|
|
20
|
+
const sdk = new CodeSolverSDK({
|
|
21
|
+
baseURL: 'https://api.example.com',
|
|
22
|
+
apiKey: 'your-api-key'
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Получаем WebSocket клиент
|
|
26
|
+
const wsClient = sdk.getWebSocketClient();
|
|
27
|
+
|
|
28
|
+
// Подключаемся к пространствам имен
|
|
29
|
+
await wsClient.connectToReasoning();
|
|
30
|
+
await wsClient.connectToDependencies();
|
|
31
|
+
await wsClient.connectToIndexing();
|
|
32
|
+
|
|
33
|
+
// Включаем автоматический механизм ping/pong
|
|
34
|
+
// параметры: интервал отправки в мс (по умолчанию 30000) и порог таймаута (по умолчанию 3)
|
|
35
|
+
wsClient.enablePingPong(10000, 3);
|
|
36
|
+
|
|
37
|
+
// Регистрируем обработчик для события таймаута соединения
|
|
38
|
+
wsClient.onPingPongEvent('connection_timeout', (data) => {
|
|
39
|
+
console.log(`Соединение потеряно для namespace ${data.namespace}`);
|
|
40
|
+
console.log(`Socket ID: ${data.socketId}`);
|
|
41
|
+
console.log(`Количество пропущенных pong: ${data.timeouts}`);
|
|
42
|
+
|
|
43
|
+
// Здесь можно добавить логику переподключения или уведомления пользователя
|
|
44
|
+
});
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Отключение механизма ping/pong
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
// Отключение для всех пространств имен
|
|
51
|
+
wsClient.disablePingPong();
|
|
52
|
+
|
|
53
|
+
// Отключение для конкретного пространства имен
|
|
54
|
+
wsClient.disablePingPong(WebSocketNamespace.REASONING);
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Получение статистики ping/pong
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
// Получение статистики для всех пространств имен
|
|
61
|
+
const allStats = wsClient.getPingStats();
|
|
62
|
+
console.log('Статистика для всех соединений:', allStats);
|
|
63
|
+
|
|
64
|
+
// Получение статистики для конкретного пространства имен
|
|
65
|
+
const reasoningStats = wsClient.getPingStats(WebSocketNamespace.REASONING);
|
|
66
|
+
console.log('Статистика для reasoning:', reasoningStats);
|
|
67
|
+
|
|
68
|
+
// Пример содержимого статистики:
|
|
69
|
+
// {
|
|
70
|
+
// namespace: '/reasoning',
|
|
71
|
+
// socketId: 'socket-id-123',
|
|
72
|
+
// pingSent: 10, // Количество отправленных ping
|
|
73
|
+
// pongReceived: 10, // Количество полученных pong
|
|
74
|
+
// averageRtt: 15.5, // Среднее время отклика (мс)
|
|
75
|
+
// minRtt: 5, // Минимальное время отклика (мс)
|
|
76
|
+
// maxRtt: 45, // Максимальное время отклика (мс)
|
|
77
|
+
// lastRtt: 12, // Последнее измеренное время отклика (мс)
|
|
78
|
+
// lastPongTimestamp: 1712345678901, // Timestamp последнего полученного pong
|
|
79
|
+
// isConnected: true // Текущий статус соединения
|
|
80
|
+
// }
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Ручная отправка ping/pong
|
|
84
|
+
|
|
85
|
+
Хотя SDK обеспечивает автоматический механизм ping/pong, вы также можете вручную отправлять ping-сообщения:
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
// Отправка ping и получение pong
|
|
89
|
+
wsClient.send(WebSocketNamespace.REASONING, 'connection_ping', {
|
|
90
|
+
timestamp: Date.now()
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// Добавление обработчика для pong-ответов
|
|
94
|
+
wsClient.on('connection_pong', (data) => {
|
|
95
|
+
const rtt = Date.now() - data.echo;
|
|
96
|
+
console.log(`Получен pong, RTT: ${rtt}ms`);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
// Альтернативно, можно использовать готовый обработчик
|
|
100
|
+
wsClient.on('connection_pong', wsClient.getPongHandler());
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Обработка отключений и переподключение
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
// Обработка события таймаута соединения
|
|
107
|
+
wsClient.onPingPongEvent('connection_timeout', async (data) => {
|
|
108
|
+
console.log(`Соединение потеряно для ${data.namespace}`);
|
|
109
|
+
|
|
110
|
+
// Попытка переподключения
|
|
111
|
+
try {
|
|
112
|
+
// Отключаемся от проблемного пространства имен
|
|
113
|
+
wsClient.disconnect(data.namespace);
|
|
114
|
+
|
|
115
|
+
// Пауза перед повторным подключением
|
|
116
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
117
|
+
|
|
118
|
+
// Переподключаемся
|
|
119
|
+
switch (data.namespace) {
|
|
120
|
+
case WebSocketNamespace.REASONING:
|
|
121
|
+
await wsClient.connectToReasoning();
|
|
122
|
+
break;
|
|
123
|
+
case WebSocketNamespace.DEPENDENCIES:
|
|
124
|
+
await wsClient.connectToDependencies();
|
|
125
|
+
break;
|
|
126
|
+
case WebSocketNamespace.INDEXING:
|
|
127
|
+
await wsClient.connectToIndexing();
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
console.log(`Успешно переподключились к ${data.namespace}`);
|
|
132
|
+
} catch (error) {
|
|
133
|
+
console.error(`Ошибка при переподключении к ${data.namespace}:`, error);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Рекомендации по использованию
|
|
139
|
+
|
|
140
|
+
1. **Интервал ping/pong**: Рекомендуемый интервал - 30 секунд для продакшн и 5-10 секунд для отладки.
|
|
141
|
+
|
|
142
|
+
2. **Порог таймаута**: Значение 2-3 пропущенных ping/pong позволяет избежать ложных срабатываний при временных задержках сети.
|
|
143
|
+
|
|
144
|
+
3. **Экономия трафика**: При частой передаче данных через WebSocket можно увеличить интервал ping/pong, так как регулярный обмен данными уже поддерживает соединение активным.
|
|
145
|
+
|
|
146
|
+
4. **Мониторинг RTT**: Используйте statsPingStats для мониторинга задержек сети и раннего обнаружения проблем с соединением.
|
|
147
|
+
|
|
148
|
+
5. **Отключение перед закрытием приложения**: Вызывайте disablePingPong() и затем disconnectAll() при закрытии приложения для корректного освобождения ресурсов.
|
|
149
|
+
|
|
150
|
+
## Пример комплексного использования
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
async function setupWebSocketWithHealthMonitoring() {
|
|
154
|
+
const sdk = new CodeSolverSDK({
|
|
155
|
+
baseURL: 'https://api.example.com',
|
|
156
|
+
apiKey: 'your-api-key',
|
|
157
|
+
websocket: {
|
|
158
|
+
reconnect: true,
|
|
159
|
+
reconnectAttempts: 5,
|
|
160
|
+
reconnectDelay: 2000
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
const wsClient = sdk.getWebSocketClient();
|
|
165
|
+
|
|
166
|
+
// Подключаемся ко всем пространствам имен
|
|
167
|
+
await wsClient.connectToReasoning();
|
|
168
|
+
await wsClient.connectToDependencies();
|
|
169
|
+
await wsClient.connectToIndexing();
|
|
170
|
+
|
|
171
|
+
// Включаем механизм ping/pong для всех соединений
|
|
172
|
+
wsClient.enablePingPong(20000, 3);
|
|
173
|
+
|
|
174
|
+
// Регистрируем обработчик для события таймаута
|
|
175
|
+
wsClient.onPingPongEvent('connection_timeout', handleConnectionTimeout);
|
|
176
|
+
|
|
177
|
+
// Периодически проверяем статистику соединений
|
|
178
|
+
const statsInterval = setInterval(() => {
|
|
179
|
+
const stats = wsClient.getPingStats();
|
|
180
|
+
|
|
181
|
+
// Анализируем статистику
|
|
182
|
+
for (const stat of stats) {
|
|
183
|
+
if (stat.averageRtt > 500) {
|
|
184
|
+
console.warn(`Высокая задержка для ${stat.namespace}: ${stat.averageRtt}ms`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}, 60000); // Проверка каждую минуту
|
|
188
|
+
|
|
189
|
+
// Функция для обработки таймаута соединения
|
|
190
|
+
async function handleConnectionTimeout(data) {
|
|
191
|
+
console.error(`Соединение потеряно для ${data.namespace}`);
|
|
192
|
+
|
|
193
|
+
// Логика переподключения...
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// Функция для корректного закрытия соединений
|
|
197
|
+
function cleanup() {
|
|
198
|
+
clearInterval(statsInterval);
|
|
199
|
+
wsClient.disablePingPong();
|
|
200
|
+
wsClient.disconnectAll();
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Возвращаем функцию очистки
|
|
204
|
+
return cleanup;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Использование
|
|
208
|
+
const cleanup = await setupWebSocketWithHealthMonitoring();
|
|
209
|
+
|
|
210
|
+
// При закрытии приложения
|
|
211
|
+
window.addEventListener('beforeunload', cleanup);
|
|
212
|
+
```
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Потоковая передача мышления
|
|
2
|
+
|
|
3
|
+
Метод `streamChatWithThinking()` позволяет получать не только финальный ответ модели, но и её размышления в процессе формирования ответа. Этот подход даёт более глубокое понимание логики модели и возможность видеть её работу в режиме реального времени.
|
|
4
|
+
|
|
5
|
+
## Быстрый старт
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
const { CodeSolverSDK } = require('solver-sdk');
|
|
9
|
+
|
|
10
|
+
async function example() {
|
|
11
|
+
// Инициализация SDK
|
|
12
|
+
const sdk = new CodeSolverSDK({
|
|
13
|
+
baseURL: 'https://api.example.com',
|
|
14
|
+
apiKey: 'ваш-ключ-api'
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// Сообщения для отправки
|
|
18
|
+
const messages = [
|
|
19
|
+
{ role: 'user', content: 'Объясни, как работает квантовая криптография' }
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
// Опции запроса
|
|
23
|
+
const options = {
|
|
24
|
+
model: 'claude-3-7-sonnet-20240229',
|
|
25
|
+
thinking: true, // Включаем передачу мышления
|
|
26
|
+
temperature: 0.7
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// Обработчик потоковых данных
|
|
30
|
+
const handleStream = (eventType, data) => {
|
|
31
|
+
// Обработка мышления модели
|
|
32
|
+
if (eventType === 'content_block_delta' && data.delta?.type === 'thinking_delta') {
|
|
33
|
+
console.log('Мышление:', data.delta.thinking);
|
|
34
|
+
}
|
|
35
|
+
// Обработка текстового ответа
|
|
36
|
+
else if (eventType === 'content_block_delta' && data.delta?.type === 'text_delta') {
|
|
37
|
+
console.log('Ответ:', data.delta.text);
|
|
38
|
+
}
|
|
39
|
+
// Завершение ответа
|
|
40
|
+
else if (eventType === 'message_stop') {
|
|
41
|
+
console.log('Ответ завершён');
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
// Отправляем запрос с потоковым мышлением
|
|
47
|
+
await sdk.chat.streamChatWithThinking(
|
|
48
|
+
messages,
|
|
49
|
+
options,
|
|
50
|
+
handleStream
|
|
51
|
+
);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
// Обработка ошибок соединения
|
|
54
|
+
if (error.code === 'CONNECTION_ERROR') {
|
|
55
|
+
console.error('Проблема с подключением к серверу');
|
|
56
|
+
}
|
|
57
|
+
// Обработка прочих ошибок
|
|
58
|
+
else {
|
|
59
|
+
console.error('Произошла ошибка:', error.message);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
example();
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Метод streamChatWithThinking
|
|
68
|
+
|
|
69
|
+
### Синтаксис
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
sdk.chat.streamChatWithThinking(messages, options, callback)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Параметры
|
|
76
|
+
|
|
77
|
+
| Параметр | Тип | Описание |
|
|
78
|
+
|----------|-----|----------|
|
|
79
|
+
| `messages` | Array | Массив сообщений для отправки модели |
|
|
80
|
+
| `options` | Object | Параметры запроса, включая модель и флаг `thinking: true` |
|
|
81
|
+
| `callback` | Function | Функция обратного вызова для обработки событий потока |
|
|
82
|
+
|
|
83
|
+
### Возвращаемое значение
|
|
84
|
+
|
|
85
|
+
Промис, который разрешается объектом с информацией о соединении:
|
|
86
|
+
|
|
87
|
+
```javascript
|
|
88
|
+
{
|
|
89
|
+
status: 'streaming',
|
|
90
|
+
socketId: 'socket_12345678',
|
|
91
|
+
provider: 'AnthropicProviderAdapter',
|
|
92
|
+
model: 'claude-3-7-sonnet-20240229'
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Примеры использования
|
|
97
|
+
|
|
98
|
+
### Обработка мышления и ответа с выводом в UI
|
|
99
|
+
|
|
100
|
+
```javascript
|
|
101
|
+
// Предполагаем наличие элементов UI для вывода мышления и ответа
|
|
102
|
+
const thinkingElement = document.getElementById('thinking-output');
|
|
103
|
+
const responseElement = document.getElementById('response-output');
|
|
104
|
+
|
|
105
|
+
// Обработчик потока
|
|
106
|
+
const handleStream = (eventType, data) => {
|
|
107
|
+
if (eventType === 'content_block_delta') {
|
|
108
|
+
// Обработка мышления
|
|
109
|
+
if (data.delta?.type === 'thinking_delta') {
|
|
110
|
+
thinkingElement.textContent += data.delta.thinking;
|
|
111
|
+
}
|
|
112
|
+
// Обработка ответа
|
|
113
|
+
else if (data.delta?.type === 'text_delta') {
|
|
114
|
+
responseElement.textContent += data.delta.text;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// Отправка запроса
|
|
120
|
+
sdk.chat.streamChatWithThinking(
|
|
121
|
+
[{ role: 'user', content: userInput }],
|
|
122
|
+
{ model: 'claude-3-7-sonnet-20240229', thinking: true },
|
|
123
|
+
handleStream
|
|
124
|
+
);
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Обработка ошибок
|
|
128
|
+
|
|
129
|
+
```javascript
|
|
130
|
+
try {
|
|
131
|
+
await sdk.chat.streamChatWithThinking(
|
|
132
|
+
messages,
|
|
133
|
+
options,
|
|
134
|
+
handleStream
|
|
135
|
+
);
|
|
136
|
+
} catch (error) {
|
|
137
|
+
// Обработка ошибок соединения
|
|
138
|
+
if (error.code === 'CONNECTION_ERROR') {
|
|
139
|
+
console.error('Проблема с подключением к серверу');
|
|
140
|
+
}
|
|
141
|
+
// Обработка прочих ошибок
|
|
142
|
+
else {
|
|
143
|
+
console.error('Произошла ошибка:', error.message);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Рекомендации по использованию
|
|
149
|
+
|
|
150
|
+
- **Включайте режим мышления** только когда это необходимо (опция `thinking: true`), так как это увеличивает объем передаваемых данных
|
|
151
|
+
- **Используйте буферизацию** при отображении потоковых данных в UI, чтобы снизить нагрузку на рендеринг
|
|
152
|
+
- **Обрабатывайте все типы событий**, особенно `error` и `message_stop`
|
|
153
|
+
- **Учитывайте объем данных** - поток мышления может быть очень большим для сложных запросов
|
|
154
|
+
|
|
155
|
+
## Ограничения
|
|
156
|
+
|
|
157
|
+
- Не все модели поддерживают режим мышления (убедитесь, что используете совместимую модель)
|
|
158
|
+
- Требуется стабильное интернет-соединение для потоковой передачи
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# Индексация проектов
|
|
2
|
+
|
|
3
|
+
Это руководство описывает, как использовать SDK для индексации проектов и отдельных файлов.
|
|
4
|
+
|
|
5
|
+
## Инициализация SDK
|
|
6
|
+
|
|
7
|
+
Прежде чем использовать функции индексации, необходимо инициализировать SDK с указанием API ключа:
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import { CodeSolverSDK } from 'solver-sdk';
|
|
11
|
+
|
|
12
|
+
const sdk = new CodeSolverSDK({
|
|
13
|
+
baseURL: 'https://api.example.com',
|
|
14
|
+
apiKey: 'ваш_api_ключ', // API ключ обязателен для авторизации WebSocket соединений
|
|
15
|
+
});
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Индексация проекта
|
|
19
|
+
|
|
20
|
+
### Запуск индексации
|
|
21
|
+
|
|
22
|
+
Для запуска индексации проекта используйте метод `indexProject` или его псевдоним `startIndexing`:
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
// Полная индексация проекта
|
|
26
|
+
await sdk.projects.indexProject('идентификатор_проекта', {
|
|
27
|
+
indexingMode: 'full'
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Инкрементальная индексация (только изменившиеся файлы)
|
|
31
|
+
await sdk.projects.indexProject('идентификатор_проекта', {
|
|
32
|
+
indexingMode: 'incremental'
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// Автоматический выбор режима индексации (рекомендуется)
|
|
36
|
+
await sdk.projects.indexProject('идентификатор_проекта', {
|
|
37
|
+
indexingMode: 'auto'
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// Псевдоним startIndexing (работает аналогично indexProject)
|
|
41
|
+
await sdk.projects.startIndexing('идентификатор_проекта', {
|
|
42
|
+
indexingMode: 'auto'
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Режимы индексации
|
|
47
|
+
|
|
48
|
+
SDK поддерживает следующие режимы индексации:
|
|
49
|
+
|
|
50
|
+
- **full** - полная переиндексация всех файлов проекта
|
|
51
|
+
- **incremental** - индексация только изменившихся файлов (более быстрая)
|
|
52
|
+
- **auto** - автоматический выбор режима на основе метаданных проекта
|
|
53
|
+
|
|
54
|
+
Вы также можете использовать флаг `forceFull` для принудительной полной индексации:
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
await sdk.projects.indexProject('идентификатор_проекта', {
|
|
58
|
+
forceFull: true
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Фильтрация файлов
|
|
63
|
+
|
|
64
|
+
Можно указать шаблоны включения и исключения файлов:
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
await sdk.projects.indexProject('идентификатор_проекта', {
|
|
68
|
+
indexingMode: 'auto',
|
|
69
|
+
includePatterns: ['**/*.js', '**/*.ts', '**/*.jsx', '**/*.tsx'],
|
|
70
|
+
excludePatterns: ['**/node_modules/**', '**/dist/**', '**/build/**']
|
|
71
|
+
});
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Обновление индекса отдельных файлов
|
|
75
|
+
|
|
76
|
+
Для индексации одного файла используйте метод `updateFileIndex`:
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
// Индексация файла с чтением его содержимого с диска
|
|
80
|
+
await sdk.projects.updateFileIndex(
|
|
81
|
+
'идентификатор_проекта',
|
|
82
|
+
'путь/к/файлу.js'
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
// Индексация с передачей содержимого файла
|
|
86
|
+
await sdk.projects.updateFileIndex(
|
|
87
|
+
'идентификатор_проекта',
|
|
88
|
+
'путь/к/файлу.js',
|
|
89
|
+
{
|
|
90
|
+
content: 'содержимое файла',
|
|
91
|
+
force: true // Принудительная индексация, даже если файл не изменился
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
// С дополнительными опциями
|
|
96
|
+
await sdk.projects.updateFileIndex(
|
|
97
|
+
'идентификатор_проекта',
|
|
98
|
+
'путь/к/файлу.ts',
|
|
99
|
+
{
|
|
100
|
+
content: 'содержимое файла',
|
|
101
|
+
language: 'typescript', // Явное указание языка
|
|
102
|
+
updateDependencies: true // Обновление зависимостей после индексации
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Работа с новыми проектами
|
|
108
|
+
|
|
109
|
+
### Создание и индексация проекта
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
// Создание проекта и немедленная индексация
|
|
113
|
+
const result = await sdk.projects.createAndIndexProject('/путь/к/проекту', {
|
|
114
|
+
name: 'Название проекта',
|
|
115
|
+
indexingMode: 'full',
|
|
116
|
+
excludePatterns: ['**/node_modules/**', '**/dist/**']
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
console.log(`Проект создан с ID: ${result.projectId}`);
|
|
120
|
+
console.log(`Статус индексации: ${result.indexingStatus}`);
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Поиск или создание проекта
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
// Найти существующий проект или создать новый
|
|
127
|
+
const project = await sdk.projects.getOrCreateProject('/путь/к/проекту', 'Название проекта');
|
|
128
|
+
console.log(`ID проекта: ${project.id}`);
|
|
129
|
+
|
|
130
|
+
// После получения проекта можно запустить индексацию
|
|
131
|
+
await sdk.projects.indexProject(project.id, {
|
|
132
|
+
indexingMode: 'auto'
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Управление индексацией
|
|
137
|
+
|
|
138
|
+
### Проверка статуса индексации
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
// Получение текущего статуса индексации
|
|
142
|
+
const status = await sdk.projects.getIndexingStatus('идентификатор_проекта');
|
|
143
|
+
console.log(`Статус: ${status.status}`);
|
|
144
|
+
console.log(`Количество файлов: ${status.fileCount}`);
|
|
145
|
+
console.log(`Статистика по языкам:`, status.languageStats);
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Отмена индексации
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
// Отмена текущей индексации
|
|
152
|
+
await sdk.projects.cancelIndexing('идентификатор_проекта');
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Очистка ошибок индексации
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
// Очистка ошибки, если индексация завершилась с ошибкой
|
|
159
|
+
await sdk.projects.clearIndexingError('идентификатор_проекта');
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Отслеживание индексации через WebSocket
|
|
163
|
+
|
|
164
|
+
SDK поддерживает отслеживание процесса индексации в реальном времени через WebSocket:
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
// Подключение к WebSocket
|
|
168
|
+
await sdk.projects.connectWebSocket();
|
|
169
|
+
|
|
170
|
+
// Подписка на события индексации отдельных файлов
|
|
171
|
+
sdk.projects.on('file_indexed', (data) => {
|
|
172
|
+
console.log(`Файл индексирован: ${data.file.path}`);
|
|
173
|
+
console.log(`Язык: ${data.file.language}`);
|
|
174
|
+
console.log(`Тип изменения: ${data.file.changeType}`);
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
// Подписка на событие завершения индексации
|
|
178
|
+
sdk.projects.on('indexing_complete', (data) => {
|
|
179
|
+
console.log(`Индексация завершена для проекта ${data.projectId}`);
|
|
180
|
+
console.log(`Всего файлов: ${data.stats.totalFiles}`);
|
|
181
|
+
console.log(`Проиндексировано: ${data.stats.indexed}`);
|
|
182
|
+
console.log(`Ошибок: ${data.stats.failed}`);
|
|
183
|
+
console.log(`Время индексации: ${data.stats.time}мс`);
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
// Отключение от WebSocket после завершения работы
|
|
187
|
+
await sdk.projects.disconnectWebSocket();
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Обработка ошибок
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
try {
|
|
194
|
+
await sdk.projects.indexProject('идентификатор_проекта', {
|
|
195
|
+
indexingMode: 'full'
|
|
196
|
+
});
|
|
197
|
+
} catch (error) {
|
|
198
|
+
if (error.message.includes('не найден')) {
|
|
199
|
+
console.error('Проект не найден');
|
|
200
|
+
} else if (error.message.includes('forbidden')) {
|
|
201
|
+
console.error('Ошибка авторизации. Проверьте API ключ');
|
|
202
|
+
} else {
|
|
203
|
+
console.error(`Ошибка индексации: ${error.message}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Авторизация WebSocket
|
|
209
|
+
|
|
210
|
+
Начиная с версии 1.7.7, SDK автоматически добавляет API ключ в качестве параметра `authToken` при подключении WebSocket, что обеспечивает корректную авторизацию для всех операций через WebSocket (индексация, рассуждения и т.д.).
|
|
211
|
+
|
|
212
|
+
Для корректной работы WebSocket соединений:
|
|
213
|
+
1. **Обязательно указывайте `apiKey` при инициализации SDK**
|
|
214
|
+
2. Подключайтесь к WebSocket перед использованием событий
|
|
215
|
+
3. Отключайтесь от WebSocket после завершения работы
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
// Корректная инициализация с apiKey
|
|
219
|
+
const sdk = new CodeSolverSDK({
|
|
220
|
+
baseURL: 'https://api.example.com',
|
|
221
|
+
apiKey: 'ваш_api_ключ' // Обязательно для WebSocket авторизации
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
// Подключение
|
|
225
|
+
await sdk.projects.connectWebSocket();
|
|
226
|
+
|
|
227
|
+
// Использование WebSocket...
|
|
228
|
+
|
|
229
|
+
// Отключение
|
|
230
|
+
await sdk.projects.disconnectWebSocket();
|
|
231
|
+
```
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solver-sdk",
|
|
3
|
-
"version": "1.8.
|
|
4
|
-
"description": "SDK для интеграции с Code Solver Backend API
|
|
3
|
+
"version": "1.8.1",
|
|
4
|
+
"description": "SDK для интеграции с Code Solver Backend API",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/types/index.d.ts",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"files": [
|
|
25
25
|
"dist/**/*",
|
|
26
26
|
"README.md",
|
|
27
|
-
"LICENSE"
|
|
27
|
+
"LICENSE",
|
|
28
|
+
"docs/**/*"
|
|
28
29
|
],
|
|
29
30
|
"scripts": {
|
|
30
31
|
"clean": "rimraf dist",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat-api.js","sourceRoot":"","sources":["../../../src/api/chat-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat-api.js","sourceRoot":"","sources":["../../../src/api/chat-api.ts"],"names":[],"mappings":"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"}
|