feat(desktop): embed BoosAPI Desktop client as a subproject
Vendor the rebranded BoosAPI Desktop client (Tauri + Vue) into metapi as a monorepo subdirectory under desktop/. Source only — node_modules, dist, Cargo target and the upstream .git history are excluded. desktop/ keeps its own independent Cargo workspace (desktop/src-tauri with crates/*); it is not part of the backend boosapi crate, so a `cargo check` at the metapi root still compiles only the backend. Build the desktop app from desktop/src-tauri per desktop/README.md. Note: app icons are still placeholder assets pending the final BoosAPI logo. The updater signing keys live outside the repo and are not included.
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
# Настройка провайдеров
|
||||
|
||||
BoosApi одновременно подключается к любому количеству ИИ-провайдеров. У каждого провайдера есть собственные ключи API, список моделей и параметры по умолчанию.
|
||||
|
||||
## Поддерживаемые провайдеры
|
||||
|
||||
| Провайдер | Примеры моделей |
|
||||
|----------|----------------|
|
||||
| **OpenAI** | GPT-4o, GPT-4, o3, o4-mini |
|
||||
| **Anthropic** | Claude 4 Sonnet, Claude 4 Opus, Claude 3.5 Sonnet |
|
||||
| **Google** | Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.0 |
|
||||
| **DeepSeek** | DeepSeek V3, DeepSeek R1 |
|
||||
| **Alibaba Cloud** | Серия Qwen |
|
||||
| **Zhipu AI** | Серия GLM |
|
||||
| **xAI** | Серия Grok |
|
||||
| **OpenAI-совместимый API** | Ollama, vLLM, LiteLLM, сторонние ретрансляторы и т.д. |
|
||||
|
||||
---
|
||||
|
||||
## Добавление провайдера
|
||||
|
||||
1. Перейдите в **Настройки → Провайдеры**.
|
||||
2. Нажмите кнопку **+** в нижнем левом углу.
|
||||
3. Заполните данные провайдера:
|
||||
|
||||
| Поле | Описание |
|
||||
|------|---------|
|
||||
| **Имя** | Отображаемое имя для боковой панели (например, *OpenAI*) |
|
||||
| **Тип** | Тип провайдера — определяет Base URL по умолчанию |
|
||||
| **Иконка** | Опциональная иконка для визуальной идентификации |
|
||||
| **API-ключ** | Секретный ключ из панели вашего провайдера |
|
||||
| **Base URL** | API-endpoint (предзаполнен для встроенных типов) |
|
||||
| **Путь API** | Путь запроса — по умолчанию `/v1/chat/completions` |
|
||||
|
||||
---
|
||||
|
||||
## Импорт по ссылке с сайта
|
||||
|
||||
Сайты провайдеров, панели relay-сервисов, частные платформы моделей или локальные gateway-страницы могут предоставлять ссылку **Открыть в BoosApi**. После клика браузер запускает настольное приложение BoosApi, BoosApi переходит в **Настройки → Провайдеры**, показывает окно подтверждения и импортирует конфигурацию только после подтверждения пользователем.
|
||||
|
||||
### Сценарий пользователя
|
||||
|
||||
1. Установите и откройте версию BoosApi, которая поддерживает ссылки провайдеров.
|
||||
2. В браузере нажмите ссылку **Открыть в BoosApi** на странице провайдера.
|
||||
3. Проверьте в BoosApi имя провайдера, Base URL, тип провайдера и префикс API-ключа.
|
||||
4. BoosApi повторно использует существующего провайдера с тем же сочетанием **Base URL + тип**. Если такого провайдера нет, он будет создан, а API-ключ будет добавлен только если его еще нет.
|
||||
|
||||
BoosApi не проверяет ключ и не загружает модели автоматически. После импорта нажмите **Получить модели** или добавьте модели вручную.
|
||||
|
||||
### Формат ссылки
|
||||
|
||||
```text
|
||||
boosapi://providers?name=<name>&baseurl=<base-url>&apikey=<api-key>&type=<provider-type>
|
||||
```
|
||||
|
||||
Пример:
|
||||
|
||||
```text
|
||||
boosapi://providers?name=OpenAI&baseurl=https%3A%2F%2Fapi.openai.com&apikey=sk-xxx&type=openai
|
||||
```
|
||||
|
||||
### Параметры
|
||||
|
||||
| Параметр | Обязателен | Описание |
|
||||
|----------|------------|----------|
|
||||
| `name` | Да | Отображаемое имя в BoosApi, например `OpenAI` или `My Relay` |
|
||||
| `baseurl` | Да | URL-кодированный Base URL. Разрешены только `http` и `https`; query и hash отклоняются. |
|
||||
| `apikey` | Да | API-ключ для сохранения в BoosApi. В окне подтверждения BoosApi показывает только префикс. |
|
||||
| `type` | Да | Тип провайдера. Допустимые значения: `openai`, `openai_responses`, `anthropic`, `gemini`, `custom`. |
|
||||
|
||||
`baseurl` может использовать существующий force-суффикс BoosApi, например `https://example.com!`. При импорте по ссылке `api_path` не задается; BoosApi продолжает использовать путь по умолчанию для выбранного типа провайдера.
|
||||
|
||||
### Настройка сайта
|
||||
|
||||
Кодируйте все динамические значения с помощью `encodeURIComponent` или `URLSearchParams`:
|
||||
|
||||
```html
|
||||
<a id="open-boosapi" href="#">Открыть в BoosApi</a>
|
||||
|
||||
<script>
|
||||
const provider = {
|
||||
name: 'My Relay',
|
||||
baseurl: 'https://api.example.com',
|
||||
apikey: 'sk-user-key',
|
||||
type: 'openai',
|
||||
};
|
||||
|
||||
const params = new URLSearchParams({
|
||||
name: provider.name,
|
||||
baseurl: provider.baseurl,
|
||||
apikey: provider.apikey,
|
||||
type: provider.type,
|
||||
});
|
||||
|
||||
document.getElementById('open-boosapi').href = `boosapi://providers?${params.toString()}`;
|
||||
</script>
|
||||
```
|
||||
|
||||
Если ваш сервис позволяет создавать API-ключи онлайн, формируйте ссылку только после входа пользователя и явного выбора или создания ключа.
|
||||
|
||||
::: warning Безопасность
|
||||
API-ключ в URL может попасть в историю браузера, логи, расширения или аналитические инструменты. Не размещайте реальные ключи на публичных страницах, в статическом HTML или в редиректах третьих сторон. Лучше генерировать ссылку на приватной странице аккаунта после подтверждения пользователя.
|
||||
:::
|
||||
|
||||
::: tip Тестирование
|
||||
`boosapi://` — пользовательский протокол, который регистрируется установленным настольным приложением. Один только сайт или dev-сервер Vite не регистрирует этот протокол. Если ссылка не открывает BoosApi, сначала установите или пересоберите последнюю настольную версию BoosApi.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Импорт из CC Switch
|
||||
|
||||
BoosApi может сканировать конфигурации провайдеров CC Switch в Settings -> Providers. Проверьте кандидатов, выберите импортируемые строки и импортируйте providers, Base URLs, API keys и model lists. OAuth-only entries и записи без reusable keys пропускаются с видимой причиной.
|
||||
|
||||
## Расширенное тело запроса модели
|
||||
|
||||
Для каждой модели можно задать extra_body, JSON-объект, который добавляется в OpenAI-compatible Chat Completions request. Это удобно для provider-specific options вроде enable_thinking. BoosApi валидирует JSON и блокирует перезапись model, messages, stream, tools и базовых sampling fields.
|
||||
|
||||
## Ротация нескольких ключей
|
||||
|
||||
BoosApi поддерживает несколько ключей API на провайдера. Нажмите **Добавить ключ** в панели деталей провайдера.
|
||||
|
||||
---
|
||||
|
||||
## Управление моделями
|
||||
|
||||
Нажмите **Получить модели** для загрузки полного списка доступных моделей. Вы также можете вводить ID моделей вручную.
|
||||
|
||||
Каждая модель может иметь собственные параметры по умолчанию: температура, максимальное количество токенов, Top P, штраф за частоту, штраф за присутствие.
|
||||
|
||||
---
|
||||
|
||||
## Ollama (локальные модели)
|
||||
|
||||
1. Установите и запустите [Ollama](https://ollama.com/).
|
||||
2. В BoosApi создайте нового провайдера с типом **OpenAI**.
|
||||
3. Установите **Base URL** равным `http://localhost:11434`.
|
||||
4. Нажмите **Получить модели** для обнаружения локально загруженных моделей.
|
||||
|
||||
---
|
||||
|
||||
## Следующие шаги
|
||||
|
||||
- [MCP-серверы](./mcp) — подключение внешних инструментов для расширения возможностей ИИ
|
||||
- [API-шлюз](./gateway) — предоставление провайдеров как локального API-сервера
|
||||
Reference in New Issue
Block a user