solver-sdk
Version:
SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)
136 lines • 6.27 kB
JavaScript
/**
* 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