solver-sdk
Version:
SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)
139 lines • 5.35 kB
TypeScript
/**
* Модели данных для чат-API
*/
/**
* Сообщение в чате
*/
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;
/** ID сессии для отслеживания контекста между запросами */
sessionId?: 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;
}
/**
* Тип обработчика событий
*/
export type EventHandler = (eventName: string, eventData: any) => void;
//# sourceMappingURL=models.d.ts.map