solver-sdk
Version:
SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system
122 lines • 6.42 kB
TypeScript
/**
* API для работы с чатом с поддержкой Anthropic Extended Thinking
*/
import { IHttpClient } from '../../interfaces/http-client';
import { ChatService } from './interfaces';
import { ChatMessage, ChatOptions, ChatResponse, ChatStreamChunk, ChatStreamOptions } from './models';
import { ChatCancelMethods } from './cancel-methods';
/**
* Опции для ChatApi
*/
interface ChatApiOptions {
debug?: boolean | 'verbose' | 'silent' | 'error' | 'warn' | 'info' | 'debug';
streamLogging?: {
sseEvents?: boolean;
streamChunks?: boolean;
eventCallbacks?: boolean;
importantOnly?: boolean;
};
}
export * from './models';
export * from './interfaces';
/**
* API для работы с чатом с поддержкой Anthropic Extended Thinking
*/
export declare class ChatApi extends ChatCancelMethods implements ChatService {
private options;
/** Logger для ChatApi с настраиваемыми уровнями */
private readonly logger;
/**
* Создает новый экземпляр API для работы с чатом
* @param {IHttpClient} httpClient HTTP клиент
* @param {ChatApiOptions} options Опции логирования (опционально)
*/
constructor(httpClient: IHttpClient, options?: ChatApiOptions);
/**
* Отправляет сообщение в чат и получает ответ от модели
* @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>;
/**
* Потоковый чат с поддержкой thinking
* @param {ChatMessage[]} messages Массив сообщений для отправки
* @param {ChatStreamOptions} [options] Дополнительные параметры
* @returns {AsyncGenerator<ChatStreamChunk>} Асинхронный генератор чанков ответа
*/
streamChat(messages: ChatMessage[], options?: ChatStreamOptions & {
onEvent?: (eventType: string, data: any) => void;
socketId?: string;
}): AsyncGenerator<ChatStreamChunk>;
/**
* Отправляет одиночный запрос в потоковом режиме
* @param {string} prompt Запрос к модели
* @param {ChatStreamOptions} [options] Дополнительные параметры
* @returns {AsyncGenerator<ChatStreamChunk>} Асинхронный генератор чанков ответа
*/
streamPrompt(prompt: string, options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
/**
* Отправляет continuation запрос для interleaved thinking
*/
sendContinuation(messages: ChatMessage[], options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
/**
* 🔄 Продолжает прерванный ответ (resume после timeout)
* @param {string} originalRequestId ID оригинального запроса
* @param {ChatMessage[]} messages История сообщений
* @param {string} partialText Частично полученный текст
* @param {ChatStreamOptions} [options] Дополнительные параметры
* @returns {AsyncGenerator<ChatStreamChunk>} Асинхронный генератор чанков
*/
resumeChat(originalRequestId: string, messages: ChatMessage[], partialText: string, options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
/**
* Валидирует опции чата согласно документации Anthropic
* @private
*/
private validateChatOptions;
/**
* Подготавливает параметры запроса для отправки на сервер
* @param {ChatMessage[]} messages Сообщения
* @param {ChatOptions} options Опции
* @returns {Record<string, any>} Параметры запроса
*/
private buildRequestParams;
/**
* Конвертирует ответ API в ChatStreamChunk (только официальные поля Anthropic API)
* @private
*/
private convertToStreamChunk;
/**
* Обрабатывает автоматическое выполнение инструментов
* @private
*/
private handleAutoToolExecution;
}
//# sourceMappingURL=index.d.ts.map