solver-sdk
Version:
SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system
99 lines • 4.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModelsApi = void 0;
/**
* 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);
* ```
*/
class ModelsApi {
/**
* Создает новый экземпляр API для работы с моделями
* @param {HttpClient} httpClient HTTP клиент
*/
constructor(httpClient) {
this.httpClient = httpClient;
}
/**
* Получает список всех доступных моделей
* @returns {Promise<any[]>} Массив моделей
*/
async getAllModels() {
const response = await this.httpClient.get('/api/v1/models');
return response.models || response || [];
}
/**
* Получает модели конкретного провайдера
*
* Возвращает список моделей для указанного провайдера, включая информацию
* о контекстном окне, поддерживаемых языках и других характеристиках.
*
* @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}`);
}
/**
* Получает список доступных моделей из реального API
* @returns {Promise<any[]>} Массив моделей
*/
async getModels() {
const response = await this.httpClient.get('/api/v1/models');
return response.models || [];
}
/**
* Алиас для getModels (для совместимости с тестами)
* @returns {Promise<any[]>} Массив моделей
*/
async getAvailableModels() {
return this.getModels();
}
/**
* Получает информацию о конкретной модели
* @param {string} modelId ID модели
* @returns {Promise<any>} Информация о модели
*/
async getModelInfo(modelId) {
const models = await this.getModels();
return models.find(m => m.id === modelId) || null;
}
}
exports.ModelsApi = ModelsApi;
//# sourceMappingURL=models-api.js.map