1
0
forked from boos/BoosAPI

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:
boos
2026-06-22 11:32:57 +08:00
parent d9c78ecc73
commit e0a5f57793
2305 changed files with 449355 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
# API-шлюз
## Что такое API-шлюз?
BoosApi включает встроенный локальный API-сервер, который предоставляет настроенных провайдеров как **OpenAI-совместимые**, **нативные Claude** и **нативные Gemini** endpoints. Любой инструмент или клиент, использующий один из этих протоколов, может использовать BoosApi в качестве бэкенда — без отдельных ключей API или ретрансляционных сервисов.
Сценарии использования:
- Запускайте **Claude Code CLI**, **OpenAI Codex CLI**, **Gemini CLI** или **OpenCode** через BoosApi.
- Подключайте расширения IDE к единому локально управляемому endpoint.
- Делитесь набором ключей провайдера между множеством инструментов с ограничением частоты запросов на ключ.
---
## Начало работы
1. Откройте **Настройки → API-шлюз** (или нажмите <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>).
2. Нажмите **Запустить** для запуска сервера шлюза.
3. По умолчанию сервер слушает на `127.0.0.1:8080` (HTTP).
::: tip
Включите **Автозапуск** в настройках шлюза, чтобы сервер запускался автоматически при старте BoosApi.
:::
---
## Управление ключами API
1. Перейдите на вкладку **Ключи API**.
2. Нажмите **Создать новый ключ**.
3. Опционально добавьте **описание** для идентификации каждого ключа.
4. Скопируйте ключ — он отображается только один раз.
---
## Шаблоны конфигурации
### Claude Code CLI
```bash
claude config set --global apiUrl http://127.0.0.1:8080
claude config set --global apiKey boosapi-xxxx
```
### OpenAI Codex CLI
```bash
export OPENAI_BASE_URL=http://127.0.0.1:8080/v1
export OPENAI_API_KEY=boosapi-xxxx
codex
```
### Gemini CLI
```bash
export GEMINI_API_BASE=http://127.0.0.1:8080
export GEMINI_API_KEY=boosapi-xxxx
gemini
```
### Пользовательский клиент
```
Base URL: http://127.0.0.1:8080/v1
Ключ API: boosapi-xxxx
```
---
## Следующие шаги
- [Быстрый старт](./getting-started) — вернуться к руководству по быстрому старту
- [Настройка провайдеров](./providers) — добавить upstream-провайдеров, к которым маршрутизирует шлюз
- [MCP-серверы](./mcp) — подключить внешние инструменты для вызова ИИ-инструментов
@@ -0,0 +1,128 @@
# Быстрый старт
## Установка
Скачайте последний установщик со [страницы загрузки](/ru/download) или [GitHub Releases](https://github.com/BoosApi-Desktop/BoosApi/releases).
### macOS
| Чип | Файл |
|-----|------|
| Apple Silicon (M1 / M2 / M3 / M4) | `BoosApi_x.x.x_aarch64.dmg` |
| Intel | `BoosApi_x.x.x_x64.dmg` |
1. Откройте `.dmg` и перетащите **BoosApi** в папку **«Программы»**.
2. Запустите BoosApi. Если macOS блокирует приложение, перейдите в **Системные настройки → Конфиденциальность и безопасность** и нажмите **Всё равно открыть**.
::: warning macOS: «Приложение повреждено» или «Разработчик не верифицирован»
Если вы видите одно из этих сообщений, откройте Терминал и выполните:
```bash
xattr -c /Applications/BoosApi.app
```
Затем снова запустите приложение. Это удаляет флаг карантина, который macOS применяет к неподписанным загрузкам.
:::
### Windows
| Архитектура | Файл |
|------------|------|
| x64 (большинство ПК) | `BoosApi_x.x.x_x64-setup.exe` |
| ARM64 | `BoosApi_x.x.x_arm64-setup.exe` |
Запустите установщик и следуйте мастеру. Запустите BoosApi из меню «Пуск» или ярлыка на рабочем столе.
### Linux
| Формат | Архитектура | Файл |
|--------|------------|------|
| Debian / Ubuntu | x64 | `BoosApi_x.x.x_amd64.deb` |
| Debian / Ubuntu | ARM64 | `BoosApi_x.x.x_arm64.deb` |
| Fedora / openSUSE | x64 | `BoosApi_x.x.x_x86_64.rpm` |
| Fedora / openSUSE | ARM64 | `BoosApi_x.x.x_aarch64.rpm` |
| Любой дистрибутив | x64 | `BoosApi_x.x.x_amd64.AppImage` |
| Любой дистрибутив | ARM64 | `BoosApi_x.x.x_aarch64.AppImage` |
```bash
# Debian / Ubuntu
sudo dpkg -i BoosApi_x.x.x_amd64.deb
# Fedora / openSUSE
sudo rpm -i BoosApi_x.x.x_x86_64.rpm
# AppImage (любой дистрибутив)
chmod +x BoosApi_x.x.x_amd64.AppImage
./BoosApi_x.x.x_amd64.AppImage
```
---
## Начальная настройка
### 1. Открыть настройки
Запустите BoosApi и нажмите на **значок шестерёнки** внизу боковой панели, или нажмите <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd>.
### 2. Добавить провайдера
Перейдите в **Настройки → Провайдеры** и нажмите кнопку **+**.
1. Введите отображаемое имя (например, *OpenAI*).
2. Выберите тип провайдера (OpenAI, Anthropic, Google Gemini и т.д.).
3. Вставьте ваш API-ключ.
4. Подтвердите **Base URL** — официальный endpoint предзаполнен для встроенных типов.
::: tip
Вы можете добавить столько провайдеров, сколько захотите. Каждый провайдер управляет своими ключами API и моделями независимо.
:::
### 3. Получить модели
Нажмите **Получить модели**, чтобы загрузить список доступных моделей из API провайдера. Вы также можете добавлять ID моделей вручную при необходимости.
### 4. Установить модель по умолчанию
Перейдите в **Настройки → Модель по умолчанию** и выберите провайдера и модель, которые новые разговоры должны использовать по умолчанию.
---
## Ваш первый разговор
1. Нажмите **Новый чат** в боковой панели (или нажмите <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd>).
2. Выберите модель из селектора моделей вверху чата.
3. Введите сообщение и нажмите <kbd>Enter</kbd>.
4. BoosApi транслирует ответ в реальном времени. Модели с поддержкой блоков размышлений (например, Claude, DeepSeek R1) отображают процесс рассуждений в сворачиваемом разделе.
---
## Горячие клавиши
| Сочетание | Действие |
|-----------|---------|
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd> | Показать / скрыть текущее окно |
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>A</kbd> | Показать / скрыть все окна |
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>W</kbd> | Закрыть окно |
| <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd> | Новый разговор |
| <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd> | Открыть настройки |
| <kbd>Cmd/Ctrl</kbd>+<kbd>K</kbd> | Палитра команд |
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | Переключить API-шлюз |
---
## Данные и резервное копирование
### Каталоги данных
| Путь | Содержимое |
|------|-----------|
| `~/.boosapi/` | Состояние приложения — база данных, ключи шифрования, векторная БД, SSL-сертификаты |
| `~/Documents/boosapi/` | Файлы пользователя — изображения, документы, резервные копии |
---
## Следующие шаги
- [Настройка провайдеров](./providers) — добавление и управление ИИ-провайдерами
- [MCP-серверы](./mcp) — подключение внешних инструментов для расширения возможностей ИИ
- [API-шлюз](./gateway) — предоставление провайдеров как локального API-сервера
+64
View File
@@ -0,0 +1,64 @@
# MCP-серверы
## Что такое MCP?
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) — открытый стандарт, позволяющий ИИ-моделям взаимодействовать с внешними инструментами и источниками данных. BoosApi выступает как MCP-клиент — вы добавляете MCP-серверы, и ИИ может вызывать предоставляемые ими инструменты во время разговора.
---
## Транспортные протоколы
BoosApi поддерживает три транспортных протокола для связи с MCP-серверами:
| Протокол | Соединение | Сценарий использования | Конфигурация |
|---------|-----------|----------------------|-------------|
| **Stdio** | Локальный процесс | Инструменты на вашей машине, запускаемые через `npx`, `uvx`, `python` и т.д. | `command` + `args` + опциональный `env` |
| **SSE** | Удалённый сервер | Server-Sent Events endpoint на удалённой машине | `url` |
| **StreamableHTTP** | Удалённый сервер | HTTP-потоковый endpoint, более новая альтернатива SSE | `url` |
---
## Добавление MCP-серверов
### Создание через форму
1. Перейдите в **Настройки → MCP-серверы**.
2. Нажмите **Добавить MCP-сервер**.
3. Введите имя и выберите транспортный протокол.
4. Заполните поля для выбранного протокола.
5. Нажмите **Сохранить**.
### Импорт JSON
Нажмите **Импорт JSON** и вставьте объект конфигурации:
```json
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
```
---
## Встроенные инструменты
| Инструмент | Описание |
|-----------|---------|
| **@boosapi/fetch** | Загрузка веб-страниц и HTTP-ресурсов |
| **@boosapi/search-file** | Поиск файлов в локальной файловой системе |
---
## Лимит циклов инструментов
В Settings -> MCP можно настроить максимальное число последовательных tool-call iterations для MCP-enabled response. Уменьшайте лимит при тестировании неизвестных серверов или увеличивайте его для workflow, где несколько tools должны выполняться цепочкой.
## Следующие шаги
- [API-шлюз](./gateway) — предоставление провайдеров как локального API-сервера
- [Быстрый старт](./getting-started) — вернуться к руководству по быстрому старту
+145
View File
@@ -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-сервера