UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API

302 lines 11.4 kB
import { HttpClient } from '../utils/http-client.js'; /** * Информация о модели * * @interface ModelInfo * @property {string} id - Уникальный идентификатор модели * @property {string} name - Отображаемое имя модели * @property {string[]} capabilities - Список возможностей модели * @property {number} contextWindow - Максимальный размер контекстного окна в токенах * @property {boolean} isDefault - Флаг, указывающий является ли модель стандартной для провайдера * @property {number} [maxTokens] - Максимальное количество токенов ответа * @property {string[]} [supportedLanguages] - Список поддерживаемых языков */ export interface ModelInfo { /** Идентификатор модели */ id: string; /** Имя модели */ name: string; /** Возможности модели */ capabilities: string[]; /** Максимальный размер контекстного окна (в токенах) */ contextWindow: number; /** Является ли модель по умолчанию для своего провайдера */ isDefault: boolean; /** Максимальное количество токенов для ответа */ maxTokens?: number; /** Поддерживаемые языки */ supportedLanguages?: string[]; } /** * Информация о моделях провайдера * * @interface ProviderModels * @property {string} provider - Идентификатор провайдера * @property {string} name - Название провайдера * @property {ModelInfo[]} models - Список моделей провайдера * * @example * ```javascript * { * provider: "openai", * name: "OpenAI", * models: [ * { * id: "gpt-4o", * name: "GPT-4o", * capabilities: ["chat", "completions"], * contextWindow: 128000, * isDefault: true, * maxTokens: 4096, * supportedLanguages: ["en", "ru", "fr", "de"] * } * ] * } * ``` */ export interface ProviderModels { /** Идентификатор провайдера */ provider: string; /** Имя провайдера */ name: string; /** Список моделей */ models: ModelInfo[]; } /** * Ответ на запрос всех моделей * * @interface AllModelsResponse * @property {ProviderModels[]} models - Список моделей, сгруппированных по провайдерам * * @example * ```javascript * { * models: [ * { * provider: "openai", * name: "OpenAI", * models: [...] * }, * { * provider: "anthropic", * name: "Anthropic", * models: [...] * } * ] * } * ``` */ export interface AllModelsResponse { /** Список моделей по провайдерам */ models: ProviderModels[]; } /** * Информация о провайдере * * @interface ProviderInfo * @property {string} id - Идентификатор провайдера * @property {string} name - Название провайдера * @property {string[]} capabilities - Список возможностей провайдера * * @example * ```javascript * { * id: "openai", * name: "OpenAI", * capabilities: ["chat", "completions", "embeddings"] * } * ``` */ export interface ProviderInfo { /** Идентификатор провайдера */ id: string; /** Имя провайдера */ name: string; /** Возможности провайдера */ capabilities: string[]; } /** * Ответ на запрос провайдеров * * @interface ProvidersResponse * @property {ProviderInfo[]} providers - Список доступных провайдеров * * @example * ```javascript * { * providers: [ * { * id: "openai", * name: "OpenAI", * capabilities: ["chat", "completions", "embeddings"] * }, * { * id: "anthropic", * name: "Anthropic", * capabilities: ["chat"] * } * ] * } * ``` */ export interface ProvidersResponse { /** Список провайдеров */ providers: ProviderInfo[]; } /** * Информация о модели и её провайдере * * @interface ModelProviderInfo * @property {string} modelId - Идентификатор модели * @property {ProviderInfo} provider - Информация о провайдере * @property {boolean} isAvailable - Доступна ли модель в данный момент * * @example * ```javascript * { * modelId: "gpt-4o", * provider: { * id: "openai", * name: "OpenAI", * capabilities: ["chat", "completions", "embeddings"] * }, * isAvailable: true * } * ``` */ export interface ModelProviderInfo { /** Идентификатор модели */ modelId: string; /** Информация о провайдере */ provider: ProviderInfo; /** Доступна ли модель */ isAvailable: boolean; } /** * API для работы с моделями * * Предоставляет методы для получения информации о доступных моделях ИИ * и их провайдерах. Позволяет получить полный список моделей, список * провайдеров, модели конкретного провайдера или информацию о провайдере * для конкретной модели. * * @example * ```javascript * // Получение всех доступных моделей * const allModels = await sdk.models.getAllModels(); * console.log(allModels.models); * * // Получение провайдеров * const providers = await sdk.models.getProviders(); * console.log(providers.providers); * * // Получение моделей конкретного провайдера * const openaiModels = await sdk.models.getProviderModels('openai'); * console.log(openaiModels.models); * * // Получение информации о провайдере для модели * const modelInfo = await sdk.models.getModelProvider('gpt-4o'); * console.log(modelInfo.provider); * ``` */ export declare class ModelsApi { /** HTTP клиент */ private readonly httpClient; /** * Создает новый экземпляр API для работы с моделями * @param {HttpClient} httpClient HTTP клиент */ constructor(httpClient: HttpClient); /** * Получает список всех доступных моделей * * Возвращает полный список доступных моделей, сгруппированных по провайдерам. * Каждая модель содержит информацию о своих возможностях, размере контекстного * окна и других характеристиках. * * @returns {Promise<AllModelsResponse>} Список моделей по провайдерам * * @example * ```javascript * const allModels = await sdk.models.getAllModels(); * * // Получение всех моделей OpenAI * const openaiModels = allModels.models * .find(provider => provider.provider === 'openai')?.models || []; * * // Получение всех доступных моделей всех провайдеров * const allAvailableModels = allModels.models * .flatMap(provider => provider.models); * ``` */ getAllModels(): Promise<AllModelsResponse>; /** * Получает список провайдеров моделей * * Возвращает список всех доступных провайдеров моделей с информацией * об их возможностях и поддерживаемых функциях. * * @returns {Promise<ProvidersResponse>} Список провайдеров * * @example * ```javascript * const providers = await sdk.models.getProviders(); * * // Получение провайдера по ID * const openai = providers.providers.find(p => p.id === 'openai'); * * // Проверка поддержки определенной возможности * const supportsChat = providers.providers * .some(p => p.capabilities.includes('chat')); * ``` */ getProviders(): Promise<ProvidersResponse>; /** * Получает модели конкретного провайдера * * Возвращает список моделей для указанного провайдера, включая информацию * о контекстном окне, поддерживаемых языках и других характеристиках. * * @param {string} providerId Идентификатор провайдера (например, openai, anthropic, google) * @returns {Promise<ProviderModels>} Модели провайдера * * @example * ```javascript * // Получение моделей OpenAI * const openaiModels = await sdk.models.getProviderModels('openai'); * * // Получение модели с наибольшим контекстным окном * const modelWithLargestContext = openaiModels.models * .sort((a, b) => b.contextWindow - a.contextWindow)[0]; * * // Получение модели по умолчанию * const defaultModel = openaiModels.models * .find(model => model.isDefault); * ``` */ getProviderModels(providerId: string): Promise<ProviderModels>; /** * Получает информацию о провайдере для указанной модели * * Возвращает информацию о провайдере, которому принадлежит указанная модель, * а также сведения о доступности модели в данный момент. * * @param {string} modelId Идентификатор модели (например, gpt-4o, claude-3-opus) * @returns {Promise<ModelProviderInfo>} Информация о модели и провайдере * * @example * ```javascript * // Получение информации о провайдере для модели * const modelInfo = await sdk.models.getModelProvider('gpt-4o'); * * // Проверка доступности модели * if (modelInfo.isAvailable) { * console.log(`Модель ${modelInfo.modelId} доступна у провайдера ${modelInfo.provider.name}`); * } else { * console.log(`Модель ${modelInfo.modelId} в данный момент недоступна`); * } * ``` */ getModelProvider(modelId: string): Promise<ModelProviderInfo>; } //# sourceMappingURL=models-api.d.ts.map