solver-sdk
Version:
SDK для интеграции с Code Solver Backend API
302 lines • 11.4 kB
TypeScript
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