solver-sdk
Version:
SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)
210 lines • 9.89 kB
TypeScript
import { HttpClient } from '../utils/http-client.js';
/**
* Сообщение в чате
*/
export interface ChatMessage {
/** Роль отправителя сообщения (system, user, assistant, function) */
role: 'system' | 'user' | 'assistant' | 'function';
/** Содержимое сообщения */
content: string;
/** Имя, если роль - function (опционально) */
name?: string;
}
/**
* Опции для запроса в чат
*/
export interface ChatOptions {
/** Название модели (по умолчанию 'Claude') */
model?: string;
/** Температура генерации (0-1) */
temperature?: number;
/** Максимальное количество токенов в ответе */
maxTokens?: number;
/** Последовательности для остановки генерации */
stopSequences?: string[];
/** Список функций, доступных для вызова моделью */
functions?: any[];
/** Настройки вызова функций */
functionCall?: 'auto' | 'none' | {
name: string;
};
/** Активировать режим thinking (размышления) модели */
thinking?: boolean;
/** Регион API Anthropic (default: us-east-1) */
region?: 'us-east-1' | 'eu-west-1' | 'ap-southeast-2';
/** Системная инструкция (prompt) */
systemPrompt?: string;
/** ID сокета для WebSocket соединения */
socketId?: string;
/** Дополнительные опции модели */
[key: string]: any;
}
/**
* Содержимое сообщения в ответе
*/
export interface ChatResponseContent {
/** Текст сообщения */
content: string;
}
/**
* Вариант ответа в чате
*/
export interface ChatResponseChoice {
/** Сообщение от модели */
message: ChatResponseContent;
/** Причина завершения генерации */
finish_reason: string;
/** Ход размышлений модели (доступен, если был запрошен режим thinking) */
thinking?: string;
/** Криптографическая подпись блока thinking для верификации */
thinking_signature?: string;
}
/**
* Ответ модели на запрос в чате
*/
export interface ChatResponse {
/** Варианты ответов */
choices: ChatResponseChoice[];
}
/**
* Чанк потоковой передачи ответа от модели
*/
export interface ChatStreamChunk {
/** Текст чанка */
text: string;
/** Признак завершения потока */
isComplete: boolean;
/** Признак, что текущий чанк является частью размышлений модели */
isThinking?: boolean;
/** Полный текст размышлений (доступен только в финальном чанке) */
thinkingContent?: string;
/** Криптографическая подпись блока thinking (доступна только в финальном чанке) */
thinkingSignature?: string;
}
/**
* Опции для потоковой передачи
*/
export interface ChatStreamOptions extends ChatOptions {
/** Обработчик получения каждого токена */
onToken?: (token: string) => void;
/** Обработчик получения полного ответа */
onComplete?: (text: string) => void;
/** Обработчик ошибок */
onError?: (error: Error) => void;
/** Токен авторизации для WebSocket соединения */
authToken?: string;
}
/**
* Ответ на запрос инициализации WebSocket соединения
*/
export interface WebSocketConnectResponse {
/** Статус операции */
status: string;
/** ID сокета для использования в запросах */
socketId: string;
/** URL для подключения к WebSocket серверу */
url: string;
/** Пространство имен WebSocket */
namespace: string;
/** Протокол WebSocket (ws или wss) */
protocol: string;
/** Инструкции для использования */
instructions?: string;
}
/**
* Ответ на запрос потоковой передачи с thinking
*/
export interface ThinkingStreamResponse {
/** Статус операции */
status: string;
/** Сообщение */
message: string;
/** ID сокета для получения событий */
socketId: string;
/** Провайдер модели */
provider: string;
/** Модель */
model: string;
/** Включен ли режим thinking */
thinking: boolean;
}
/**
* API для работы с чатом
*/
export declare class ChatApi {
/** HTTP клиент */
private readonly httpClient;
/**
* Создает новый экземпляр API для работы с чатом
* @param {HttpClient} httpClient HTTP клиент
*/
constructor(httpClient: HttpClient);
/**
* Отправляет сообщение в чат и получает ответ от модели
* @param {ChatMessage[]} messages Массив сообщений для отправки
* @param {ChatOptions} [options] Дополнительные параметры
* @returns {Promise<ChatResponse>} Ответ модели
*/
chat(messages: ChatMessage[], options?: ChatOptions): Promise<ChatResponse>;
/**
* Алиас для метода chat для совместимости с другими SDK
* @param {ChatMessage[]} messages Массив сообщений для отправки
* @param {ChatOptions} [options] Дополнительные параметры
* @returns {Promise<ChatResponse>} Ответ модели
*/
chatCompletion(messages: ChatMessage[], options?: ChatOptions): Promise<ChatResponse>;
/**
* Проверяет доступность API чата
* @returns {Promise<boolean>} Результат проверки
*/
checkAvailability(): Promise<boolean>;
/**
* Отправляет сообщение в чат и получает ответ от модели
* с автоматическим переключением между регионами при ошибках перегрузки
* @param {ChatMessage[]} messages Массив сообщений для отправки
* @param {ChatOptions} [options] Дополнительные параметры
* @returns {Promise<ChatResponse>} Ответ модели
*/
chatWithRegionFailover(messages: ChatMessage[], options?: ChatOptions): Promise<ChatResponse>;
/**
* Отправляет одиночный запрос к модели с автоматическим переключением регионов
* @param {string} prompt Запрос к модели
* @param {ChatOptions} [options] Дополнительные параметры
* @returns {Promise<string>} Текстовый ответ модели
*/
sendPromptWithRegionFailover(prompt: string, options?: ChatOptions): Promise<string>;
/**
* Отправляет сообщение в чат в потоковом режиме
* @param {ChatMessage[]} messages Массив сообщений для отправки
* @param {ChatStreamOptions} [options] Дополнительные параметры
* @returns {AsyncGenerator<ChatStreamChunk>} Асинхронный генератор чанков ответа
*/
streamChat(messages: ChatMessage[], options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
/**
* Отправляет запрос к модели в потоковом режиме (упрощенный интерфейс)
* @param {string} prompt Запрос к модели
* @param {ChatStreamOptions} [options] Дополнительные параметры
* @returns {AsyncGenerator<ChatStreamChunk>} Асинхронный генератор чанков ответа
*/
streamPrompt(prompt: string, options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
/**
* Создает новое WebSocket соединение для потокового чата
* @returns {Promise<WebSocketConnectResponse>} Информация о созданном соединении
*/
connectWebSocket(): Promise<WebSocketConnectResponse>;
/**
* Отправляет сообщение в чат в потоковом режиме с поддержкой thinking через WebSocket
* @param {ChatMessage[]} messages Массив сообщений для отправки
* @param {ChatStreamOptions} [options] Дополнительные параметры
* @param {(eventType: string, data: any) => void} [onEvent] Обработчик событий WebSocket
* @returns {Promise<ThinkingStreamResponse>} Информация о потоковом запросе
*/
streamChatWithThinking(messages: ChatMessage[], options?: ChatStreamOptions, onEvent?: (eventType: string, data: any) => void): Promise<ThinkingStreamResponse>;
/**
* Генерирует случайный ID указанной длины
* @param {number} length Длина ID
* @returns {string} Сгенерированный ID
*/
private generateId;
}
//# sourceMappingURL=chat-api.d.ts.map