109 lines
3.3 KiB
Markdown
109 lines
3.3 KiB
Markdown
# Opencode Vision Bridge Plugin
|
||
|
||
Этот плагин позволяет Opencode работать с изображениями, даже если активная модель не поддерживает мультимодальность. Он перехватывает изображения, отправляет их в указанную vision-модель для анализа, а затем заменяет изображение текстовым описанием в контексте диалога.
|
||
|
||
## Требования
|
||
|
||
- Доступ к API-эндпоинту Ludmila AI (https://ai.totmin.ru/v1).
|
||
- Ключ API Ludmila AI.
|
||
|
||
## Установка
|
||
|
||
### 1. Добавьте плагин в `~/.config/opencode/opencode.json`
|
||
|
||
В секцию `plugin` добавьте следующую запись:
|
||
|
||
```json
|
||
{
|
||
"plugin": [
|
||
// ... другие плагины
|
||
"https://git.totmin.ru/en2zmax/vision-bridge.git"
|
||
]
|
||
}
|
||
```
|
||
|
||
### 2. Настройте провайдер Ludmila AI
|
||
|
||
В секцию `provider` вашего `~/.config/opencode/opencode.json` добавьте или обновите блок `ludmila-ai`:
|
||
|
||
```json
|
||
{
|
||
"provider": {
|
||
"ludmila-ai": {
|
||
"npm": "@ai-sdk/openai-compatible",
|
||
"name": "Ludmila AI",
|
||
"options": {
|
||
"baseURL": "https://ai.totmin.ru/v1",
|
||
"apiKey": "<ЗАМЕНИТЕ_НА_ВАШ_API_КЛЮЧ>"
|
||
},
|
||
"models": {
|
||
"gemini/gemini-2.5-flash": {
|
||
"attachment": true,
|
||
"limit": {
|
||
"context": 1048576,
|
||
"output": 65536
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
**ВАЖНО**: Замените `<ЗАМЕНИТЕ_НА_ВАШ_API_КЛЮЧ>` на ваш реальный API-ключ Ludmila AI.
|
||
|
||
### 3. Скопируйте файл субагента
|
||
|
||
Субагенты не загружаются из npm-пакетов, поэтому скопируйте файл `vision.md` в соответствующий каталог:
|
||
|
||
```bash
|
||
cp ~/totmin/opencode/plugins/vision-bridge/agents/vision.md ~/.config/opencode/agents/vision.md
|
||
```
|
||
|
||
### 4. Перезапустите Opencode
|
||
|
||
Изменения в конфигурации применяются только после перезапуска Opencode.
|
||
|
||
## Пример конфигурации (`examples/opencode.json`)
|
||
|
||
```json
|
||
{
|
||
"$schema": "https://opencode.ai/config.json",
|
||
"plugin": [
|
||
"opencode-browser",
|
||
"git+ssh://git@git.totmin.ru:en2zmax/vision-bridge.git"
|
||
],
|
||
"provider": {
|
||
"ludmila-ai": {
|
||
"npm": "@ai-sdk/openai-compatible",
|
||
"name": "Ludmila AI",
|
||
"options": {
|
||
"baseURL": "https://ai.totmin.ru/v1",
|
||
"apiKey": "<ЗАМЕНИТЕ_НА_ВАШ_API_КЛЮЧ>"
|
||
},
|
||
"models": {
|
||
"gemini/gemini-2.5-flash": {
|
||
"attachment": true,
|
||
"limit": {
|
||
"context": 1048576,
|
||
"output": 65536
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"agent": {
|
||
"vision": {
|
||
"mode": "subagent",
|
||
"model": "ludmila-ai/gemini/gemini-2.5-flash",
|
||
"description": "Анализ изображений и скриншотов (OCR текста или разбор UI)",
|
||
"permission": {
|
||
"read": "allow",
|
||
"glob": "allow",
|
||
"external_directory": "allow",
|
||
"edit": "deny",
|
||
"bash": "deny"
|
||
}
|
||
}
|
||
}
|
||
}
|