LLM Access (llm)
Требуется: LLM
Отправляет текстовые или диалоговые запросы через профили LLM пользователя (Ollama, Gemini, Groq, Cerebras, Puter и др.). API-ключи остаются в основном процессе и никогда не передаются аддонам.
Настройка
- Добавьте
"LLM"вpermissionsвmanifest.json(пользователь подтверждает при установке). - Проверьте в рантайме через
permissions.has(AddonsPermission.LLM). - При необходимости вызовите
llm.getSettings()/llm.listProfiles()передllm.chat.
{
"id": "my-addon",
"permissions": ["LLM"]
}
Как это работает
- Используются те же профили и маршрутизация, что в Настройки → LLM Access.
defaultProfileможет бытьautoили конкретным id профиля.options.profileучитывается только если включено Разрешить аддонам выбирать профиль.freeOnlyпропускает платные профили / похожие на платные модели.- При rate limit (HTTP 429 / Retry-After) профиль уходит в cooldown, возможен fallback.
llm.listProfiles()
const { success, profiles, message } = await llm.listProfiles();
llm.getSettings()
const {
success,
enabled,
defaultProfile,
allowAddonProfileSelect,
freeOnly,
message,
} = await llm.getSettings();
llm.chat(input, options?)
input — строка или массив { role, content }. Опции: profile, temperature, topP, maxTokens, freeOnly, timeoutMs и др.
await llm.chat('Hello');
await llm.chat(
[
{ role: 'system', content: 'Reply briefly.' },
{ role: 'user', content: 'Hi' },
],
{ profile: 'auto', temperature: 0.4 }
);
См. также Permissions и API overview.