UNPKG

solver-sdk

Version:

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

136 lines 6.27 kB
/** * 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 class ModelsApi { /** * Создает новый экземпляр API для работы с моделями * @param {HttpClient} httpClient HTTP клиент */ constructor(httpClient) { this.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); * ``` */ async getAllModels() { return this.httpClient.get('/api/v1/models'); } /** * Получает список провайдеров моделей * * Возвращает список всех доступных провайдеров моделей с информацией * об их возможностях и поддерживаемых функциях. * * @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')); * ``` */ async getProviders() { return this.httpClient.get('/api/v1/models/providers'); } /** * Получает модели конкретного провайдера * * Возвращает список моделей для указанного провайдера, включая информацию * о контекстном окне, поддерживаемых языках и других характеристиках. * * @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); * ``` */ async getProviderModels(providerId) { return this.httpClient.get(`/api/v1/models/providers/${providerId}`); } /** * Получает информацию о провайдере для указанной модели * * Возвращает информацию о провайдере, которому принадлежит указанная модель, * а также сведения о доступности модели в данный момент. * * @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} в данный момент недоступна`); * } * ``` */ async getModelProvider(modelId) { return this.httpClient.get(`/api/v1/models/${modelId}/provider`); } } //# sourceMappingURL=models-api.js.map