Перейти к основному содержимому

API запроса моделей

@grant CAT.agent.model

API запроса моделей предоставляет доступ только для чтения к информации о моделях, которые пользователь настроил в панели управления. Из соображений безопасности API Key никогда не передаётся скриптам.

list — список всех моделей

const models = await CAT.agent.model.list();

Возвращаемое значение, ModelSummary[]:

ПолеТипОписание
idstringID модели
namestringОтображаемое имя
provider"openai" | "anthropic" | "zhipu"Тип провайдера
apiBaseUrlstringБазовый адрес API
modelstringИдентификатор модели (например, gpt-4o, claude-sonnet-4-20250514)
maxTokensnumberМаксимальное число выходных токенов
contextWindownumberРазмер окна контекста
supportsVisionbooleanПоддержка визуального ввода (изображения)
supportsImageOutputbooleanПоддержка генерации изображений

Примечание: возвращаемое значение не включает поле apiKey.

get — получить конкретную модель

const model = await CAT.agent.model.get(modelId);

Возвращает null, если модель не существует.

getDefault — получить ID модели по умолчанию

const defaultId = await CAT.agent.model.getDefault();

Возвращает строку ID модели по умолчанию, заданной пользователем.

getSummary — получить сводку списка моделей

const summary = await CAT.agent.model.getSummary();

Возвращает текстовую сводку всех настроенных моделей, подходящую для прямой вставки в промпт как справочник для AI.

Сценарии использования

Выбор модели пользователем

// ==UserScript==
// @name Model Selection Example
// @grant CAT.agent.model
// @grant CAT.agent.conversation
// ==/UserScript==

const models = await CAT.agent.model.list();
const defaultId = await CAT.agent.model.getDefault();

// Present these to the user to choose from
const selectedModel = models.find(m => m.supportsVision) || models[0];

const conv = await CAT.agent.conversation.create({
model: selectedModel.id
});

Проверка возможностей модели

const model = await CAT.agent.model.get("my-model-id");
if (model?.supportsVision) {
// can send images
await conv.chat([
{ type: "text", text: "Please describe this image" },
{ type: "image", attachmentId: imgId, mimeType: "image/png" }
]);
} else {
// text only
await conv.chat("Please describe the content of the current page");
}