UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)

210 lines 9.89 kB
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