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.
@@ -0,0 +1,483 @@
|
||||
import { defineConfig } from 'vitepress';
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { resolve } from 'node:path';
|
||||
|
||||
const rootPkg = JSON.parse(
|
||||
readFileSync(resolve(__dirname, '../../../package.json'), 'utf-8'),
|
||||
);
|
||||
const APP_VERSION = rootPkg.version as string;
|
||||
|
||||
const SITE_URL = 'https://app.aqbot.top';
|
||||
const OG_IMAGE = `${SITE_URL}/og-image.png`;
|
||||
|
||||
export default defineConfig({
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — Open-source AI desktop client with built-in AI gateway, multi-model chat, MCP server support. Connect OpenAI, Claude, Gemini and more LLMs in one app.',
|
||||
|
||||
base: '/',
|
||||
|
||||
lastUpdated: true,
|
||||
cleanUrls: true,
|
||||
|
||||
sitemap: {
|
||||
hostname: SITE_URL,
|
||||
},
|
||||
|
||||
vite: {
|
||||
define: {
|
||||
__APP_VERSION__: JSON.stringify(APP_VERSION),
|
||||
},
|
||||
},
|
||||
|
||||
head: [
|
||||
['link', { rel: 'icon', href: '/favicon.ico' }],
|
||||
// Primary SEO meta
|
||||
['meta', { name: 'theme-color', content: '#309731' }],
|
||||
['meta', { name: 'author', content: 'AQBot Team' }],
|
||||
['meta', { name: 'keywords', content: 'AQBot, AI desktop client, AI gateway, AI chat client, LLM client, multi-model AI, MCP server, OpenAI client, Claude client, Gemini client, AI assistant, desktop AI app, open source AI, ChatGPT alternative, AI aggregator, large language model, AI desktop application, Tauri AI app' }],
|
||||
['meta', { name: 'robots', content: 'index, follow' }],
|
||||
// Open Graph
|
||||
['meta', { property: 'og:type', content: 'website' }],
|
||||
['meta', { property: 'og:site_name', content: 'AQBot' }],
|
||||
['meta', { property: 'og:title', content: 'AQBot — Open-source AI Desktop Client & Gateway' }],
|
||||
['meta', { property: 'og:description', content: 'Free, open-source AI desktop client with built-in gateway. Connect multiple LLMs (OpenAI, Claude, Gemini, DeepSeek) in one app. MCP server support, knowledge base, and more.' }],
|
||||
['meta', { property: 'og:image', content: OG_IMAGE }],
|
||||
['meta', { property: 'og:url', content: SITE_URL }],
|
||||
['meta', { property: 'og:locale', content: 'en' }],
|
||||
['meta', { property: 'og:locale:alternate', content: 'zh_CN' }],
|
||||
// Twitter Card
|
||||
['meta', { name: 'twitter:card', content: 'summary_large_image' }],
|
||||
['meta', { name: 'twitter:title', content: 'AQBot — Open-source AI Desktop Client & Gateway' }],
|
||||
['meta', { name: 'twitter:description', content: 'Free, open-source AI desktop client with built-in gateway. Multi-model chat, MCP server support, knowledge base.' }],
|
||||
['meta', { name: 'twitter:image', content: OG_IMAGE }],
|
||||
],
|
||||
|
||||
locales: {
|
||||
root: {
|
||||
label: '🇺🇸 English',
|
||||
lang: 'en',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — Open-source AI desktop client with built-in AI gateway, multi-model chat, MCP server support.',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'Home', link: '/' },
|
||||
{ text: 'Features', link: '/features' },
|
||||
{ text: 'Download', link: '/download' },
|
||||
{ text: 'Docs', link: '/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/guide/': [{ text: 'Getting Started', items: [
|
||||
{ text: 'Quick Start', link: '/guide/getting-started' },
|
||||
{ text: 'Configure Providers', link: '/guide/providers' },
|
||||
{ text: 'MCP Servers', link: '/guide/mcp' },
|
||||
{ text: 'API Gateway', link: '/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
},
|
||||
},
|
||||
zh: {
|
||||
label: '🇨🇳 简体中文',
|
||||
lang: 'zh-CN',
|
||||
link: '/zh/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — 开源 AI 桌面客户端,内置 AI 网关,支持多模型对话、MCP 服务器、知识库。',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: '首页', link: '/zh/' },
|
||||
{ text: '功能', link: '/zh/features' },
|
||||
{ text: '下载', link: '/zh/download' },
|
||||
{ text: '文档', link: '/zh/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/zh/guide/': [{ text: '入门', items: [
|
||||
{ text: '快速开始', link: '/zh/guide/getting-started' },
|
||||
{ text: '配置服务商', link: '/zh/guide/providers' },
|
||||
{ text: 'MCP 服务器', link: '/zh/guide/mcp' },
|
||||
{ text: 'API 网关', link: '/zh/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: '上一页', next: '下一页' },
|
||||
darkModeSwitchLabel: '外观',
|
||||
returnToTopLabel: '返回顶部',
|
||||
sidebarMenuLabel: '菜单',
|
||||
outline: { label: '页面导航' },
|
||||
},
|
||||
},
|
||||
'zh-tw': {
|
||||
label: '🇭🇰 繁體中文',
|
||||
lang: 'zh-TW',
|
||||
link: '/zh-tw/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — 開源 AI 桌面客戶端,內建 AI 網關,支援多模型對話、MCP 伺服器、知識庫。',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: '首頁', link: '/zh-tw/' },
|
||||
{ text: '功能', link: '/zh-tw/features' },
|
||||
{ text: '下載', link: '/zh-tw/download' },
|
||||
{ text: '文件', link: '/zh-tw/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/zh-tw/guide/': [{ text: '入門', items: [
|
||||
{ text: '快速開始', link: '/zh-tw/guide/getting-started' },
|
||||
{ text: '設定服務供應商', link: '/zh-tw/guide/providers' },
|
||||
{ text: 'MCP 伺服器', link: '/zh-tw/guide/mcp' },
|
||||
{ text: 'API 閘道', link: '/zh-tw/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: '上一頁', next: '下一頁' },
|
||||
darkModeSwitchLabel: '外觀',
|
||||
returnToTopLabel: '返回頂部',
|
||||
sidebarMenuLabel: '選單',
|
||||
outline: { label: '頁面導覽' },
|
||||
},
|
||||
},
|
||||
ja: {
|
||||
label: '🇯🇵 日本語',
|
||||
lang: 'ja',
|
||||
link: '/ja/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — オープンソースのAIデスクトップクライアント。AIゲートウェイ内蔵、マルチモデルチャット、MCPサーバー対応。',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'ホーム', link: '/ja/' },
|
||||
{ text: '機能', link: '/ja/features' },
|
||||
{ text: 'ダウンロード', link: '/ja/download' },
|
||||
{ text: 'ドキュメント', link: '/ja/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/ja/guide/': [{ text: 'はじめに', items: [
|
||||
{ text: 'クイックスタート', link: '/ja/guide/getting-started' },
|
||||
{ text: 'プロバイダーの設定', link: '/ja/guide/providers' },
|
||||
{ text: 'MCPサーバー', link: '/ja/guide/mcp' },
|
||||
{ text: 'APIゲートウェイ', link: '/ja/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: '前のページ', next: '次のページ' },
|
||||
darkModeSwitchLabel: '外観',
|
||||
returnToTopLabel: 'トップに戻る',
|
||||
sidebarMenuLabel: 'メニュー',
|
||||
outline: { label: 'ページナビゲーション' },
|
||||
},
|
||||
},
|
||||
ko: {
|
||||
label: '🇰🇷 한국어',
|
||||
lang: 'ko',
|
||||
link: '/ko/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — 오픈소스 AI 데스크톱 클라이언트. AI 게이트웨이 내장, 멀티 모델 채팅, MCP 서버 지원.',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: '홈', link: '/ko/' },
|
||||
{ text: '기능', link: '/ko/features' },
|
||||
{ text: '다운로드', link: '/ko/download' },
|
||||
{ text: '문서', link: '/ko/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/ko/guide/': [{ text: '시작하기', items: [
|
||||
{ text: '빠른 시작', link: '/ko/guide/getting-started' },
|
||||
{ text: '제공업체 설정', link: '/ko/guide/providers' },
|
||||
{ text: 'MCP 서버', link: '/ko/guide/mcp' },
|
||||
{ text: 'API 게이트웨이', link: '/ko/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: '이전 페이지', next: '다음 페이지' },
|
||||
darkModeSwitchLabel: '외관',
|
||||
returnToTopLabel: '맨 위로',
|
||||
sidebarMenuLabel: '메뉴',
|
||||
outline: { label: '페이지 탐색' },
|
||||
},
|
||||
},
|
||||
fr: {
|
||||
label: '🇫🇷 Français',
|
||||
lang: 'fr',
|
||||
link: '/fr/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — Client de bureau IA open-source avec passerelle IA intégrée, chat multi-modèles, support serveur MCP.',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'Accueil', link: '/fr/' },
|
||||
{ text: 'Fonctionnalités', link: '/fr/features' },
|
||||
{ text: 'Télécharger', link: '/fr/download' },
|
||||
{ text: 'Documentation', link: '/fr/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/fr/guide/': [{ text: 'Démarrage', items: [
|
||||
{ text: 'Démarrage rapide', link: '/fr/guide/getting-started' },
|
||||
{ text: 'Configurer les fournisseurs', link: '/fr/guide/providers' },
|
||||
{ text: 'Serveurs MCP', link: '/fr/guide/mcp' },
|
||||
{ text: 'Passerelle API', link: '/fr/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: 'Page précédente', next: 'Page suivante' },
|
||||
darkModeSwitchLabel: 'Apparence',
|
||||
returnToTopLabel: 'Retour en haut',
|
||||
sidebarMenuLabel: 'Menu',
|
||||
outline: { label: 'Navigation de la page' },
|
||||
},
|
||||
},
|
||||
de: {
|
||||
label: '🇩🇪 Deutsch',
|
||||
lang: 'de',
|
||||
link: '/de/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — Open-Source KI-Desktop-Client mit integriertem KI-Gateway, Multi-Modell-Chat, MCP-Server-Unterstützung.',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'Startseite', link: '/de/' },
|
||||
{ text: 'Funktionen', link: '/de/features' },
|
||||
{ text: 'Download', link: '/de/download' },
|
||||
{ text: 'Dokumentation', link: '/de/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/de/guide/': [{ text: 'Erste Schritte', items: [
|
||||
{ text: 'Schnellstart', link: '/de/guide/getting-started' },
|
||||
{ text: 'Anbieter konfigurieren', link: '/de/guide/providers' },
|
||||
{ text: 'MCP-Server', link: '/de/guide/mcp' },
|
||||
{ text: 'API-Gateway', link: '/de/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: 'Vorherige Seite', next: 'Nächste Seite' },
|
||||
darkModeSwitchLabel: 'Erscheinungsbild',
|
||||
returnToTopLabel: 'Nach oben',
|
||||
sidebarMenuLabel: 'Menü',
|
||||
outline: { label: 'Seitennavigation' },
|
||||
},
|
||||
},
|
||||
es: {
|
||||
label: '🇪🇸 Español',
|
||||
lang: 'es',
|
||||
link: '/es/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — Cliente de escritorio IA de código abierto con pasarela IA integrada, chat multi-modelo, soporte de servidor MCP.',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'Inicio', link: '/es/' },
|
||||
{ text: 'Características', link: '/es/features' },
|
||||
{ text: 'Descargar', link: '/es/download' },
|
||||
{ text: 'Documentación', link: '/es/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/es/guide/': [{ text: 'Comenzar', items: [
|
||||
{ text: 'Inicio rápido', link: '/es/guide/getting-started' },
|
||||
{ text: 'Configurar proveedores', link: '/es/guide/providers' },
|
||||
{ text: 'Servidores MCP', link: '/es/guide/mcp' },
|
||||
{ text: 'Pasarela API', link: '/es/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: 'Página anterior', next: 'Página siguiente' },
|
||||
darkModeSwitchLabel: 'Apariencia',
|
||||
returnToTopLabel: 'Volver arriba',
|
||||
sidebarMenuLabel: 'Menú',
|
||||
outline: { label: 'Navegación de página' },
|
||||
},
|
||||
},
|
||||
ru: {
|
||||
label: '🇷🇺 Русский',
|
||||
lang: 'ru',
|
||||
link: '/ru/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — Настольный ИИ-клиент с открытым исходным кодом. Встроенный шлюз ИИ, чат с несколькими моделями, поддержка MCP-серверов.',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'Главная', link: '/ru/' },
|
||||
{ text: 'Функции', link: '/ru/features' },
|
||||
{ text: 'Скачать', link: '/ru/download' },
|
||||
{ text: 'Документация', link: '/ru/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/ru/guide/': [{ text: 'Начало работы', items: [
|
||||
{ text: 'Быстрый старт', link: '/ru/guide/getting-started' },
|
||||
{ text: 'Настройка провайдеров', link: '/ru/guide/providers' },
|
||||
{ text: 'MCP-серверы', link: '/ru/guide/mcp' },
|
||||
{ text: 'API-шлюз', link: '/ru/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: 'Предыдущая страница', next: 'Следующая страница' },
|
||||
darkModeSwitchLabel: 'Внешний вид',
|
||||
returnToTopLabel: 'Наверх',
|
||||
sidebarMenuLabel: 'Меню',
|
||||
outline: { label: 'Навигация по странице' },
|
||||
},
|
||||
},
|
||||
hi: {
|
||||
label: '🇮🇳 हिन्दी',
|
||||
lang: 'hi',
|
||||
link: '/hi/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — ओपन-सोर्स AI डेस्कटॉप क्लाइंट। बिल्ट-इन AI गेटवे, मल्टी-मॉडल चैट, MCP सर्वर समर्थन।',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'होम', link: '/hi/' },
|
||||
{ text: 'विशेषताएं', link: '/hi/features' },
|
||||
{ text: 'डाउनलोड', link: '/hi/download' },
|
||||
{ text: 'दस्तावेज़', link: '/hi/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/hi/guide/': [{ text: 'शुरुआत', items: [
|
||||
{ text: 'त्वरित प्रारंभ', link: '/hi/guide/getting-started' },
|
||||
{ text: 'प्रदाता कॉन्फ़िगर करें', link: '/hi/guide/providers' },
|
||||
{ text: 'MCP सर्वर', link: '/hi/guide/mcp' },
|
||||
{ text: 'API गेटवे', link: '/hi/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: 'पिछला पृष्ठ', next: 'अगला पृष्ठ' },
|
||||
darkModeSwitchLabel: 'स्वरूप',
|
||||
returnToTopLabel: 'शीर्ष पर वापस',
|
||||
sidebarMenuLabel: 'मेनू',
|
||||
outline: { label: 'पृष्ठ नेविगेशन' },
|
||||
},
|
||||
},
|
||||
ar: {
|
||||
label: '🇸🇦 العربية',
|
||||
lang: 'ar',
|
||||
link: '/ar/',
|
||||
title: 'AQBot',
|
||||
description: 'AQBot — عميل سطح مكتب AI مفتوح المصدر مع بوابة AI مدمجة، دردشة متعددة النماذج، دعم خوادم MCP.',
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: 'الرئيسية', link: '/ar/' },
|
||||
{ text: 'الميزات', link: '/ar/features' },
|
||||
{ text: 'تنزيل', link: '/ar/download' },
|
||||
{ text: 'التوثيق', link: '/ar/guide/getting-started' },
|
||||
],
|
||||
sidebar: {
|
||||
'/ar/guide/': [{ text: 'البدء', items: [
|
||||
{ text: 'البدء السريع', link: '/ar/guide/getting-started' },
|
||||
{ text: 'إعداد المزودين', link: '/ar/guide/providers' },
|
||||
{ text: 'خوادم MCP', link: '/ar/guide/mcp' },
|
||||
{ text: 'بوابة API', link: '/ar/guide/gateway' },
|
||||
]}],
|
||||
},
|
||||
docFooter: { prev: 'الصفحة السابقة', next: 'الصفحة التالية' },
|
||||
darkModeSwitchLabel: 'المظهر',
|
||||
returnToTopLabel: 'العودة للأعلى',
|
||||
sidebarMenuLabel: 'القائمة',
|
||||
outline: { label: 'تنقل الصفحة' },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
themeConfig: {
|
||||
logo: '/logo.png',
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: 'https://github.com/AQBot-Desktop/AQBot' },
|
||||
],
|
||||
search: {
|
||||
provider: 'local',
|
||||
options: {
|
||||
locales: {
|
||||
zh: {
|
||||
translations: {
|
||||
button: { buttonText: '搜索', buttonAriaLabel: '搜索' },
|
||||
modal: {
|
||||
displayDetails: '显示详细列表',
|
||||
resetButtonTitle: '重置搜索',
|
||||
noResultsText: '没有结果',
|
||||
footer: { selectText: '选择', navigateText: '导航', closeText: '关闭' },
|
||||
},
|
||||
},
|
||||
},
|
||||
'zh-tw': {
|
||||
translations: {
|
||||
button: { buttonText: '搜尋', buttonAriaLabel: '搜尋' },
|
||||
modal: {
|
||||
displayDetails: '顯示詳細列表',
|
||||
resetButtonTitle: '重置搜尋',
|
||||
noResultsText: '無結果',
|
||||
footer: { selectText: '選擇', navigateText: '導覽', closeText: '關閉' },
|
||||
},
|
||||
},
|
||||
},
|
||||
ja: {
|
||||
translations: {
|
||||
button: { buttonText: '検索', buttonAriaLabel: '検索' },
|
||||
modal: {
|
||||
displayDetails: '詳細一覧を表示',
|
||||
resetButtonTitle: '検索をリセット',
|
||||
noResultsText: '結果なし',
|
||||
footer: { selectText: '選択', navigateText: 'ナビゲート', closeText: '閉じる' },
|
||||
},
|
||||
},
|
||||
},
|
||||
ko: {
|
||||
translations: {
|
||||
button: { buttonText: '검색', buttonAriaLabel: '검색' },
|
||||
modal: {
|
||||
displayDetails: '상세 목록 표시',
|
||||
resetButtonTitle: '검색 초기화',
|
||||
noResultsText: '결과 없음',
|
||||
footer: { selectText: '선택', navigateText: '탐색', closeText: '닫기' },
|
||||
},
|
||||
},
|
||||
},
|
||||
fr: {
|
||||
translations: {
|
||||
button: { buttonText: 'Rechercher', buttonAriaLabel: 'Rechercher' },
|
||||
modal: {
|
||||
displayDetails: 'Afficher la liste détaillée',
|
||||
resetButtonTitle: 'Réinitialiser la recherche',
|
||||
noResultsText: 'Aucun résultat',
|
||||
footer: { selectText: 'Sélectionner', navigateText: 'Naviguer', closeText: 'Fermer' },
|
||||
},
|
||||
},
|
||||
},
|
||||
de: {
|
||||
translations: {
|
||||
button: { buttonText: 'Suchen', buttonAriaLabel: 'Suchen' },
|
||||
modal: {
|
||||
displayDetails: 'Detaillierte Liste anzeigen',
|
||||
resetButtonTitle: 'Suche zurücksetzen',
|
||||
noResultsText: 'Keine Ergebnisse',
|
||||
footer: { selectText: 'Auswählen', navigateText: 'Navigieren', closeText: 'Schließen' },
|
||||
},
|
||||
},
|
||||
},
|
||||
es: {
|
||||
translations: {
|
||||
button: { buttonText: 'Buscar', buttonAriaLabel: 'Buscar' },
|
||||
modal: {
|
||||
displayDetails: 'Mostrar lista detallada',
|
||||
resetButtonTitle: 'Restablecer búsqueda',
|
||||
noResultsText: 'Sin resultados',
|
||||
footer: { selectText: 'Seleccionar', navigateText: 'Navegar', closeText: 'Cerrar' },
|
||||
},
|
||||
},
|
||||
},
|
||||
ru: {
|
||||
translations: {
|
||||
button: { buttonText: 'Поиск', buttonAriaLabel: 'Поиск' },
|
||||
modal: {
|
||||
displayDetails: 'Показать подробный список',
|
||||
resetButtonTitle: 'Сбросить поиск',
|
||||
noResultsText: 'Нет результатов',
|
||||
footer: { selectText: 'Выбрать', navigateText: 'Навигация', closeText: 'Закрыть' },
|
||||
},
|
||||
},
|
||||
},
|
||||
hi: {
|
||||
translations: {
|
||||
button: { buttonText: 'खोजें', buttonAriaLabel: 'खोजें' },
|
||||
modal: {
|
||||
displayDetails: 'विस्तृत सूची दिखाएं',
|
||||
resetButtonTitle: 'खोज रीसेट करें',
|
||||
noResultsText: 'कोई परिणाम नहीं',
|
||||
footer: { selectText: 'चुनें', navigateText: 'नेविगेट', closeText: 'बंद करें' },
|
||||
},
|
||||
},
|
||||
},
|
||||
ar: {
|
||||
translations: {
|
||||
button: { buttonText: 'بحث', buttonAriaLabel: 'بحث' },
|
||||
modal: {
|
||||
displayDetails: 'عرض القائمة التفصيلية',
|
||||
resetButtonTitle: 'إعادة تعيين البحث',
|
||||
noResultsText: 'لا توجد نتائج',
|
||||
footer: { selectText: 'اختر', navigateText: 'تنقل', closeText: 'إغلاق' },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,134 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, computed, onMounted } from 'vue';
|
||||
import { useData } from 'vitepress';
|
||||
import {
|
||||
AppleOutlined,
|
||||
WindowsOutlined,
|
||||
ReadOutlined,
|
||||
} from '@ant-design/icons-vue';
|
||||
|
||||
declare const __APP_VERSION__: string;
|
||||
const VERSION = __APP_VERSION__;
|
||||
|
||||
const { lang } = useData();
|
||||
const isZh = computed(() => lang.value === 'zh-CN');
|
||||
|
||||
const detectedOS = ref<'macos' | 'windows' | 'linux'>('macos');
|
||||
|
||||
onMounted(() => {
|
||||
const ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.includes('win')) {
|
||||
detectedOS.value = 'windows';
|
||||
} else if (ua.includes('linux')) {
|
||||
detectedOS.value = 'linux';
|
||||
} else {
|
||||
detectedOS.value = 'macos';
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="download-bar">
|
||||
<a href="/download" class="dl-btn dl-primary">
|
||||
<AppleOutlined v-if="detectedOS === 'macos'" class="os-icon" />
|
||||
<WindowsOutlined v-else-if="detectedOS === 'windows'" class="os-icon" />
|
||||
<svg v-else class="os-icon" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 448 512" fill="currentColor"><path d="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 85.4 157.7 130.9c.3 30.4-16.3 51-33.4 72-15.2 18-35.1 44.3-46.5 74.4-9.3 24.6-12.9 51.8-3.7 79.1-1.4.5-2.8 1.2-4.1 2-1.4.8-2.7 1.8-4 2.9-6.6 5.6-8.7 14.3-10.5 22.4-1.9 8.1-3.6 15.7-7.2 19.7-6.3 6.7-7.1 16.5-3.5 22.9 3.6 6.4 11.5 9.5 18.5 6.9 3.6-1.3 6.5-4 9.1-6.5 2.5-2.5 4.9-5 7.9-6.5 5.4-2.8 12.4-2.3 19-1.2 6.8 1.2 13.2 3.1 18.8 1.9 12.2-2.6 16.5-11.1 23.7-16.9.5-.4.4-1.2-.1-1.6-.4-.3-1-.3-1.4.1-3.6 4-10.1 12.6-19.4 14.5-5.1 1-11.1-1-17.5-2.1-6.4-1.2-13.5-1.6-19.4 1.4-3.5 1.8-6.1 4.6-8.7 7.1-2.6 2.6-5.1 4.9-8.2 6-4.3 1.6-9.4-.3-11.7-4.4-2.3-4.1-1.7-10.6 2.6-15.1 4.5-4.9 6.3-13.5 8.2-21.5 1.9-8.1 3.9-16.3 9.6-21.1 2.4-2 5.3-3.2 8.3-3.5 2 12.3 9.2 23.4 19.5 31.1 1.4 1 1 3.6-.5 4.1-5.1 1.6-7.4 6.5-4.8 10.4 2.5 3.7 7.9 4.7 11.6 2.2 3.8-2.5 5.1-7.8 2.6-11.6-.5-.8-1.2-1.4-1.9-1.9 1.4-.5 2.4-1.8 2.1-3.2-.3-1.3-1.7-2.2-3-2.2h-.7c3.4-3.7 6.2-8.1 7.9-13 4.3.3 8.4 2 11.3 5.1 4.4 4.8 5.3 11.7 7.1 18 1.8 6.2 4.5 12.4 10.2 15.7 2.5 1.4 5.6 2 8.5 1 2.5-.9 4.3-3.1 5-5.7.4-1.5.2-3.1-.4-4.5-1.4-3.2-4.6-5-7.6-6.6-3-1.5-6.2-3-8-5.8-1.6-2.5-2-5.6-1.2-8.5.6-2.2 2.1-4.2 4.2-5 3.2-1.2 6.7.3 8.5 3.1 1 1.5 1.4 3.4 1.2 5.2.2.5.4 1 .5 1.5.3 1 .5 2.1.5 3.2 0 3.5-1.3 6.8-3.5 9.3 2.4 1.7 5.2 2.7 8.2 2.7 4.4 0 8.5-2.1 11.1-5.5 2.8-3.7 3.5-8.6 1.8-12.9z"/></svg>
|
||||
<span>{{ isZh ? '下载' : 'Download' }} v{{ VERSION }}</span>
|
||||
</a>
|
||||
<a href="/features" class="dl-btn dl-docs">
|
||||
<ReadOutlined class="os-icon" />
|
||||
<span>{{ isZh ? '文档' : 'Docs' }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.download-bar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 20px;
|
||||
padding: 32px 0 8px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.dl-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 10px;
|
||||
padding: 0 36px;
|
||||
height: 56px;
|
||||
border-radius: 28px;
|
||||
font-size: 17px;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
transition: all 0.25s ease;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.dl-primary {
|
||||
background: var(--vp-c-bg);
|
||||
color: var(--vp-c-text-1);
|
||||
border: 2px solid var(--vp-c-divider);
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
.dl-primary:hover {
|
||||
border-color: var(--vp-c-brand-1);
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.dark .dl-primary {
|
||||
background: var(--vp-c-bg-soft);
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.dl-docs {
|
||||
color: var(--vp-c-text-1);
|
||||
border: 2px solid var(--vp-c-divider);
|
||||
background: transparent;
|
||||
}
|
||||
.dl-docs:hover {
|
||||
border-color: var(--vp-c-brand-1);
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.os-icon {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.dl-btn {
|
||||
padding: 0 28px;
|
||||
height: 50px;
|
||||
font-size: 15px;
|
||||
border-radius: 25px;
|
||||
gap: 8px;
|
||||
}
|
||||
.download-bar {
|
||||
gap: 14px;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.dl-btn {
|
||||
padding: 0 24px;
|
||||
height: 48px;
|
||||
font-size: 15px;
|
||||
border-radius: 24px;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
}
|
||||
.download-bar {
|
||||
gap: 12px;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
padding: 24px 16px 8px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,452 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, computed, onMounted } from 'vue';
|
||||
import { useData } from 'vitepress';
|
||||
import {
|
||||
AppleOutlined,
|
||||
WindowsOutlined,
|
||||
ClockCircleOutlined,
|
||||
LinkOutlined,
|
||||
} from '@ant-design/icons-vue';
|
||||
|
||||
declare const __APP_VERSION__: string;
|
||||
|
||||
const VERSION = __APP_VERSION__;
|
||||
const BASE = `https://github.com/AQBot-Desktop/AQBot/releases/download/v${VERSION}`;
|
||||
|
||||
type OS = 'macos' | 'windows' | 'linux';
|
||||
|
||||
interface DownloadItem {
|
||||
labelZh: string;
|
||||
labelEn: string;
|
||||
file: string;
|
||||
arch: string;
|
||||
os: OS;
|
||||
primary?: boolean;
|
||||
}
|
||||
|
||||
const downloads: DownloadItem[] = [
|
||||
{ os: 'macos', arch: 'Apple Silicon', labelEn: 'Apple Silicon (M1/M2/M3/M4)', labelZh: 'Apple Silicon(M 系列芯片)', file: `AQBot_${VERSION}_aarch64.dmg`, primary: true },
|
||||
{ os: 'macos', arch: 'Intel', labelEn: 'Intel', labelZh: 'Intel(英特尔芯片)', file: `AQBot_${VERSION}_x64.dmg`, primary: true },
|
||||
{ os: 'windows', arch: 'x64', labelEn: 'Windows x64', labelZh: 'Windows x64', file: `AQBot_${VERSION}_x64-setup.exe`, primary: true },
|
||||
{ os: 'windows', arch: 'x64 Portable', labelEn: 'Windows x64 Portable', labelZh: 'Windows x64 绿色版', file: `AQBot_v${VERSION}_windows-x64-portable.zip` },
|
||||
{ os: 'windows', arch: 'ARM64', labelEn: 'Windows ARM64', labelZh: 'Windows ARM64', file: `AQBot_${VERSION}_arm64-setup.exe` },
|
||||
{ os: 'windows', arch: 'ARM64 Portable', labelEn: 'Windows ARM64 Portable', labelZh: 'Windows ARM64 绿色版', file: `AQBot_v${VERSION}_windows-arm64-portable.zip` },
|
||||
{ os: 'linux', arch: 'x64 deb', labelEn: 'x64 .deb (Debian/Ubuntu)', labelZh: 'x64 .deb(Debian/Ubuntu)', file: `AQBot_${VERSION}_amd64.deb`, primary: true },
|
||||
{ os: 'linux', arch: 'x64 AppImage', labelEn: 'x64 AppImage', labelZh: 'x64 AppImage', file: `AQBot_${VERSION}_amd64.AppImage` },
|
||||
{ os: 'linux', arch: 'ARM64 deb', labelEn: 'ARM64 .deb', labelZh: 'ARM64 .deb', file: `AQBot_${VERSION}_arm64.deb` },
|
||||
{ os: 'linux', arch: 'x64 rpm', labelEn: 'x64 .rpm (Fedora/RHEL)', labelZh: 'x64 .rpm(Fedora/RHEL)', file: `AQBot-${VERSION}-1.x86_64.rpm` },
|
||||
{ os: 'linux', arch: 'ARM64 rpm', labelEn: 'ARM64 .rpm', labelZh: 'ARM64 .rpm', file: `AQBot-${VERSION}-1.aarch64.rpm` },
|
||||
];
|
||||
|
||||
const osTabs: { id: OS; label: string }[] = [
|
||||
{ id: 'macos', label: 'macOS' },
|
||||
{ id: 'windows', label: 'Windows' },
|
||||
{ id: 'linux', label: 'Linux' },
|
||||
];
|
||||
|
||||
const { lang } = useData();
|
||||
const isZh = computed(() => lang.value === 'zh-CN');
|
||||
|
||||
const activeOS = ref<OS>('macos');
|
||||
|
||||
onMounted(() => {
|
||||
const ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.includes('win')) {
|
||||
activeOS.value = 'windows';
|
||||
} else if (ua.includes('linux')) {
|
||||
activeOS.value = 'linux';
|
||||
} else {
|
||||
activeOS.value = 'macos';
|
||||
}
|
||||
});
|
||||
|
||||
const currentDownloads = computed(() =>
|
||||
downloads.filter(d => d.os === activeOS.value)
|
||||
);
|
||||
|
||||
function itemLabel(item: DownloadItem) {
|
||||
return isZh.value ? item.labelZh : item.labelEn;
|
||||
}
|
||||
|
||||
function downloadUrl(item: DownloadItem) {
|
||||
return `${BASE}/${item.file}`;
|
||||
}
|
||||
|
||||
interface InstallStep {
|
||||
titleZh: string;
|
||||
titleEn: string;
|
||||
stepsZh: string[];
|
||||
stepsEn: string[];
|
||||
}
|
||||
|
||||
const installInstructions = computed<InstallStep[]>(() => {
|
||||
const os = activeOS.value;
|
||||
if (os === 'macos') {
|
||||
return [{
|
||||
titleZh: '安装步骤',
|
||||
titleEn: 'Installation',
|
||||
stepsZh: [
|
||||
'打开下载的 .dmg 文件',
|
||||
'将 AQBot 拖入「应用程序」文件夹',
|
||||
'首次运行时,在「系统设置 → 隐私与安全性」中允许运行',
|
||||
],
|
||||
stepsEn: [
|
||||
'Open the downloaded .dmg file',
|
||||
'Drag AQBot to the Applications folder',
|
||||
'On first launch, allow it in System Settings → Privacy & Security',
|
||||
],
|
||||
}];
|
||||
}
|
||||
if (os === 'windows') {
|
||||
return [
|
||||
{
|
||||
titleZh: '安装版',
|
||||
titleEn: 'Installer',
|
||||
stepsZh: [
|
||||
'运行下载的安装程序',
|
||||
'按向导完成安装',
|
||||
'从开始菜单或桌面快捷方式启动',
|
||||
],
|
||||
stepsEn: [
|
||||
'Run the downloaded installer',
|
||||
'Follow the wizard to complete installation',
|
||||
'Launch from Start Menu or desktop shortcut',
|
||||
],
|
||||
},
|
||||
{
|
||||
titleZh: '绿色免安装版 (Portable)',
|
||||
titleEn: 'Portable',
|
||||
stepsZh: [
|
||||
'解压 .zip 文件到任意目录',
|
||||
'双击 AQBot.exe 即可运行',
|
||||
],
|
||||
stepsEn: [
|
||||
'Extract the .zip file to any directory',
|
||||
'Double-click AQBot.exe to run',
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
return [{
|
||||
titleZh: '安装步骤',
|
||||
titleEn: 'Installation',
|
||||
stepsZh: [
|
||||
'Debian/Ubuntu: sudo dpkg -i AQBot_x.x.x_amd64.deb',
|
||||
'AppImage: chmod +x AQBot_x.x.x_amd64.AppImage && ./AQBot_x.x.x_amd64.AppImage',
|
||||
'RPM: sudo rpm -i AQBot-x.x.x-1.x86_64.rpm',
|
||||
],
|
||||
stepsEn: [
|
||||
'Debian/Ubuntu: sudo dpkg -i AQBot_x.x.x_amd64.deb',
|
||||
'AppImage: chmod +x AQBot_x.x.x_amd64.AppImage && ./AQBot_x.x.x_amd64.AppImage',
|
||||
'RPM: sudo rpm -i AQBot-x.x.x-1.x86_64.rpm',
|
||||
],
|
||||
}];
|
||||
});
|
||||
|
||||
const sysReq = computed(() => {
|
||||
const os = activeOS.value;
|
||||
if (os === 'macos') return isZh.value ? 'macOS 11.0 (Big Sur) 及以上' : 'macOS 11.0 (Big Sur) or later';
|
||||
if (os === 'windows') return isZh.value ? 'Windows 10 (1803) 及以上' : 'Windows 10 (1803) or later';
|
||||
return isZh.value ? '各主流 Linux 发行版' : 'Major Linux distributions';
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="download-page">
|
||||
<!-- Version badge -->
|
||||
<div class="version-header">
|
||||
<a class="version-badge" href="https://github.com/AQBot-Desktop/AQBot/releases" target="_blank" rel="noopener">
|
||||
<ClockCircleOutlined />
|
||||
{{ isZh ? '最新发行版本' : 'Latest Release' }}:v{{ VERSION }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- OS Tabs -->
|
||||
<div class="os-tabs">
|
||||
<button
|
||||
v-for="tab in osTabs"
|
||||
:key="tab.id"
|
||||
:class="['os-tab', { active: activeOS === tab.id }]"
|
||||
@click="activeOS = tab.id"
|
||||
>
|
||||
<AppleOutlined v-if="tab.id === 'macos'" class="tab-icon" />
|
||||
<WindowsOutlined v-else-if="tab.id === 'windows'" class="tab-icon" />
|
||||
<svg v-else class="tab-icon" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 448 512" fill="currentColor"><path d="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 85.4 157.7 130.9c.3 30.4-16.3 51-33.4 72-15.2 18-35.1 44.3-46.5 74.4-9.3 24.6-12.9 51.8-3.7 79.1-1.4.5-2.8 1.2-4.1 2-1.4.8-2.7 1.8-4 2.9-6.6 5.6-8.7 14.3-10.5 22.4-1.9 8.1-3.6 15.7-7.2 19.7-6.3 6.7-7.1 16.5-3.5 22.9 3.6 6.4 11.5 9.5 18.5 6.9 3.6-1.3 6.5-4 9.1-6.5 2.5-2.5 4.9-5 7.9-6.5 5.4-2.8 12.4-2.3 19-1.2 6.8 1.2 13.2 3.1 18.8 1.9 12.2-2.6 16.5-11.1 23.7-16.9.5-.4.4-1.2-.1-1.6-.4-.3-1-.3-1.4.1-3.6 4-10.1 12.6-19.4 14.5-5.1 1-11.1-1-17.5-2.1-6.4-1.2-13.5-1.6-19.4 1.4-3.5 1.8-6.1 4.6-8.7 7.1-2.6 2.6-5.1 4.9-8.2 6-4.3 1.6-9.4-.3-11.7-4.4-2.3-4.1-1.7-10.6 2.6-15.1 4.5-4.9 6.3-13.5 8.2-21.5 1.9-8.1 3.9-16.3 9.6-21.1 2.4-2 5.3-3.2 8.3-3.5 2 12.3 9.2 23.4 19.5 31.1 1.4 1 1 3.6-.5 4.1-5.1 1.6-7.4 6.5-4.8 10.4 2.5 3.7 7.9 4.7 11.6 2.2 3.8-2.5 5.1-7.8 2.6-11.6-.5-.8-1.2-1.4-1.9-1.9 1.4-.5 2.4-1.8 2.1-3.2-.3-1.3-1.7-2.2-3-2.2h-.7c3.4-3.7 6.2-8.1 7.9-13 4.3.3 8.4 2 11.3 5.1 4.4 4.8 5.3 11.7 7.1 18 1.8 6.2 4.5 12.4 10.2 15.7 2.5 1.4 5.6 2 8.5 1 2.5-.9 4.3-3.1 5-5.7.4-1.5.2-3.1-.4-4.5-1.4-3.2-4.6-5-7.6-6.6-3-1.5-6.2-3-8-5.8-1.6-2.5-2-5.6-1.2-8.5.6-2.2 2.1-4.2 4.2-5 3.2-1.2 6.7.3 8.5 3.1 1 1.5 1.4 3.4 1.2 5.2.2.5.4 1 .5 1.5.3 1 .5 2.1.5 3.2 0 3.5-1.3 6.8-3.5 9.3 2.4 1.7 5.2 2.7 8.2 2.7 4.4 0 8.5-2.1 11.1-5.5 2.8-3.7 3.5-8.6 1.8-12.9z"/></svg>
|
||||
{{ tab.label }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Download buttons -->
|
||||
<div class="download-section">
|
||||
<div class="download-grid">
|
||||
<a
|
||||
v-for="item in currentDownloads"
|
||||
:key="item.file"
|
||||
:href="downloadUrl(item)"
|
||||
:class="['dl-btn', item.primary ? 'dl-primary' : 'dl-secondary']"
|
||||
>
|
||||
<AppleOutlined v-if="activeOS === 'macos'" class="btn-icon" />
|
||||
<WindowsOutlined v-else-if="activeOS === 'windows'" class="btn-icon" />
|
||||
<svg v-else class="btn-icon" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 448 512" fill="currentColor"><path d="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 85.4 157.7 130.9c.3 30.4-16.3 51-33.4 72-15.2 18-35.1 44.3-46.5 74.4-9.3 24.6-12.9 51.8-3.7 79.1-1.4.5-2.8 1.2-4.1 2-1.4.8-2.7 1.8-4 2.9-6.6 5.6-8.7 14.3-10.5 22.4-1.9 8.1-3.6 15.7-7.2 19.7-6.3 6.7-7.1 16.5-3.5 22.9 3.6 6.4 11.5 9.5 18.5 6.9 3.6-1.3 6.5-4 9.1-6.5 2.5-2.5 4.9-5 7.9-6.5 5.4-2.8 12.4-2.3 19-1.2 6.8 1.2 13.2 3.1 18.8 1.9 12.2-2.6 16.5-11.1 23.7-16.9.5-.4.4-1.2-.1-1.6-.4-.3-1-.3-1.4.1-3.6 4-10.1 12.6-19.4 14.5-5.1 1-11.1-1-17.5-2.1-6.4-1.2-13.5-1.6-19.4 1.4-3.5 1.8-6.1 4.6-8.7 7.1-2.6 2.6-5.1 4.9-8.2 6-4.3 1.6-9.4-.3-11.7-4.4-2.3-4.1-1.7-10.6 2.6-15.1 4.5-4.9 6.3-13.5 8.2-21.5 1.9-8.1 3.9-16.3 9.6-21.1 2.4-2 5.3-3.2 8.3-3.5 2 12.3 9.2 23.4 19.5 31.1 1.4 1 1 3.6-.5 4.1-5.1 1.6-7.4 6.5-4.8 10.4 2.5 3.7 7.9 4.7 11.6 2.2 3.8-2.5 5.1-7.8 2.6-11.6-.5-.8-1.2-1.4-1.9-1.9 1.4-.5 2.4-1.8 2.1-3.2-.3-1.3-1.7-2.2-3-2.2h-.7c3.4-3.7 6.2-8.1 7.9-13 4.3.3 8.4 2 11.3 5.1 4.4 4.8 5.3 11.7 7.1 18 1.8 6.2 4.5 12.4 10.2 15.7 2.5 1.4 5.6 2 8.5 1 2.5-.9 4.3-3.1 5-5.7.4-1.5.2-3.1-.4-4.5-1.4-3.2-4.6-5-7.6-6.6-3-1.5-6.2-3-8-5.8-1.6-2.5-2-5.6-1.2-8.5.6-2.2 2.1-4.2 4.2-5 3.2-1.2 6.7.3 8.5 3.1 1 1.5 1.4 3.4 1.2 5.2.2.5.4 1 .5 1.5.3 1 .5 2.1.5 3.2 0 3.5-1.3 6.8-3.5 9.3 2.4 1.7 5.2 2.7 8.2 2.7 4.4 0 8.5-2.1 11.1-5.5 2.8-3.7 3.5-8.6 1.8-12.9z"/></svg>
|
||||
<span>{{ itemLabel(item) }}</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- System requirement -->
|
||||
<div class="sys-req">
|
||||
<span class="sys-req-label">{{ isZh ? '系统要求' : 'System Requirements' }}:</span>
|
||||
{{ sysReq }}
|
||||
</div>
|
||||
|
||||
<!-- GitHub Releases link -->
|
||||
<a
|
||||
class="releases-link"
|
||||
href="https://github.com/AQBot-Desktop/AQBot/releases"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
>
|
||||
{{ isZh ? '前往 GitHub Releases 下载更多版本' : 'View all versions on GitHub Releases' }}
|
||||
<LinkOutlined />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Installation instructions -->
|
||||
<div class="install-section">
|
||||
<h3 class="section-title">{{ isZh ? '安装说明' : 'Installation' }}</h3>
|
||||
<div v-for="(inst, idx) in installInstructions" :key="idx" class="install-block">
|
||||
<h4 v-if="installInstructions.length > 1" class="install-subtitle">
|
||||
{{ isZh ? inst.titleZh : inst.titleEn }}
|
||||
</h4>
|
||||
<ol class="install-steps">
|
||||
<li v-for="(step, si) in (isZh ? inst.stepsZh : inst.stepsEn)" :key="si">
|
||||
{{ step }}
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.download-page {
|
||||
max-width: 720px;
|
||||
margin: 0 auto;
|
||||
padding: 48px 24px 64px;
|
||||
}
|
||||
|
||||
/* Version header */
|
||||
.version-header {
|
||||
text-align: center;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.version-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--vp-c-brand-1);
|
||||
background: var(--vp-c-brand-soft);
|
||||
padding: 6px 16px;
|
||||
border-radius: 20px;
|
||||
letter-spacing: 0.02em;
|
||||
text-decoration: none;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
|
||||
.version-badge:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/* OS Tabs */
|
||||
.os-tabs {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 8px;
|
||||
margin-bottom: 32px;
|
||||
border-bottom: 1px solid var(--vp-c-divider);
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.os-tab {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 12px 24px;
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
color: var(--vp-c-text-2);
|
||||
background: none;
|
||||
border: none;
|
||||
border-bottom: 2px solid transparent;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.os-tab:hover {
|
||||
color: var(--vp-c-text-1);
|
||||
}
|
||||
|
||||
.os-tab.active {
|
||||
color: var(--vp-c-brand-1);
|
||||
border-bottom-color: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
.tab-icon {
|
||||
flex-shrink: 0;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.os-tab.active .tab-icon {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Download section */
|
||||
.download-section {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.download-grid {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.dl-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
padding: 0 24px;
|
||||
height: 52px;
|
||||
border-radius: 12px;
|
||||
font-weight: 500;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
background: var(--vp-c-bg-soft);
|
||||
border: 1px solid var(--vp-c-divider);
|
||||
color: var(--vp-c-text-2);
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.dl-btn:hover {
|
||||
border-color: var(--vp-c-brand-1);
|
||||
color: var(--vp-c-text-1);
|
||||
background: var(--vp-c-brand-soft);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.dl-primary {
|
||||
font-size: 16px;
|
||||
color: var(--vp-c-text-1);
|
||||
}
|
||||
|
||||
.dl-secondary {
|
||||
font-size: 14px;
|
||||
color: var(--vp-c-text-1);
|
||||
}
|
||||
|
||||
.btn-icon {
|
||||
flex-shrink: 0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* System requirements */
|
||||
.sys-req {
|
||||
margin-top: 16px;
|
||||
padding: 12px 16px;
|
||||
border-radius: 8px;
|
||||
background: var(--vp-c-bg-soft);
|
||||
font-size: 13px;
|
||||
color: var(--vp-c-text-2);
|
||||
}
|
||||
|
||||
.sys-req-label {
|
||||
font-weight: 600;
|
||||
color: var(--vp-c-text-1);
|
||||
}
|
||||
|
||||
/* Releases link */
|
||||
.releases-link {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
margin-top: 16px;
|
||||
font-size: 14px;
|
||||
color: var(--vp-c-brand-1);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.releases-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Installation section */
|
||||
.install-section {
|
||||
border-top: 1px solid var(--vp-c-divider);
|
||||
padding-top: 32px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: var(--vp-c-text-1);
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.install-block {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.install-subtitle {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--vp-c-text-2);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.install-steps {
|
||||
margin: 0;
|
||||
padding-left: 20px;
|
||||
color: var(--vp-c-text-2);
|
||||
font-size: 14px;
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
.install-steps li {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
/* Mobile responsive */
|
||||
@media (max-width: 640px) {
|
||||
.download-page {
|
||||
padding: 32px 16px 48px;
|
||||
}
|
||||
|
||||
.os-tabs {
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.os-tab {
|
||||
padding: 10px 16px;
|
||||
font-size: 14px;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.tab-icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.dl-btn {
|
||||
padding: 0 16px;
|
||||
height: 48px;
|
||||
}
|
||||
|
||||
.dl-primary {
|
||||
font-size: 15px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,166 @@
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
import { useData } from 'vitepress';
|
||||
import {
|
||||
RobotOutlined,
|
||||
ThunderboltOutlined,
|
||||
ApiOutlined,
|
||||
CloudServerOutlined,
|
||||
BookOutlined,
|
||||
SearchOutlined,
|
||||
EditOutlined,
|
||||
DesktopOutlined,
|
||||
LockOutlined,
|
||||
} from '@ant-design/icons-vue';
|
||||
|
||||
const iconMap: Record<string, any> = {
|
||||
robot: RobotOutlined,
|
||||
thunderbolt: ThunderboltOutlined,
|
||||
api: ApiOutlined,
|
||||
'cloud-server': CloudServerOutlined,
|
||||
book: BookOutlined,
|
||||
search: SearchOutlined,
|
||||
edit: EditOutlined,
|
||||
desktop: DesktopOutlined,
|
||||
lock: LockOutlined,
|
||||
};
|
||||
|
||||
const { frontmatter } = useData();
|
||||
const features = computed(() => frontmatter.value.features || []);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="features-grid" v-if="features.length">
|
||||
<div class="features-container">
|
||||
<div
|
||||
v-for="(feature, index) in features"
|
||||
:key="index"
|
||||
class="feature-card"
|
||||
>
|
||||
<div class="card-inner">
|
||||
<div class="icon-wrapper">
|
||||
<component
|
||||
:is="iconMap[feature.icon] || RobotOutlined"
|
||||
class="feature-icon"
|
||||
/>
|
||||
</div>
|
||||
<h3 class="feature-title">{{ feature.title }}</h3>
|
||||
<p class="feature-details">{{ feature.details }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.features-grid {
|
||||
max-width: 1152px;
|
||||
margin: 0 auto;
|
||||
padding: 0 24px 48px;
|
||||
}
|
||||
|
||||
.features-container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.feature-card {
|
||||
position: relative;
|
||||
border-radius: 12px;
|
||||
background: var(--vp-c-bg-soft);
|
||||
border: 1px solid var(--vp-c-divider);
|
||||
transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.feature-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
border-radius: 12px;
|
||||
padding: 1px;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
transparent 0%,
|
||||
transparent 100%
|
||||
);
|
||||
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
|
||||
-webkit-mask-composite: xor;
|
||||
mask-composite: exclude;
|
||||
opacity: 0;
|
||||
transition: opacity 0.35s ease;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.feature-card:hover {
|
||||
border-color: var(--vp-c-brand-1);
|
||||
box-shadow:
|
||||
0 0 0 1px var(--vp-c-brand-1),
|
||||
0 4px 24px rgba(48, 151, 49, 0.15),
|
||||
0 0 48px rgba(48, 151, 49, 0.08);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.dark .feature-card:hover {
|
||||
box-shadow:
|
||||
0 0 0 1px var(--vp-c-brand-1),
|
||||
0 4px 24px rgba(63, 186, 64, 0.2),
|
||||
0 0 48px rgba(63, 186, 64, 0.1);
|
||||
}
|
||||
|
||||
.card-inner {
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
.icon-wrapper {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 10px;
|
||||
background: var(--vp-c-default-soft);
|
||||
margin-bottom: 16px;
|
||||
transition: all 0.35s ease;
|
||||
}
|
||||
|
||||
.feature-card:hover .icon-wrapper {
|
||||
background: var(--vp-c-brand-soft);
|
||||
}
|
||||
|
||||
.feature-icon {
|
||||
font-size: 24px;
|
||||
color: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
.feature-title {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: var(--vp-c-text-1);
|
||||
margin: 0 0 8px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.feature-details {
|
||||
font-size: 14px;
|
||||
color: var(--vp-c-text-2);
|
||||
margin: 0;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
@media (max-width: 960px) {
|
||||
.features-container {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.features-container {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.features-grid {
|
||||
padding: 0 16px 32px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,51 @@
|
||||
<script setup lang="ts">
|
||||
import DefaultTheme from 'vitepress/theme';
|
||||
import { useData } from 'vitepress';
|
||||
import DownloadBar from './DownloadBar.vue';
|
||||
import ImageCarousel from './ImageCarousel.vue';
|
||||
import FeaturesGrid from './FeaturesGrid.vue';
|
||||
|
||||
const { Layout } = DefaultTheme;
|
||||
const { frontmatter } = useData();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Layout>
|
||||
<template #home-hero-info-after>
|
||||
<div v-if="frontmatter?.layout === 'home'" class="hero-actions-custom">
|
||||
<DownloadBar />
|
||||
</div>
|
||||
</template>
|
||||
<template #home-features-before>
|
||||
<div v-if="frontmatter?.layout === 'home'">
|
||||
<ImageCarousel />
|
||||
</div>
|
||||
</template>
|
||||
<template #home-features-after>
|
||||
<div v-if="frontmatter?.layout === 'home'">
|
||||
<FeaturesGrid />
|
||||
</div>
|
||||
</template>
|
||||
<template #layout-bottom>
|
||||
<footer class="site-footer">
|
||||
<p>© 2026 AQBot</p>
|
||||
</footer>
|
||||
</template>
|
||||
</Layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.hero-actions-custom {
|
||||
width: 100%;
|
||||
}
|
||||
.site-footer {
|
||||
text-align: center;
|
||||
padding: 24px 0;
|
||||
color: var(--vp-c-text-3);
|
||||
font-size: 14px;
|
||||
border-top: 1px solid var(--vp-c-divider);
|
||||
}
|
||||
.site-footer p {
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,175 @@
|
||||
<script setup lang="ts">
|
||||
import { Swiper, SwiperSlide } from 'swiper/vue';
|
||||
import { Autoplay, Pagination, Navigation } from 'swiper/modules';
|
||||
import { ChevronLeft, ChevronRight } from 'lucide-vue-next';
|
||||
|
||||
import 'swiper/css';
|
||||
import 'swiper/css/pagination';
|
||||
import 'swiper/css/navigation';
|
||||
|
||||
const modules = [Autoplay, Pagination, Navigation];
|
||||
|
||||
const screenshots = [
|
||||
'/screenshots/s1-0412.png',
|
||||
'/screenshots/s2-0412.png',
|
||||
'/screenshots/s3-0412.png',
|
||||
'/screenshots/s4-0412.png',
|
||||
'/screenshots/s5-0412.png',
|
||||
'/screenshots/s6-0412.png',
|
||||
'/screenshots/s7-0412.png',
|
||||
'/screenshots/s8-0412.png',
|
||||
'/screenshots/s9-0412.png',
|
||||
'/screenshots/s10-0412.png',
|
||||
];
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="carousel-section">
|
||||
<Swiper
|
||||
:modules="modules"
|
||||
:slides-per-view="1"
|
||||
:space-between="16"
|
||||
:loop="true"
|
||||
:autoplay="{ delay: 4000, disableOnInteraction: false, pauseOnMouseEnter: true }"
|
||||
:pagination="{ clickable: true }"
|
||||
:navigation="{ nextEl: '.carousel-next', prevEl: '.carousel-prev' }"
|
||||
class="screenshots-swiper"
|
||||
>
|
||||
<SwiperSlide v-for="(src, idx) in screenshots" :key="idx">
|
||||
<div class="slide-wrapper">
|
||||
<img :src="src" :alt="`AQBot Screenshot ${idx + 1}`" loading="lazy" />
|
||||
</div>
|
||||
</SwiperSlide>
|
||||
</Swiper>
|
||||
<button class="carousel-nav carousel-prev" aria-label="Previous slide">
|
||||
<ChevronLeft :size="24" />
|
||||
</button>
|
||||
<button class="carousel-nav carousel-next" aria-label="Next slide">
|
||||
<ChevronRight :size="24" />
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.carousel-section {
|
||||
position: relative;
|
||||
max-width: 960px;
|
||||
margin: 40px auto 24px;
|
||||
padding: 0 24px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.carousel-section {
|
||||
padding: 0 48px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
.carousel-section {
|
||||
padding: 0 64px;
|
||||
}
|
||||
}
|
||||
|
||||
.screenshots-swiper {
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
.slide-wrapper {
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
|
||||
background: var(--vp-c-bg-soft);
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
.slide-wrapper:hover {
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.dark .slide-wrapper {
|
||||
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.dark .slide-wrapper:hover {
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.slide-wrapper img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Navigation arrows */
|
||||
.carousel-nav {
|
||||
position: absolute;
|
||||
top: calc(50% - 20px);
|
||||
transform: translateY(-50%);
|
||||
z-index: 10;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
border-radius: 50%;
|
||||
border: 1px solid var(--vp-c-divider);
|
||||
background: var(--vp-c-bg);
|
||||
color: var(--vp-c-text-2);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
.carousel-nav:hover {
|
||||
border-color: var(--vp-c-brand-1);
|
||||
color: var(--vp-c-brand-1);
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.dark .carousel-nav {
|
||||
background: var(--vp-c-bg-soft);
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.carousel-prev {
|
||||
left: 4px;
|
||||
}
|
||||
|
||||
.carousel-next {
|
||||
right: 4px;
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.carousel-prev { left: 16px; }
|
||||
.carousel-next { right: 16px; }
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
.carousel-prev { left: 28px; }
|
||||
.carousel-next { right: 28px; }
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.carousel-nav {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Swiper pagination bullets */
|
||||
:deep(.swiper-pagination-bullet) {
|
||||
background: var(--vp-c-text-3);
|
||||
opacity: 0.4;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
transition: all 0.25s ease;
|
||||
}
|
||||
|
||||
:deep(.swiper-pagination-bullet-active) {
|
||||
background: var(--vp-c-brand-1);
|
||||
opacity: 1;
|
||||
width: 24px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,209 @@
|
||||
:root {
|
||||
--vp-c-brand-1: #309731;
|
||||
--vp-c-brand-2: #27802a;
|
||||
--vp-c-brand-3: #1f6922;
|
||||
--vp-c-brand-soft: rgba(48, 151, 49, 0.14);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-c-brand-1: #3fba40;
|
||||
--vp-c-brand-2: #309731;
|
||||
--vp-c-brand-3: #27802a;
|
||||
--vp-c-brand-soft: rgba(63, 186, 64, 0.16);
|
||||
}
|
||||
|
||||
/* Hero name gradient with brand green */
|
||||
:root {
|
||||
--vp-home-hero-name-color: transparent;
|
||||
--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #309731 30%, #56c457);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #3fba40 30%, #7ade7b);
|
||||
}
|
||||
|
||||
/* Hero: center text, hide image area */
|
||||
.VPHero .VPImage,
|
||||
.VPHero .image-container,
|
||||
.VPHero .image {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Override default hero layout for centered text-only hero */
|
||||
.VPHero .container {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.VPHero .main {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
.VPHero .heading {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.VPHero .name,
|
||||
.VPHero .text {
|
||||
margin: 0 auto !important;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
.VPHero .tagline {
|
||||
margin: 0 auto !important;
|
||||
text-align: center !important;
|
||||
max-width: 576px !important;
|
||||
}
|
||||
|
||||
/* Remove default hero actions (we use custom ones) */
|
||||
.VPHero .actions {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Hide default VitePress features (we render custom FeaturesGrid) */
|
||||
.VPFeatures {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Reduce hero vertical space */
|
||||
@media (min-width: 960px) {
|
||||
.VPHero {
|
||||
padding-top: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) !important;
|
||||
padding-bottom: 32px !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Nav icons via ::before pseudo-elements */
|
||||
.VPNavBarMenuLink[href="/"],
|
||||
.VPNavBarMenuLink[href="/zh/"],
|
||||
.VPNavBarMenuLink[href="/zh-tw/"],
|
||||
.VPNavBarMenuLink[href="/ja/"],
|
||||
.VPNavBarMenuLink[href="/ko/"],
|
||||
.VPNavBarMenuLink[href="/fr/"],
|
||||
.VPNavBarMenuLink[href="/de/"],
|
||||
.VPNavBarMenuLink[href="/es/"],
|
||||
.VPNavBarMenuLink[href="/ru/"],
|
||||
.VPNavBarMenuLink[href="/hi/"],
|
||||
.VPNavBarMenuLink[href="/ar/"] {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
.VPNavBarMenuLink[href="/"]::before,
|
||||
.VPNavBarMenuLink[href="/zh/"]::before,
|
||||
.VPNavBarMenuLink[href="/zh-tw/"]::before,
|
||||
.VPNavBarMenuLink[href="/ja/"]::before,
|
||||
.VPNavBarMenuLink[href="/ko/"]::before,
|
||||
.VPNavBarMenuLink[href="/fr/"]::before,
|
||||
.VPNavBarMenuLink[href="/de/"]::before,
|
||||
.VPNavBarMenuLink[href="/es/"]::before,
|
||||
.VPNavBarMenuLink[href="/ru/"]::before,
|
||||
.VPNavBarMenuLink[href="/hi/"]::before,
|
||||
.VPNavBarMenuLink[href="/ar/"]::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
background-color: var(--vp-c-text-2);
|
||||
-webkit-mask-size: contain;
|
||||
mask-size: contain;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-position: center;
|
||||
mask-position: center;
|
||||
transition: background-color 0.25s;
|
||||
}
|
||||
|
||||
/* Home icon (nav item 1) */
|
||||
.VPNavBarMenuLink[href="/"]::before,
|
||||
.VPNavBarMenuLink[href="/zh/"]::before,
|
||||
.VPNavBarMenuLink[href="/zh-tw/"]::before,
|
||||
.VPNavBarMenuLink[href="/ja/"]::before,
|
||||
.VPNavBarMenuLink[href="/ko/"]::before,
|
||||
.VPNavBarMenuLink[href="/fr/"]::before,
|
||||
.VPNavBarMenuLink[href="/de/"]::before,
|
||||
.VPNavBarMenuLink[href="/es/"]::before,
|
||||
.VPNavBarMenuLink[href="/ru/"]::before,
|
||||
.VPNavBarMenuLink[href="/hi/"]::before,
|
||||
.VPNavBarMenuLink[href="/ar/"]::before {
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z'/%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
/* Features icon (nav item 2) */
|
||||
.VPNavBarMenuLink[href*="/features"]::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
background-color: var(--vp-c-text-2);
|
||||
-webkit-mask-size: contain;
|
||||
mask-size: contain;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-position: center;
|
||||
mask-position: center;
|
||||
transition: background-color 0.25s;
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z'/%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
/* Download icon (nav item 3) */
|
||||
.VPNavBarMenuLink[href*="/download"]::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
background-color: var(--vp-c-text-2);
|
||||
-webkit-mask-size: contain;
|
||||
mask-size: contain;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-position: center;
|
||||
mask-position: center;
|
||||
transition: background-color 0.25s;
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z'/%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
/* Docs icon (nav item 4) */
|
||||
.VPNavBarMenuLink[href*="/guide/"]::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
background-color: var(--vp-c-text-2);
|
||||
-webkit-mask-size: contain;
|
||||
mask-size: contain;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-position: center;
|
||||
mask-position: center;
|
||||
transition: background-color 0.25s;
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 00324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6c41.3-26.6 89.3-40.7 138.4-40.7H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488z'/%3E%3C/svg%3E");
|
||||
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 00324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6c41.3-26.6 89.3-40.7 138.4-40.7H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
/* Features/download/docs links also need flex layout */
|
||||
.VPNavBarMenuLink[href*="/features"],
|
||||
.VPNavBarMenuLink[href*="/download"],
|
||||
.VPNavBarMenuLink[href*="/guide/"] {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
/* Nav icon color follows link text: default muted, active = brand color */
|
||||
.VPNavBarMenuLink:hover::before,
|
||||
.VPNavBarMenuLink.active::before {
|
||||
background-color: var(--vp-c-brand-1) !important;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
import DefaultTheme from 'vitepress/theme';
|
||||
import { useRouter, inBrowser } from 'vitepress';
|
||||
import { onMounted } from 'vue';
|
||||
import HomeLayout from './HomeLayout.vue';
|
||||
import DownloadHero from './DownloadHero.vue';
|
||||
import './custom.css';
|
||||
|
||||
export default {
|
||||
extends: DefaultTheme,
|
||||
Layout: HomeLayout,
|
||||
enhanceApp({ app }) {
|
||||
app.component('DownloadHero', DownloadHero);
|
||||
},
|
||||
setup() {
|
||||
const router = useRouter();
|
||||
|
||||
onMounted(() => {
|
||||
if (!inBrowser) return;
|
||||
const path = window.location.pathname;
|
||||
if (path !== '/') return;
|
||||
const lang = navigator.language || navigator.languages?.[0] || '';
|
||||
if (/^zh/i.test(lang)) {
|
||||
router.go('/zh/');
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# الميزات
|
||||
|
||||
BoosApi هو مساحة عمل AI مكتبية local-first. تم تحديث هذه الصفحة لـ v0.0.85 لتشمل import للمزوّدين، import للبيانات من التطبيقات الأخرى، MCP، HTML rendering، backup وgateway.
|
||||
|
||||
## الدردشة والنماذج
|
||||
|
||||
- **Multi-provider chat** — اربط OpenAI وClaude وGemini وDeepSeek وQwen وأي OpenAI-compatible endpoint مع Base URL وAPI Path وheaders وproxy rules.
|
||||
- **تهيئة المزوّدين** — استخدم boosapi:// provider links وCC Switch import لجلب provider profiles إلى BoosApi بعد تأكيد المستخدم.
|
||||
- **إدارة النماذج** — زامن remote model lists، ونظّم groups، واختبر latency، واضبط capabilities وcontext length وsampling defaults وreasoning profiles وper-model extra_body.
|
||||
- **مسارات المحادثة** — Streaming replies وthinking blocks وmessage versions وbranches وtitle-generation status وlong chat compression وmulti-model comparison.
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Agent mode** — يمكن للنموذج تعديل الملفات وتشغيل الأوامر وتحليل الكود داخل desktop workflow مضبوط.
|
||||
- **التحكم في الصلاحيات** — اختر standard review أو auto-accept edits أو full-access mode مع استمرار working-directory sandbox checks.
|
||||
- **الموافقة والتكلفة** — راجع tool calls لحظياً، واحفظ allow decisions، وتابع token/cost لكل session.
|
||||
|
||||
## عرض المحتوى
|
||||
|
||||
- **Markdown والمعادلات** — اعرض Markdown وcode highlighting وtables وtask lists وLaTeX formulas داخل streaming conversations.
|
||||
- **الكود والمخططات وArtifact** — استخدم Monaco code blocks وMermaid وD2 وArtifact panel للكود والملاحظات والتقارير والمعاينات.
|
||||
- **HTML fragments** — عاين generated HTML fragments بأمان مع أحدث streaming stability fixes.
|
||||
|
||||
## البحث والمعرفة
|
||||
|
||||
- **Web search** — يدعم Tavily وZhipu WebSearch وBocha مع cited sources وgenerated search queries.
|
||||
- **Local knowledge base** — افهرس private documents باستخدام sqlite-vec واضبط retrieval/rerank options وراجع retrieval feedback.
|
||||
- **Context management** — أضف files وsearch results وknowledge snippets وmemories وtool output إلى conversation context.
|
||||
|
||||
## الأدوات والامتدادات
|
||||
|
||||
- **MCP protocol** — شغّل Model Context Protocol servers عبر stdio أو SSE أو StreamableHTTP.
|
||||
- **Built-in tools** — استخدم @boosapi/fetch وfile search بدون تثبيت server منفصل.
|
||||
- **Tool loop limit** — اضبط MCP tool-call loop count واستعد بشكل أفضل من interrupted أو stuck tool sessions.
|
||||
|
||||
## API gateway
|
||||
|
||||
- **Local gateway** — اعرض OpenAI Chat Completions وOpenAI Responses وClaude-native وGemini-native endpoints من desktop app.
|
||||
- **الوصول والمراقبة** — أدر gateway keys وSSL/TLS certificates وrequest logs وusage analytics محلياً.
|
||||
- **Client templates** — Templates جاهزة لـ Claude Code وCodex CLI وOpenCode وGemini CLI وcustom clients.
|
||||
|
||||
## استيراد البيانات والنسخ الاحتياطي
|
||||
|
||||
- **Third-party imports** — استورد ChatGPT official exports وCherry Studio backups وKelivo backups مع preview counts وwarnings وduplicate handling.
|
||||
- **Provider and file migration** — يمكن لـ Cherry Studio/Kelivo import نقل linked providers وAPI keys وfile attachments اختيارياً.
|
||||
- **Backups** — انسخ واستعد البيانات عبر local folders أو WebDAV أو S3-compatible storage.
|
||||
|
||||
## سطح المكتب والأمان
|
||||
|
||||
- **Local encryption** — يُحفظ app state في ~/.boosapi/ وuser files في ~/Documents/boosapi/، وتُحمى API keys عبر AES-256 وlocal master key.
|
||||
- **Desktop integration** — Tray وalways-on-top وglobal shortcuts وauto-start وproxy settings وautomatic update checks.
|
||||
- **11 interface languages** — بدّل بين Simplified Chinese وTraditional Chinese وEnglish وJapanese وKorean وFrench وGerman وSpanish وRussian وHindi وArabic.
|
||||
@@ -0,0 +1,74 @@
|
||||
# بوابة API
|
||||
|
||||
## ما هي بوابة API؟
|
||||
|
||||
يتضمن BoosApi خادم API محلي مدمجاً يكشف مزوّديك المُكوَّنين كطرف **متوافق مع OpenAI** و**Claude الأصلي** و**Gemini الأصلي**. أي أداة أو عميل يستخدم أحد هذه البروتوكولات يمكنه استخدام BoosApi كخلفية — دون مفاتيح API منفصلة أو خدمات وسيطة مطلوبة.
|
||||
|
||||
حالات الاستخدام:
|
||||
|
||||
- تشغيل **Claude Code CLI** أو **OpenAI Codex CLI** أو **Gemini CLI** أو **OpenCode** عبر BoosApi.
|
||||
- تغذية امتدادات IDE الخاصة بك بطرف واحد مُدار محلياً.
|
||||
- مشاركة مجموعة من مفاتيح المزوّد عبر أدوات كثيرة مع تحديد معدل لكل مفتاح.
|
||||
|
||||
---
|
||||
|
||||
## البدء
|
||||
|
||||
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 Key: boosapi-xxxx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## الخطوات التالية
|
||||
|
||||
- [البدء السريع](./getting-started) — العودة إلى دليل البدء السريع
|
||||
- [إعداد المزوّدين](./providers) — إضافة المزوّدين الأولين الذين توجّه إليهم البوابة
|
||||
- [خوادم MCP](./mcp) — توصيل أدوات خارجية لاستدعاء أدوات AI
|
||||
@@ -0,0 +1,119 @@
|
||||
# البدء السريع
|
||||
|
||||
## التثبيت
|
||||
|
||||
نزّل أحدث مثبّت من [صفحة التنزيل](/ar/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** إلى مجلد **Applications**.
|
||||
2. أطلق BoosApi. إذا حظرت macOS التطبيق، اذهب إلى **إعدادات النظام ← الخصوصية والأمان** وانقر **فتح على أي حال**.
|
||||
|
||||
::: warning macOS: "التطبيق تالف" أو "لا يمكن التحقق من المطوّر"
|
||||
إذا رأيت أياً من هذه الرسائل، افتح Terminal ونفّذ:
|
||||
|
||||
```bash
|
||||
xattr -c /Applications/BoosApi.app
|
||||
```
|
||||
|
||||
ثم أعد تشغيل التطبيق.
|
||||
:::
|
||||
|
||||
### Windows
|
||||
|
||||
| البنية | الملف |
|
||||
|--------|-------|
|
||||
| x64 (معظم الأجهزة) | `BoosApi_x.x.x_x64-setup.exe` |
|
||||
| ARM64 | `BoosApi_x.x.x_arm64-setup.exe` |
|
||||
|
||||
شغّل المثبّت واتبع المعالج.
|
||||
|
||||
### Linux
|
||||
|
||||
```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** — الطرف الرسمي مُملوء مسبقاً للأنواع المدمجة.
|
||||
|
||||
::: tip
|
||||
يمكنك إضافة أي عدد من المزوّدين. كل مزوّد يدير مفاتيح API ونماذجه بشكل مستقل.
|
||||
:::
|
||||
|
||||
### 3. جلب النماذج
|
||||
|
||||
انقر **جلب النماذج** للحصول على قائمة النماذج المتاحة من API المزوّد. يمكنك أيضاً إضافة معرّفات النماذج يدوياً إذا لزم.
|
||||
|
||||
### 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) — إضافة وإدارة مزوّدي AI
|
||||
- [خوادم MCP](./mcp) — توصيل أدوات خارجية لتوسيع قدرات AI
|
||||
- [بوابة API](./gateway) — كشف مزوّديك كخادم API محلي
|
||||
@@ -0,0 +1,62 @@
|
||||
# خوادم MCP
|
||||
|
||||
## ما هو MCP؟
|
||||
|
||||
[بروتوكول Model Context Protocol (MCP)](https://modelcontextprotocol.io/) معيار مفتوح يتيح لنماذج AI التفاعل مع الأدوات ومصادر البيانات الخارجية. يعمل BoosApi كعميل MCP — تضيف خوادم MCP ويمكن لـ AI استدعاء الأدوات التي تكشفها خلال المحادثة.
|
||||
|
||||
---
|
||||
|
||||
## بروتوكولات النقل
|
||||
|
||||
| البروتوكول | الاتصال | حالة الاستخدام | التكوين |
|
||||
|-----------|---------|--------------|---------|
|
||||
| **Stdio** | عملية محلية | أدوات مثبّتة على جهازك، يتم إطلاقها عبر `npx` أو `uvx` أو `python`، إلخ | `command` + `args` + `env` اختياري |
|
||||
| **SSE** | خادم بعيد | طرف Server-Sent Events مستضاف على جهاز بعيد | `url` |
|
||||
| **StreamableHTTP** | خادم بعيد | طرف HTTP للبث، بديل أحدث لـ 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** | البحث عن الملفات في نظام الملفات المحلي |
|
||||
|
||||
---
|
||||
|
||||
## Tool loop limit
|
||||
|
||||
في Settings -> MCP يمكن ضبط الحد الأقصى لعدد consecutive tool-call iterations داخل MCP-enabled response. اخفض الحد عند اختبار unknown servers، وارفعه للـ workflows التي تحتاج chaining لعدة tools.
|
||||
|
||||
## الخطوات التالية
|
||||
|
||||
- [بوابة API](./gateway) — كشف مزوّديك كخادم API محلي
|
||||
- [البدء السريع](./getting-started) — العودة إلى دليل البدء السريع
|
||||
@@ -0,0 +1,143 @@
|
||||
# إعداد المزوّدين
|
||||
|
||||
يتصل BoosApi بأي عدد من مزوّدي AI في آنٍ واحد. لكل مزوّد مفاتيح 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 |
|
||||
| **API متوافق مع OpenAI** | Ollama، vLLM، LiteLLM، وسطاء الطرف الثالث، إلخ |
|
||||
|
||||
---
|
||||
|
||||
## إضافة مزوّد
|
||||
|
||||
1. اذهب إلى **الإعدادات ← المزوّدون**.
|
||||
2. انقر على زر **+** في أسفل اليسار.
|
||||
3. امأ تفاصيل المزوّد:
|
||||
|
||||
| الحقل | الوصف |
|
||||
|-------|-------|
|
||||
| **الاسم** | اسم العرض في الشريط الجانبي (مثلاً *OpenAI*) |
|
||||
| **النوع** | نوع المزوّد — يحدد Base URL الافتراضي |
|
||||
| **الأيقونة** | أيقونة اختيارية للتعرّف البصري |
|
||||
| **مفتاح API** | المفتاح السري من لوحة تحكم مزوّدك |
|
||||
| **Base URL** | طرف API (مملوء مسبقاً للأنواع المدمجة) |
|
||||
| **مسار API** | مسار الطلب — الافتراضي `/v1/chat/completions` |
|
||||
|
||||
---
|
||||
|
||||
## الاستيراد من رابط موقع ويب
|
||||
|
||||
يمكن لمواقع المزوّدين أو لوحات خدمات الوساطة أو منصات النماذج الخاصة أو صفحات البوابة المحلية توفير رابط **فتح في 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` | نعم | Base URL بعد ترميزه كرابط. يُقبل `http` و `https` فقط، ويتم رفض query و hash. |
|
||||
| `apikey` | نعم | مفتاح API المراد حفظه في BoosApi. يعرض BoosApi البادئة فقط في مربع التأكيد. |
|
||||
| `type` | نعم | نوع المزوّد. القيم المسموحة: `openai`، `openai_responses`، `anthropic`، `gemini`، `custom`. |
|
||||
|
||||
يمكن أن يستخدم `baseurl` لاحقة الإجبار الموجودة في 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://` بروتوكول مخصص يسجله تطبيق سطح المكتب المثبت في النظام. تشغيل الموقع أو خادم Vite فقط لا يسجل البروتوكول. إذا لم يفتح الرابط BoosApi، فثبّت أو أعد بناء أحدث تطبيق BoosApi لسطح المكتب أولاً.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Import من CC Switch
|
||||
|
||||
يمكن لـ BoosApi فحص CC Switch provider configurations من Settings -> Providers. راجع كل candidate، اختر importable rows، ثم import providers وBase URLs وAPI keys وmodel lists إلى BoosApi. يتم تخطي OAuth-only entries أو entries التي لا تحتوي على reusable keys مع سبب واضح.
|
||||
|
||||
## Advanced model request body
|
||||
|
||||
يمكن لكل model تعريف extra_body، وهو JSON object يضاف بشكل flat إلى OpenAI-compatible Chat Completions requests. يفيد ذلك في vendor-specific options مثل enable_thinking. يتحقق BoosApi من JSON ويمنع overwrite للحقول model وmessages وstream وtools وbase sampling fields.
|
||||
|
||||
## تدوير مفاتيح متعددة
|
||||
|
||||
يدعم BoosApi مفاتيح API متعددة لكل مزوّد. انقر **إضافة مفتاح** في لوحة تفاصيل المزوّد.
|
||||
|
||||
---
|
||||
|
||||
## إدارة النماذج
|
||||
|
||||
انقر **جلب النماذج** للحصول على القائمة الكاملة للنماذج المتاحة. يمكنك أيضاً إضافة معرّفات النماذج يدوياً.
|
||||
|
||||
---
|
||||
|
||||
## Ollama (النماذج المحلية)
|
||||
|
||||
1. ثبّت وأطلق [Ollama](https://ollama.com/).
|
||||
2. في BoosApi، أنشئ مزوّداً جديداً من النوع **OpenAI**.
|
||||
3. اضبط **Base URL** على `http://localhost:11434`.
|
||||
4. انقر **جلب النماذج** لاكتشاف النماذج المحمّلة محلياً.
|
||||
|
||||
---
|
||||
|
||||
## الخطوات التالية
|
||||
|
||||
- [خوادم MCP](./mcp) — توصيل أدوات خارجية لتوسيع قدرات AI
|
||||
- [بوابة API](./gateway) — كشف مزوّديك كخادم API محلي
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — open-source AI desktop client وgateway"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi هو free open-source AI desktop client يدعم multi-model chat وAgent وMCP وChatGPT/Cherry Studio/Kelivo import وlocal RAG وS3/WebDAV backup وbuilt-in AI gateway."
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "مساحة عمل AI على سطح المكتب"
|
||||
tagline: "Multi-model chat وAgent وMCP tools وAPI gateway وimports وknowledge base وbackups داخل عميل local-first واحد"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "البدء السريع"
|
||||
link: /ar/guide/getting-started
|
||||
- theme: alt
|
||||
text: "تحميل"
|
||||
link: /ar/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "Multi-model chat"
|
||||
details: "OpenAI وClaude وGemini وDeepSeek وQwen وcompatible APIs مع key rotation وbranches وcompression وmulti-model answers."
|
||||
- icon: api
|
||||
title: "Provider setup"
|
||||
details: "boosapi:// provider links وCC Switch import وcustom headers وproxy settings وOpenAI Responses وper-model extra_body."
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "File edits وcommands وcode analysis مع permission levels وworking-directory sandbox وapproval UI وcost tracking."
|
||||
- icon: edit
|
||||
title: "Rich rendering"
|
||||
details: "Markdown وLaTeX وMermaid وD2 وMonaco code blocks وHTML fragments وArtifact previews."
|
||||
- icon: search
|
||||
title: "Search وRAG"
|
||||
details: "Web search with citations وquery generation وlocal sqlite-vec knowledge bases وrerank settings وretrieval feedback."
|
||||
- icon: cloud-server
|
||||
title: "API gateway"
|
||||
details: "Local OpenAI-compatible وOpenAI Responses وClaude وGemini endpoints لـ Claude Code وCodex وOpenCode وcustom tools."
|
||||
- icon: book
|
||||
title: "Data import"
|
||||
details: "ChatGPT official exports وCherry Studio backups وKelivo backups مع duplicate handling وoptional provider migration."
|
||||
- icon: lock
|
||||
title: "Backup والأمان"
|
||||
details: "AES-256 encrypted local storage وdual-root data layout وlocal/WebDAV/S3 backups وrestore workflows."
|
||||
- icon: desktop
|
||||
title: "Desktop experience"
|
||||
details: "11 interface languages وtray mode وalways-on-top وglobal shortcuts وauto-start وproxy support وauto-update checks."
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# Funktionen
|
||||
|
||||
BoosApi ist ein local-first KI-Desktop-Workspace. Diese Seite ist für v0.0.85 aktualisiert und beschreibt Provider-Import, Drittanbieter-Datenimport, MCP, HTML-Rendering, Backup und Gateway.
|
||||
|
||||
## Chat & Modelle
|
||||
|
||||
- **Multi-Provider-Chat** — OpenAI, Claude, Gemini, DeepSeek, Qwen und OpenAI-kompatible Endpunkte mit Base URL, API Path, Headers und Proxy-Regeln verbinden.
|
||||
- **Provider-Onboarding** — boosapi:// Provider-Links und CC Switch-Import übernehmen Provider-Profile nach Benutzerbestätigung.
|
||||
- **Modellverwaltung** — Remote-Modelle synchronisieren, Gruppen, Latenz, Fähigkeiten, Kontextlänge, Sampling, Reasoning-Profile und extra_body pro Modell konfigurieren.
|
||||
- **Gesprächs-Workflows** — Streaming, Denkblöcke, Nachrichtenversionen, Branches, Titelstatus, Komprimierung und Multi-Modell-Vergleich.
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Agent-Modus** — Das Modell kann Dateien bearbeiten, Befehle ausführen und Code in einem kontrollierten Workflow analysieren.
|
||||
- **Berechtigungen** — Standardprüfung, Auto-Accept-Edits oder Vollzugriff mit aktiver Arbeitsverzeichnis-Sandbox.
|
||||
- **Freigabe und Kosten** — Tool-Aufrufe prüfen, Entscheidungen merken und Tokens/Kosten pro Session verfolgen.
|
||||
|
||||
## Inhaltsrendering
|
||||
|
||||
- **Markdown und Mathematik** — Markdown, Code, Tabellen, Aufgabenlisten und LaTeX in Streaming-Gesprächen rendern.
|
||||
- **Code, Diagramme, Artifacts** — Monaco, Mermaid, D2 und Artifact-Panel für Code, Markdown-Notizen, Reports und Vorschauen.
|
||||
- **HTML-Fragmente** — Generierte HTML-Fragmente sicher anzeigen, inklusive aktueller Streaming-Stabilitätsfixes.
|
||||
|
||||
## Suche & Wissen
|
||||
|
||||
- **Websuche** — Tavily, Zhipu WebSearch, Bocha mit Quellenangaben und Suchquery-Generierung.
|
||||
- **Lokale Wissensbasis** — Private Dokumente mit sqlite-vec indexieren, Retrieval/Rerank konfigurieren und Feedback prüfen.
|
||||
- **Kontextverwaltung** — Dateien, Suchergebnisse, Wissensausschnitte, Erinnerungen und Tool-Ausgaben anhängen.
|
||||
|
||||
## Werkzeuge & Erweiterungen
|
||||
|
||||
- **MCP-Protokoll** — Model Context Protocol-Server über stdio, SSE oder StreamableHTTP ausführen.
|
||||
- **Integrierte Tools** — @boosapi/fetch und Dateisuche ohne separaten Server nutzen.
|
||||
- **Tool-Loop-Limit** — Maximale MCP Tool-Call-Schleifen konfigurieren und blockierte Sessions besser wiederherstellen.
|
||||
|
||||
## API-Gateway
|
||||
|
||||
- **Lokales Gateway** — OpenAI Chat Completions, OpenAI Responses, Claude-native und Gemini-native Endpoints lokal bereitstellen.
|
||||
- **Zugriff und Beobachtung** — Gateway-Schlüssel, SSL/TLS, Request-Logs und Nutzungsanalysen lokal verwalten.
|
||||
- **Client-Templates** — Vorlagen für Claude Code, Codex CLI, OpenCode, Gemini CLI und Custom Clients.
|
||||
|
||||
## Datenimport & Backup
|
||||
|
||||
- **Drittanbieter-Importe** — ChatGPT, Cherry Studio und Kelivo mit Vorschau, Warnungen und Duplikatbehandlung importieren.
|
||||
- **Provider- und Dateimigration** — Cherry Studio/Kelivo können Provider, API Keys und Anhänge optional migrieren.
|
||||
- **Backups** — Backup/Restore über lokale Ordner, WebDAV oder S3-kompatiblen Speicher.
|
||||
|
||||
## Desktop & Sicherheit
|
||||
|
||||
- **Lokale Verschlüsselung** — App-Status in ~/.boosapi/, Benutzerdateien in ~/Documents/boosapi/, API Keys mit AES-256 geschützt.
|
||||
- **Desktop-Integration** — Tray, Always-on-top, globale Shortcuts, Auto-Start, Proxy und Update-Prüfung.
|
||||
- **11 UI-Sprachen** — Umschalten zwischen Chinesisch, Englisch, Japanisch, Koreanisch, Französisch, Deutsch, Spanisch, Russisch, Hindi und Arabisch.
|
||||
@@ -0,0 +1,74 @@
|
||||
# API-Gateway
|
||||
|
||||
## Was ist das API-Gateway?
|
||||
|
||||
BoosApi enthält einen integrierten lokalen API-Server, der Ihre konfigurierten Anbieter als **OpenAI-kompatible**, **Claude-native** und **Gemini-native** Endpoints exponiert. Jedes Tool oder jeder Client, der eines dieser Protokolle verwendet, kann BoosApi als Backend verwenden — keine separaten API-Schlüssel oder Relay-Dienste erforderlich.
|
||||
|
||||
Anwendungsfälle:
|
||||
|
||||
- Führen Sie **Claude Code CLI**, **OpenAI Codex CLI**, **Gemini CLI** oder **OpenCode** über BoosApi aus.
|
||||
- Verbinden Sie Ihre IDE-Erweiterungen mit einem einzigen, lokal verwalteten Endpoint.
|
||||
- Teilen Sie einen Satz von Anbieter-Schlüsseln über viele Tools mit schlüsselbasiertem Rate-Limiting.
|
||||
|
||||
---
|
||||
|
||||
## Erste Schritte
|
||||
|
||||
1. Öffnen Sie **Einstellungen → API-Gateway** (oder drücken Sie <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>).
|
||||
2. Klicken Sie auf **Starten**, um den Gateway-Server zu starten.
|
||||
3. Standardmäßig lauscht der Server auf `127.0.0.1:8080` (HTTP).
|
||||
|
||||
::: tip
|
||||
Aktivieren Sie **Auto-Start** in den Gateway-Einstellungen, um den Server automatisch beim Start von BoosApi zu starten.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## API-Schlüsselverwaltung
|
||||
|
||||
1. Gehen Sie zum Tab **API-Schlüssel**.
|
||||
2. Klicken Sie auf **Neuen Schlüssel generieren**.
|
||||
3. Fügen Sie optional eine **Beschreibung** hinzu (z.B. *Claude Code*, *VS Code*).
|
||||
4. Kopieren Sie den Schlüssel — er wird nur einmal angezeigt.
|
||||
|
||||
---
|
||||
|
||||
## Konfigurationsvorlagen
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
### Benutzerdefinierter Client
|
||||
|
||||
```
|
||||
Base URL: http://127.0.0.1:8080/v1
|
||||
API-Schlüssel: boosapi-xxxx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
- [Schnellstart](./getting-started) — Zum Schnellstartleitfaden zurückkehren
|
||||
- [Anbieter konfigurieren](./providers) — Die Upstream-Anbieter hinzufügen, zu denen das Gateway routet
|
||||
- [MCP-Server](./mcp) — Externe Tools für KI-Tool-Aufruf verbinden
|
||||
@@ -0,0 +1,128 @@
|
||||
# Schnellstart
|
||||
|
||||
## Installation
|
||||
|
||||
Laden Sie den neuesten Installer von der [Download-Seite](/de/download) oder [GitHub Releases](https://github.com/BoosApi-Desktop/BoosApi/releases) herunter.
|
||||
|
||||
### macOS
|
||||
|
||||
| Chip | Datei |
|
||||
|------|-------|
|
||||
| Apple Silicon (M1 / M2 / M3 / M4) | `BoosApi_x.x.x_aarch64.dmg` |
|
||||
| Intel | `BoosApi_x.x.x_x64.dmg` |
|
||||
|
||||
1. Öffnen Sie die `.dmg` und ziehen Sie **BoosApi** in den **Programme**-Ordner.
|
||||
2. Starten Sie BoosApi. Wenn macOS die App blockiert, gehen Sie zu **Systemeinstellungen → Datenschutz & Sicherheit** und klicken Sie auf **Trotzdem öffnen**.
|
||||
|
||||
::: warning macOS: „App ist beschädigt" oder „Entwickler kann nicht überprüft werden"
|
||||
Wenn Sie eine dieser Meldungen sehen, öffnen Sie Terminal und führen Sie aus:
|
||||
|
||||
```bash
|
||||
xattr -c /Applications/BoosApi.app
|
||||
```
|
||||
|
||||
Starten Sie die App dann erneut. Dies entfernt das Quarantäne-Flag, das macOS auf unsignierte Downloads anwendet.
|
||||
:::
|
||||
|
||||
### Windows
|
||||
|
||||
| Architektur | Datei |
|
||||
|-------------|-------|
|
||||
| x64 (die meisten PCs) | `BoosApi_x.x.x_x64-setup.exe` |
|
||||
| ARM64 | `BoosApi_x.x.x_arm64-setup.exe` |
|
||||
|
||||
Führen Sie den Installer aus und folgen Sie dem Assistenten. Starten Sie BoosApi über das Startmenü oder die Desktop-Verknüpfung.
|
||||
|
||||
### Linux
|
||||
|
||||
| Format | Architektur | Datei |
|
||||
|--------|-------------|-------|
|
||||
| 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` |
|
||||
| Beliebige Distribution | x64 | `BoosApi_x.x.x_amd64.AppImage` |
|
||||
| Beliebige Distribution | 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 (beliebige Distribution)
|
||||
chmod +x BoosApi_x.x.x_amd64.AppImage
|
||||
./BoosApi_x.x.x_amd64.AppImage
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ersteinrichtung
|
||||
|
||||
### 1. Einstellungen öffnen
|
||||
|
||||
Starten Sie BoosApi und klicken Sie auf das **Zahnrad-Symbol** unten in der Seitenleiste, oder drücken Sie <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd>.
|
||||
|
||||
### 2. Anbieter hinzufügen
|
||||
|
||||
Navigieren Sie zu **Einstellungen → Anbieter** und klicken Sie auf die Schaltfläche **+**.
|
||||
|
||||
1. Geben Sie einen Anzeigenamen ein (z.B. *OpenAI*).
|
||||
2. Wählen Sie den Anbietertyp (OpenAI, Anthropic, Google Gemini usw.).
|
||||
3. Fügen Sie Ihren API-Schlüssel ein.
|
||||
4. Bestätigen Sie die **Base URL** — für integrierte Typen ist der offizielle Endpoint vorausgefüllt.
|
||||
|
||||
::: tip
|
||||
Sie können beliebig viele Anbieter hinzufügen. Jeder Anbieter verwaltet seine eigenen API-Schlüssel und Modelle unabhängig.
|
||||
:::
|
||||
|
||||
### 3. Modelle abrufen
|
||||
|
||||
Klicken Sie auf **Modelle abrufen**, um die Liste der verfügbaren Modelle von der API des Anbieters zu laden. Sie können Modell-IDs auch manuell hinzufügen.
|
||||
|
||||
### 4. Standardmodell festlegen
|
||||
|
||||
Gehen Sie zu **Einstellungen → Standardmodell** und wählen Sie den Anbieter und das Modell, das neue Gespräche standardmäßig verwenden sollen.
|
||||
|
||||
---
|
||||
|
||||
## Ihr erstes Gespräch
|
||||
|
||||
1. Klicken Sie auf **Neuer Chat** in der Seitenleiste (oder drücken Sie <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd>).
|
||||
2. Wählen Sie ein Modell aus dem Modell-Selektor oben im Chat.
|
||||
3. Geben Sie eine Nachricht ein und drücken Sie <kbd>Enter</kbd>.
|
||||
4. BoosApi streamt die Antwort in Echtzeit. Modelle mit Denkblöcken (z.B. Claude, DeepSeek R1) zeigen den Reasoning-Prozess in einem einklappbaren Bereich.
|
||||
|
||||
---
|
||||
|
||||
## Tastenkürzel
|
||||
|
||||
| Kürzel | Aktion |
|
||||
|--------|--------|
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd> | Aktuelles Fenster ein-/ausblenden |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>A</kbd> | Alle Fenster ein-/ausblenden |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>W</kbd> | Fenster schließen |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd> | Neues Gespräch |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd> | Einstellungen öffnen |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>K</kbd> | Befehlspalette |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | API-Gateway umschalten |
|
||||
|
||||
---
|
||||
|
||||
## Daten und Backup
|
||||
|
||||
### Datenverzeichnisse
|
||||
|
||||
| Pfad | Inhalt |
|
||||
|------|--------|
|
||||
| `~/.boosapi/` | Anwendungszustand — Datenbank, Verschlüsselungsschlüssel, Vektor-DB, SSL-Zertifikate |
|
||||
| `~/Documents/boosapi/` | Benutzerdateien — Bilder, Dokumente, Backups |
|
||||
|
||||
---
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
- [Anbieter konfigurieren](./providers) — KI-Anbieter hinzufügen und verwalten
|
||||
- [MCP-Server](./mcp) — Externe Tools zur Erweiterung der KI-Fähigkeiten verbinden
|
||||
- [API-Gateway](./gateway) — Ihre Anbieter als lokalen API-Server exponieren
|
||||
@@ -0,0 +1,64 @@
|
||||
# MCP-Server
|
||||
|
||||
## Was ist MCP?
|
||||
|
||||
Das [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) ist ein offener Standard, der es KI-Modellen ermöglicht, mit externen Tools und Datenquellen zu interagieren. BoosApi fungiert als MCP-Client — Sie fügen MCP-Server hinzu, und die KI kann die von ihnen bereitgestellten Tools während eines Gesprächs aufrufen.
|
||||
|
||||
---
|
||||
|
||||
## Transportprotokolle
|
||||
|
||||
BoosApi unterstützt drei Transportprotokolle für die Kommunikation mit MCP-Servern:
|
||||
|
||||
| Protokoll | Verbindung | Anwendungsfall | Konfiguration |
|
||||
|-----------|-----------|----------------|--------------|
|
||||
| **Stdio** | Lokaler Prozess | Tools auf Ihrem Rechner, gestartet via `npx`, `uvx`, `python` usw. | `command` + `args` + optionales `env` |
|
||||
| **SSE** | Remote-Server | Server-Sent Events-Endpoint auf einem Remote-Server | `url` |
|
||||
| **StreamableHTTP** | Remote-Server | HTTP-Streaming-Endpoint, neuere Alternative zu SSE | `url` |
|
||||
|
||||
---
|
||||
|
||||
## MCP-Server hinzufügen
|
||||
|
||||
### Formular-Erstellung
|
||||
|
||||
1. Gehen Sie zu **Einstellungen → MCP-Server**.
|
||||
2. Klicken Sie auf **MCP-Server hinzufügen**.
|
||||
3. Geben Sie einen Namen ein und wählen Sie das Transportprotokoll.
|
||||
4. Füllen Sie die Felder für Ihr gewähltes Protokoll aus.
|
||||
5. Klicken Sie auf **Speichern**.
|
||||
|
||||
### JSON-Import
|
||||
|
||||
Klicken Sie auf **JSON-Import** und fügen Sie ein Konfigurationsobjekt ein. BoosApi akzeptiert das Standard-MCP-JSON-Format:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Integrierte Tools
|
||||
|
||||
| Tool | Beschreibung |
|
||||
|------|-------------|
|
||||
| **@boosapi/fetch** | Webseiten und HTTP-Ressourcen abrufen |
|
||||
| **@boosapi/search-file** | Dateien im lokalen Dateisystem suchen |
|
||||
|
||||
---
|
||||
|
||||
## Tool-Loop-Limit
|
||||
|
||||
Unter Settings -> MCP können Sie die maximale Anzahl aufeinanderfolgender Tool-Call-Iterationen für eine MCP-Antwort konfigurieren. Reduzieren Sie das Limit beim Testen unbekannter Server oder erhöhen Sie es für Workflows, die mehrere Tools bewusst verketten.
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
- [API-Gateway](./gateway) — Ihre Anbieter als lokalen API-Server exponieren
|
||||
- [Schnellstart](./getting-started) — Zum Schnellstartleitfaden zurückkehren
|
||||
@@ -0,0 +1,145 @@
|
||||
# Anbieter konfigurieren
|
||||
|
||||
BoosApi verbindet sich gleichzeitig mit beliebig vielen KI-Anbietern. Jeder Anbieter hat seine eigenen API-Schlüssel, Modellliste und Parameterstandards.
|
||||
|
||||
## Unterstützte Anbieter
|
||||
|
||||
| Anbieter | Beispielmodelle |
|
||||
|---------|----------------|
|
||||
| **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-Serie |
|
||||
| **Zhipu AI** | GLM-Serie |
|
||||
| **xAI** | Grok-Serie |
|
||||
| **OpenAI-kompatible API** | Ollama, vLLM, LiteLLM, Drittanbieter-Relays usw. |
|
||||
|
||||
---
|
||||
|
||||
## Anbieter hinzufügen
|
||||
|
||||
1. Gehen Sie zu **Einstellungen → Anbieter**.
|
||||
2. Klicken Sie auf die Schaltfläche **+** unten links.
|
||||
3. Füllen Sie die Anbieterdetails aus:
|
||||
|
||||
| Feld | Beschreibung |
|
||||
|------|-------------|
|
||||
| **Name** | Anzeigename für die Seitenleiste (z.B. *OpenAI*) |
|
||||
| **Typ** | Anbietertyp — bestimmt Standard-Base-URL und API-Verhalten |
|
||||
| **Symbol** | Optionales Symbol zur visuellen Identifikation |
|
||||
| **API-Schlüssel** | Der geheime Schlüssel aus dem Dashboard Ihres Anbieters |
|
||||
| **Base URL** | API-Endpoint (für integrierte Typen vorausgefüllt) |
|
||||
| **API-Pfad** | Anfragepfad — Standard ist `/v1/chat/completions` |
|
||||
|
||||
---
|
||||
|
||||
## Import über Website-Link
|
||||
|
||||
Anbieter-Websites, Relay-Dashboards, private Modellplattformen oder lokale Gateway-Seiten können einen Link **In BoosApi öffnen** bereitstellen. Beim Klick öffnet der Browser die BoosApi-Desktop-App, BoosApi wechselt zu **Einstellungen → Anbieter**, zeigt einen Bestätigungsdialog und importiert die Konfiguration erst nach Bestätigung durch den Benutzer.
|
||||
|
||||
### Benutzerablauf
|
||||
|
||||
1. Installieren und öffnen Sie eine BoosApi-Version, die Anbieterlinks unterstützt.
|
||||
2. Klicken Sie im Browser auf den Link **In BoosApi öffnen** des Anbieters.
|
||||
3. Prüfen Sie in BoosApi Anbietername, Base URL, Anbietertyp und API-Schlüssel-Präfix.
|
||||
4. BoosApi verwendet einen bestehenden Anbieter mit derselben Kombination aus **Base URL + Typ** wieder. Falls keiner existiert, wird ein neuer Anbieter erstellt; der API-Schlüssel wird nur hinzugefügt, wenn er noch nicht vorhanden ist.
|
||||
|
||||
BoosApi validiert den Schlüssel nicht automatisch und ruft Modelle nicht automatisch ab. Klicken Sie nach dem Import auf **Modelle abrufen** oder fügen Sie Modelle manuell hinzu.
|
||||
|
||||
### Linkformat
|
||||
|
||||
```text
|
||||
boosapi://providers?name=<name>&baseurl=<base-url>&apikey=<api-key>&type=<provider-type>
|
||||
```
|
||||
|
||||
Beispiel:
|
||||
|
||||
```text
|
||||
boosapi://providers?name=OpenAI&baseurl=https%3A%2F%2Fapi.openai.com&apikey=sk-xxx&type=openai
|
||||
```
|
||||
|
||||
### Parameter
|
||||
|
||||
| Parameter | Erforderlich | Beschreibung |
|
||||
|-----------|--------------|--------------|
|
||||
| `name` | Ja | Anzeigename in BoosApi, z. B. `OpenAI` oder `My Relay` |
|
||||
| `baseurl` | Ja | URL-kodierte Base URL. Nur `http` und `https` sind erlaubt; query und hash werden abgelehnt. |
|
||||
| `apikey` | Ja | API-Schlüssel, der in BoosApi gespeichert wird. BoosApi zeigt im Bestätigungsdialog nur ein Präfix. |
|
||||
| `type` | Ja | Anbietertyp. Erlaubte Werte: `openai`, `openai_responses`, `anthropic`, `gemini`, `custom`. |
|
||||
|
||||
`baseurl` kann die bestehende Force-Suffix-Semantik von BoosApi verwenden, z. B. `https://example.com!`. Beim Import per Link wird `api_path` nicht gesetzt; BoosApi nutzt weiterhin den Standardpfad des gewählten Anbietertyps.
|
||||
|
||||
### Website-Konfiguration
|
||||
|
||||
Kodieren Sie alle dynamischen Werte mit `encodeURIComponent` oder `URLSearchParams`:
|
||||
|
||||
```html
|
||||
<a id="open-boosapi" href="#">In BoosApi öffnen</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>
|
||||
```
|
||||
|
||||
Wenn Ihr Dienst API-Schlüssel online erzeugt, erstellen Sie den Link erst, nachdem der Benutzer angemeldet ist und ausdrücklich einen Schlüssel ausgewählt oder erstellt hat.
|
||||
|
||||
::: warning Sicherheit
|
||||
Ein API-Schlüssel in einer URL kann im Browserverlauf, in Logs, Erweiterungen oder Analysewerkzeugen sichtbar werden. Platzieren Sie echte Schlüssel nicht auf öffentlichen Seiten, in statischem HTML oder in Drittanbieter-Weiterleitungen. Erzeugen Sie den Link vorzugsweise auf einer privaten Kontoseite nach Benutzerbestätigung.
|
||||
:::
|
||||
|
||||
::: tip Test
|
||||
`boosapi://` ist ein benutzerdefiniertes Protokoll, das von der installierten Desktop-App im System registriert wird. Nur die Website oder den Vite-Entwicklungsserver auszuführen registriert das Protokoll nicht. Wenn der Link BoosApi nicht öffnet, installieren oder bauen Sie zuerst die aktuelle BoosApi-Desktop-App neu.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Aus CC Switch importieren
|
||||
|
||||
BoosApi kann CC Switch-Providerkonfigurationen unter Settings -> Providers scannen. Prüfen Sie Kandidaten, wählen Sie importierbare Zeilen aus und importieren Sie Provider, Base URLs, API Keys und Modelllisten. OAuth-only Einträge oder Einträge ohne wiederverwendbare Schlüssel werden mit sichtbarem Grund übersprungen.
|
||||
|
||||
## Erweiterter Modell-Request-Body
|
||||
|
||||
Jedes Modell kann extra_body definieren, ein JSON-Objekt, das flach zu OpenAI-kompatiblen Chat Completions Requests hinzugefügt wird. Das ist nützlich für Anbieteroptionen wie enable_thinking. BoosApi validiert JSON und verhindert das Überschreiben von model, messages, stream, tools und Basis-Sampling-Feldern.
|
||||
|
||||
## Multi-Key-Rotation
|
||||
|
||||
BoosApi unterstützt mehrere API-Schlüssel pro Anbieter. Klicken Sie auf **Schlüssel hinzufügen** im Anbieter-Detailpanel.
|
||||
|
||||
---
|
||||
|
||||
## Modellverwaltung
|
||||
|
||||
Klicken Sie auf **Modelle abrufen** im Anbieter-Detailpanel, um die vollständige Liste der verfügbaren Modelle zu laden. Sie können Modell-IDs auch manuell eingeben.
|
||||
|
||||
Jedes Modell kann eigene Standardparameterüberschreibungen haben: Temperatur, Max. Tokens, Top P, Häufigkeitsstrafe, Präsenzstrafe.
|
||||
|
||||
---
|
||||
|
||||
## Ollama (lokale Modelle)
|
||||
|
||||
1. Installieren und starten Sie [Ollama](https://ollama.com/).
|
||||
2. Erstellen Sie in BoosApi einen neuen Anbieter mit Typ **OpenAI**.
|
||||
3. Setzen Sie die **Base URL** auf `http://localhost:11434`.
|
||||
4. Klicken Sie auf **Modelle abrufen**, um lokal heruntergeladene Modelle zu entdecken.
|
||||
|
||||
---
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
- [MCP-Server](./mcp) — Externe Tools zur Erweiterung der KI-Fähigkeiten verbinden
|
||||
- [API-Gateway](./gateway) — Ihre Anbieter als lokalen API-Server exponieren
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — Open-Source KI-Desktop-Client & Gateway"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi ist ein kostenloser Open-Source KI-Desktop-Client mit Multi-Modell-Chat, Agent, MCP, ChatGPT/Cherry Studio/Kelivo-Import, lokalem RAG, S3/WebDAV-Backup und integriertem KI-Gateway."
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "Ihr KI-Desktop-Workspace"
|
||||
tagline: "Multi-Modell-Chat, Agent, MCP-Tools, API-Gateway, Importe, Wissensbasis und Backups in einem local-first Client"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "Erste Schritte"
|
||||
link: /de/guide/getting-started
|
||||
- theme: alt
|
||||
text: "Herunterladen"
|
||||
link: /de/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "Chat & Modelle"
|
||||
details: "OpenAI, Claude, Gemini, DeepSeek, Qwen und OpenAI-kompatible Endpunkte mit Base URL, API Path, Headers und Proxy-Regeln verbinden."
|
||||
- icon: api
|
||||
title: "Provider-Setup"
|
||||
details: "boosapi:// Provider-Links und CC Switch-Import übernehmen Provider-Profile nach Benutzerbestätigung."
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "Das Modell kann Dateien bearbeiten, Befehle ausführen und Code in einem kontrollierten Workflow analysieren."
|
||||
- icon: edit
|
||||
title: "Inhaltsrendering"
|
||||
details: "Markdown, Code, Tabellen, Aufgabenlisten und LaTeX in Streaming-Gesprächen rendern."
|
||||
- icon: search
|
||||
title: "Suche & Wissen"
|
||||
details: "Tavily, Zhipu WebSearch, Bocha mit Quellenangaben und Suchquery-Generierung."
|
||||
- icon: cloud-server
|
||||
title: "API-Gateway"
|
||||
details: "OpenAI Chat Completions, OpenAI Responses, Claude-native und Gemini-native Endpoints lokal bereitstellen."
|
||||
- icon: book
|
||||
title: "Datenimport & Backup"
|
||||
details: "ChatGPT, Cherry Studio und Kelivo mit Vorschau, Warnungen und Duplikatbehandlung importieren."
|
||||
- icon: lock
|
||||
title: "Desktop & Sicherheit"
|
||||
details: "App-Status in ~/.boosapi/, Benutzerdateien in ~/Documents/boosapi/, API Keys mit AES-256 geschützt."
|
||||
- icon: desktop
|
||||
title: "Desktop & Sicherheit"
|
||||
details: "App-Status in ~/.boosapi/, Benutzerdateien in ~/Documents/boosapi/, API Keys mit AES-256 geschützt."
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# Características
|
||||
|
||||
BoosApi es un espacio de trabajo de IA de escritorio local-first. Esta página está actualizada para v0.0.85 e incluye importación de proveedores, importación de datos de terceros, MCP, renderizado HTML, copias de seguridad y pasarela.
|
||||
|
||||
## Chat y modelos
|
||||
|
||||
- **Chat multi-proveedor** — Conecta OpenAI, Claude, Gemini, DeepSeek, Qwen y endpoints compatibles con OpenAI con Base URL, API Path, headers y proxy.
|
||||
- **Alta de proveedores** — Usa enlaces boosapi:// e importación CC Switch para traer perfiles tras confirmación del usuario.
|
||||
- **Gestión de modelos** — Sincroniza modelos, grupos, latencia, capacidades, contexto, sampling, perfiles de razonamiento y extra_body por modelo.
|
||||
- **Flujos de conversación** — Streaming, bloques de pensamiento, versiones, ramas, estado de título, compresión y comparación multi-modelo.
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Modo Agent** — El modelo puede editar archivos, ejecutar comandos y analizar código en un flujo controlado.
|
||||
- **Permisos** — Revisión estándar, aceptar ediciones automáticamente o acceso completo con sandbox del directorio de trabajo.
|
||||
- **Aprobación y coste** — Revisa tool calls, recuerda permisos y sigue tokens/coste por sesión.
|
||||
|
||||
## Renderizado de contenido
|
||||
|
||||
- **Markdown y matemáticas** — Markdown, código, tablas, tareas y LaTeX en conversaciones en streaming.
|
||||
- **Código, diagramas y artifacts** — Monaco, Mermaid, D2 y panel Artifact para código, notas, informes y vistas previas.
|
||||
- **Fragmentos HTML** — Previsualiza HTML generado con las mejoras recientes de estabilidad del streaming.
|
||||
|
||||
## Búsqueda y conocimiento
|
||||
|
||||
- **Búsqueda web** — Tavily, Zhipu WebSearch, Bocha con fuentes citadas y generación de consultas.
|
||||
- **Base de conocimiento local** — Indexa documentos privados con sqlite-vec y ajusta retrieval/rerank con feedback.
|
||||
- **Gestión de contexto** — Adjunta archivos, resultados, fragmentos, memorias y salida de herramientas.
|
||||
|
||||
## Herramientas y extensiones
|
||||
|
||||
- **Protocolo MCP** — Ejecuta servidores Model Context Protocol por stdio, SSE o StreamableHTTP.
|
||||
- **Herramientas integradas** — Usa @boosapi/fetch y búsqueda de archivos sin servidor separado.
|
||||
- **Límite de bucle** — Configura el máximo de bucles MCP y recupera mejor sesiones interrumpidas.
|
||||
|
||||
## Pasarela API
|
||||
|
||||
- **Pasarela local** — Expone OpenAI Chat Completions, OpenAI Responses, Claude nativo y Gemini nativo desde la app.
|
||||
- **Acceso y observabilidad** — Gestiona claves, SSL/TLS, logs y analíticas localmente.
|
||||
- **Plantillas cliente** — Plantillas para Claude Code, Codex CLI, OpenCode, Gemini CLI y clientes propios.
|
||||
|
||||
## Importación y backup
|
||||
|
||||
- **Importaciones de terceros** — Importa ChatGPT, Cherry Studio y Kelivo con vista previa, avisos y duplicados.
|
||||
- **Migración de proveedores/ficheros** — Cherry Studio/Kelivo pueden migrar proveedores, API keys y adjuntos.
|
||||
- **Copias de seguridad** — Backup/restore con carpetas locales, WebDAV o almacenamiento compatible S3.
|
||||
|
||||
## Escritorio y seguridad
|
||||
|
||||
- **Cifrado local** — Estado en ~/.boosapi/, archivos en ~/Documents/boosapi/, API keys protegidas por AES-256.
|
||||
- **Integración desktop** — Tray, always-on-top, atajos globales, auto-start, proxy y actualizaciones.
|
||||
- **11 idiomas** — Interfaz en chino simplificado/tradicional, inglés, japonés, coreano, francés, alemán, español, ruso, hindi y árabe.
|
||||
@@ -0,0 +1,74 @@
|
||||
# Pasarela API
|
||||
|
||||
## ¿Qué es la pasarela API?
|
||||
|
||||
BoosApi incluye un servidor API local integrado que expone tus proveedores configurados como endpoints **compatibles con OpenAI**, **nativos de Claude** y **nativos de Gemini**. Cualquier herramienta o cliente que utilice uno de estos protocolos puede usar BoosApi como backend — sin claves API separadas ni servicios de relé requeridos.
|
||||
|
||||
Casos de uso:
|
||||
|
||||
- Ejecuta **Claude Code CLI**, **OpenAI Codex CLI**, **Gemini CLI** u **OpenCode** a través de BoosApi.
|
||||
- Conecta tus extensiones IDE a un único endpoint gestionado localmente.
|
||||
- Comparte un conjunto de claves de proveedor entre muchas herramientas con limitación de velocidad por clave.
|
||||
|
||||
---
|
||||
|
||||
## Comenzar
|
||||
|
||||
1. Abre **Configuración → Pasarela API** (o presiona <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>).
|
||||
2. Haz clic en **Iniciar** para lanzar el servidor de pasarela.
|
||||
3. Por defecto, el servidor escucha en `127.0.0.1:8080` (HTTP).
|
||||
|
||||
::: tip
|
||||
Activa el **Inicio automático** en la configuración de la pasarela para iniciar el servidor automáticamente cuando BoosApi se inicie.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Gestión de claves API
|
||||
|
||||
1. Ve a la pestaña **Claves API**.
|
||||
2. Haz clic en **Generar nueva clave**.
|
||||
3. Añade opcionalmente una **descripción** para identificar cada clave.
|
||||
4. Copia la clave — solo se muestra una vez.
|
||||
|
||||
---
|
||||
|
||||
## Plantillas de configuración
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
### Cliente personalizado
|
||||
|
||||
```
|
||||
URL base: http://127.0.0.1:8080/v1
|
||||
Clave API: boosapi-xxxx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Próximos pasos
|
||||
|
||||
- [Inicio rápido](./getting-started) — volver a la guía de inicio rápido
|
||||
- [Configurar proveedores](./providers) — añadir los proveedores upstream a los que enruta la pasarela
|
||||
- [Servidores MCP](./mcp) — conectar herramientas externas para llamadas de herramientas IA
|
||||
@@ -0,0 +1,128 @@
|
||||
# Inicio rápido
|
||||
|
||||
## Instalación
|
||||
|
||||
Descarga el último instalador desde la [página de descarga](/es/download) o [GitHub Releases](https://github.com/BoosApi-Desktop/BoosApi/releases).
|
||||
|
||||
### macOS
|
||||
|
||||
| Chip | Archivo |
|
||||
|------|---------|
|
||||
| Apple Silicon (M1 / M2 / M3 / M4) | `BoosApi_x.x.x_aarch64.dmg` |
|
||||
| Intel | `BoosApi_x.x.x_x64.dmg` |
|
||||
|
||||
1. Abre el `.dmg` y arrastra **BoosApi** a la carpeta **Aplicaciones**.
|
||||
2. Inicia BoosApi. Si macOS bloquea la app, ve a **Configuración del Sistema → Privacidad y Seguridad** y haz clic en **Abrir de todas formas**.
|
||||
|
||||
::: warning macOS: "La app está dañada" o "No se puede verificar el desarrollador"
|
||||
Si ves alguno de estos mensajes, abre Terminal y ejecuta:
|
||||
|
||||
```bash
|
||||
xattr -c /Applications/BoosApi.app
|
||||
```
|
||||
|
||||
Luego inicia la app de nuevo. Esto elimina la marca de cuarentena que macOS aplica a las descargas no firmadas.
|
||||
:::
|
||||
|
||||
### Windows
|
||||
|
||||
| Arquitectura | Archivo |
|
||||
|-------------|---------|
|
||||
| x64 (la mayoría de PCs) | `BoosApi_x.x.x_x64-setup.exe` |
|
||||
| ARM64 | `BoosApi_x.x.x_arm64-setup.exe` |
|
||||
|
||||
Ejecuta el instalador y sigue el asistente. Inicia BoosApi desde el menú Inicio o el acceso directo del escritorio.
|
||||
|
||||
### Linux
|
||||
|
||||
| Formato | Arquitectura | Archivo |
|
||||
|---------|-------------|---------|
|
||||
| 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` |
|
||||
| Cualquier distro | x64 | `BoosApi_x.x.x_amd64.AppImage` |
|
||||
| Cualquier distro | 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 (cualquier distro)
|
||||
chmod +x BoosApi_x.x.x_amd64.AppImage
|
||||
./BoosApi_x.x.x_amd64.AppImage
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuración inicial
|
||||
|
||||
### 1. Abrir configuración
|
||||
|
||||
Inicia BoosApi y haz clic en el **ícono de engranaje** en la parte inferior de la barra lateral, o presiona <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd>.
|
||||
|
||||
### 2. Añadir un proveedor
|
||||
|
||||
Navega a **Configuración → Proveedores** y haz clic en el botón **+**.
|
||||
|
||||
1. Introduce un nombre para mostrar (ej. *OpenAI*).
|
||||
2. Selecciona el tipo de proveedor (OpenAI, Anthropic, Google Gemini, etc.).
|
||||
3. Pega tu clave API.
|
||||
4. Confirma la **URL base** — el endpoint oficial está prellenado para los tipos integrados.
|
||||
|
||||
::: tip
|
||||
Puedes añadir tantos proveedores como quieras. Cada proveedor gestiona su propio conjunto de claves API y modelos de forma independiente.
|
||||
:::
|
||||
|
||||
### 3. Obtener modelos
|
||||
|
||||
Haz clic en **Obtener modelos** para obtener la lista de modelos disponibles de la API del proveedor. También puedes añadir IDs de modelos manualmente si es necesario.
|
||||
|
||||
### 4. Establecer un modelo predeterminado
|
||||
|
||||
Ve a **Configuración → Modelo predeterminado** y elige el proveedor y el modelo que las nuevas conversaciones deben usar por defecto.
|
||||
|
||||
---
|
||||
|
||||
## Tu primera conversación
|
||||
|
||||
1. Haz clic en **Nuevo chat** en la barra lateral (o presiona <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd>).
|
||||
2. Selecciona un modelo del selector de modelos en la parte superior del chat.
|
||||
3. Escribe un mensaje y presiona <kbd>Enter</kbd>.
|
||||
4. BoosApi transmite la respuesta en tiempo real. Los modelos que soportan bloques de pensamiento (ej. Claude, DeepSeek R1) muestran el proceso de razonamiento en una sección plegable.
|
||||
|
||||
---
|
||||
|
||||
## Atajos
|
||||
|
||||
| Atajo | Acción |
|
||||
|-------|--------|
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd> | Mostrar / ocultar ventana actual |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>A</kbd> | Mostrar / ocultar todas las ventanas |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>W</kbd> | Cerrar ventana |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd> | Nueva conversación |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd> | Abrir configuración |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>K</kbd> | Paleta de comandos |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | Alternar pasarela API |
|
||||
|
||||
---
|
||||
|
||||
## Datos y copia de seguridad
|
||||
|
||||
### Directorios de datos
|
||||
|
||||
| Ruta | Contenido |
|
||||
|------|----------|
|
||||
| `~/.boosapi/` | Estado de la aplicación — base de datos, claves de cifrado, base vectorial, certificados SSL |
|
||||
| `~/Documents/boosapi/` | Archivos de usuario — imágenes, documentos, copias de seguridad |
|
||||
|
||||
---
|
||||
|
||||
## Próximos pasos
|
||||
|
||||
- [Configurar proveedores](./providers) — añadir y gestionar proveedores de IA
|
||||
- [Servidores MCP](./mcp) — conectar herramientas externas para ampliar las capacidades de IA
|
||||
- [Pasarela API](./gateway) — exponer tus proveedores como servidor API local
|
||||
@@ -0,0 +1,64 @@
|
||||
# Servidores MCP
|
||||
|
||||
## ¿Qué es MCP?
|
||||
|
||||
El [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) es un estándar abierto que permite a los modelos de IA interactuar con herramientas y fuentes de datos externas. BoosApi actúa como cliente MCP — añades servidores MCP y la IA puede llamar a las herramientas que exponen durante una conversación.
|
||||
|
||||
---
|
||||
|
||||
## Protocolos de transporte
|
||||
|
||||
BoosApi soporta tres protocolos de transporte para comunicarse con servidores MCP:
|
||||
|
||||
| Protocolo | Conexión | Caso de uso | Configuración |
|
||||
|-----------|---------|------------|---------------|
|
||||
| **Stdio** | Proceso local | Herramientas instaladas en tu máquina, lanzadas via `npx`, `uvx`, `python`, etc. | `command` + `args` + `env` opcional |
|
||||
| **SSE** | Servidor remoto | Endpoint Server-Sent Events alojado en una máquina remota | `url` |
|
||||
| **StreamableHTTP** | Servidor remoto | Endpoint HTTP streaming, alternativa más nueva a SSE | `url` |
|
||||
|
||||
---
|
||||
|
||||
## Añadir servidores MCP
|
||||
|
||||
### Creación por formulario
|
||||
|
||||
1. Ve a **Configuración → Servidores MCP**.
|
||||
2. Haz clic en **Añadir servidor MCP**.
|
||||
3. Introduce un nombre y selecciona el protocolo de transporte.
|
||||
4. Completa los campos para tu protocolo elegido.
|
||||
5. Haz clic en **Guardar**.
|
||||
|
||||
### Importación JSON
|
||||
|
||||
Haz clic en **Importar JSON** y pega un objeto de configuración:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Herramientas integradas
|
||||
|
||||
| Herramienta | Descripción |
|
||||
|------------|-------------|
|
||||
| **@boosapi/fetch** | Obtener páginas web y recursos HTTP |
|
||||
| **@boosapi/search-file** | Buscar archivos en tu sistema de archivos local |
|
||||
|
||||
---
|
||||
|
||||
## Límite de bucle de herramientas
|
||||
|
||||
Settings -> MCP permite configurar el número máximo de iteraciones consecutivas de tool calls para una respuesta MCP. Baja el límite al probar servidores desconocidos o súbelo para workflows que encadenan varias herramientas.
|
||||
|
||||
## Próximos pasos
|
||||
|
||||
- [Pasarela API](./gateway) — exponer tus proveedores como servidor API local
|
||||
- [Inicio rápido](./getting-started) — volver a la guía de inicio rápido
|
||||
@@ -0,0 +1,147 @@
|
||||
# Configurar proveedores
|
||||
|
||||
BoosApi se conecta simultáneamente a cualquier número de proveedores de IA. Cada proveedor tiene sus propias claves API, lista de modelos y parámetros predeterminados.
|
||||
|
||||
## Proveedores soportados
|
||||
|
||||
| Proveedor | Modelos ejemplo |
|
||||
|----------|----------------|
|
||||
| **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** | Serie Qwen |
|
||||
| **Zhipu AI** | Serie GLM |
|
||||
| **xAI** | Serie Grok |
|
||||
| **API compatible OpenAI** | Ollama, vLLM, LiteLLM, relés de terceros, etc. |
|
||||
|
||||
---
|
||||
|
||||
## Añadir un proveedor
|
||||
|
||||
1. Ve a **Configuración → Proveedores**.
|
||||
2. Haz clic en el botón **+** en la parte inferior izquierda.
|
||||
3. Completa los detalles del proveedor:
|
||||
|
||||
| Campo | Descripción |
|
||||
|-------|-------------|
|
||||
| **Nombre** | Nombre para mostrar en la barra lateral (ej. *OpenAI*) |
|
||||
| **Tipo** | Tipo de proveedor — determina la URL base predeterminada |
|
||||
| **Ícono** | Ícono opcional para identificación visual |
|
||||
| **Clave API** | La clave secreta del panel de tu proveedor |
|
||||
| **URL base** | Endpoint API (prellenado para tipos integrados) |
|
||||
| **Ruta API** | Ruta de solicitud — predeterminado `/v1/chat/completions` |
|
||||
|
||||
---
|
||||
|
||||
## Importar desde un enlace web
|
||||
|
||||
Los sitios de proveedores, paneles de servicios de relé, plataformas privadas de modelos o paneles de gateway local pueden ofrecer un enlace **Abrir en BoosApi**. Al hacer clic, el navegador abre la app de escritorio BoosApi, BoosApi va a **Configuración → Proveedores**, muestra un diálogo de confirmación e importa la configuración solo después de que el usuario confirme.
|
||||
|
||||
### Flujo de usuario
|
||||
|
||||
1. Instala y abre una versión de BoosApi compatible con enlaces de proveedor.
|
||||
2. Haz clic en el enlace **Abrir en BoosApi** del proveedor en el navegador.
|
||||
3. Confirma el nombre, la URL base, el tipo de proveedor y el prefijo de la clave API en BoosApi.
|
||||
4. BoosApi reutiliza un proveedor existente con la misma **URL base + tipo**. Si no existe, crea uno nuevo y añade la clave API solo si aún no está guardada.
|
||||
|
||||
BoosApi no valida la clave ni obtiene modelos automáticamente. Después de importar, haz clic en **Obtener modelos** o añade modelos manualmente.
|
||||
|
||||
### Formato del enlace
|
||||
|
||||
```text
|
||||
boosapi://providers?name=<name>&baseurl=<base-url>&apikey=<api-key>&type=<provider-type>
|
||||
```
|
||||
|
||||
Ejemplo:
|
||||
|
||||
```text
|
||||
boosapi://providers?name=OpenAI&baseurl=https%3A%2F%2Fapi.openai.com&apikey=sk-xxx&type=openai
|
||||
```
|
||||
|
||||
### Parámetros
|
||||
|
||||
| Parámetro | Obligatorio | Descripción |
|
||||
|-----------|-------------|-------------|
|
||||
| `name` | Sí | Nombre visible en BoosApi, por ejemplo `OpenAI` o `My Relay` |
|
||||
| `baseurl` | Sí | URL base codificada. Solo se aceptan `http` y `https`; se rechazan query y hash. |
|
||||
| `apikey` | Sí | Clave API que se guardará en BoosApi. BoosApi solo muestra un prefijo en el diálogo. |
|
||||
| `type` | Sí | Tipo de proveedor. Valores permitidos: `openai`, `openai_responses`, `anthropic`, `gemini`, `custom`. |
|
||||
|
||||
`baseurl` puede usar el sufijo de fuerza existente de BoosApi, por ejemplo `https://example.com!`. La importación por enlace no configura `api_path`; BoosApi seguirá usando la ruta predeterminada del tipo de proveedor seleccionado.
|
||||
|
||||
### Configuración del sitio web
|
||||
|
||||
Codifica todos los valores dinámicos con `encodeURIComponent` o `URLSearchParams`:
|
||||
|
||||
```html
|
||||
<a id="open-boosapi" href="#">Abrir en 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>
|
||||
```
|
||||
|
||||
Si tu servicio permite generar claves API, crea el enlace solo después de que el usuario haya iniciado sesión y haya elegido o creado una clave explícitamente.
|
||||
|
||||
::: warning Seguridad
|
||||
Una clave API dentro de una URL puede quedar en el historial del navegador, logs, extensiones o herramientas de analítica. No pongas claves reales en páginas públicas, HTML estático ni redirecciones de terceros. Es preferible generar el enlace en una página privada de cuenta después de confirmación del usuario.
|
||||
:::
|
||||
|
||||
::: tip Pruebas
|
||||
`boosapi://` es un protocolo personalizado registrado por la app de escritorio instalada. Ejecutar solo el sitio web o el servidor de desarrollo Vite no registra el protocolo. Si el enlace no abre BoosApi, instala o recompila primero la app de escritorio más reciente.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Importar desde CC Switch
|
||||
|
||||
BoosApi puede escanear configuraciones de proveedores de CC Switch desde Settings -> Providers. Revisa cada candidato, selecciona las filas importables e importa proveedores, Base URLs, API keys y listas de modelos. Las entradas OAuth-only o sin claves reutilizables se omiten con un motivo visible.
|
||||
|
||||
## Cuerpo de solicitud avanzado por modelo
|
||||
|
||||
Cada modelo puede definir extra_body, un objeto JSON que se añade plano a las solicitudes OpenAI-compatible Chat Completions. Es útil para opciones específicas del proveedor como enable_thinking. BoosApi valida el JSON y bloquea la sobrescritura de model, messages, stream, tools y campos básicos de sampling.
|
||||
|
||||
## Rotación de claves múltiples
|
||||
|
||||
BoosApi soporta múltiples claves API por proveedor. Haz clic en **Añadir clave** en el panel de detalles del proveedor.
|
||||
|
||||
---
|
||||
|
||||
## Gestión de modelos
|
||||
|
||||
Haz clic en **Obtener modelos** para obtener la lista completa de modelos disponibles. También puedes añadir IDs de modelos manualmente.
|
||||
|
||||
Cada modelo puede tener sus propias anulaciones de parámetros predeterminados: temperatura, tokens máximos, Top P, penalización de frecuencia, penalización de presencia.
|
||||
|
||||
---
|
||||
|
||||
## Endpoints personalizados y locales
|
||||
|
||||
### Ollama (modelos locales)
|
||||
|
||||
1. Instala e inicia [Ollama](https://ollama.com/).
|
||||
2. En BoosApi, crea un nuevo proveedor con tipo **OpenAI**.
|
||||
3. Establece la **URL base** a `http://localhost:11434`.
|
||||
4. Haz clic en **Obtener modelos** para descubrir los modelos descargados localmente.
|
||||
|
||||
---
|
||||
|
||||
## Próximos pasos
|
||||
|
||||
- [Servidores MCP](./mcp) — conectar herramientas externas para ampliar las capacidades de IA
|
||||
- [Pasarela API](./gateway) — exponer tus proveedores como servidor API local
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — Cliente IA de escritorio open-source & pasarela"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi es un cliente IA de escritorio gratuito y open-source con chat multi-modelo, Agent, MCP, importación ChatGPT/Cherry Studio/Kelivo, RAG local, backup S3/WebDAV y pasarela IA integrada."
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "Tu espacio de trabajo IA de escritorio"
|
||||
tagline: "Chat multi-modelo, Agent, herramientas MCP, pasarela API, importaciones, base de conocimiento y copias de seguridad en un cliente local-first"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "Primeros pasos"
|
||||
link: /es/guide/getting-started
|
||||
- theme: alt
|
||||
text: "Descargar"
|
||||
link: /es/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "Chat y modelos"
|
||||
details: "Conecta OpenAI, Claude, Gemini, DeepSeek, Qwen y endpoints compatibles con OpenAI con Base URL, API Path, headers y proxy."
|
||||
- icon: api
|
||||
title: "Configuración de proveedores"
|
||||
details: "Usa enlaces boosapi:// e importación CC Switch para traer perfiles tras confirmación del usuario."
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "El modelo puede editar archivos, ejecutar comandos y analizar código en un flujo controlado."
|
||||
- icon: edit
|
||||
title: "Renderizado de contenido"
|
||||
details: "Markdown, código, tablas, tareas y LaTeX en conversaciones en streaming."
|
||||
- icon: search
|
||||
title: "Búsqueda y conocimiento"
|
||||
details: "Tavily, Zhipu WebSearch, Bocha con fuentes citadas y generación de consultas."
|
||||
- icon: cloud-server
|
||||
title: "Pasarela API"
|
||||
details: "Expone OpenAI Chat Completions, OpenAI Responses, Claude nativo y Gemini nativo desde la app."
|
||||
- icon: book
|
||||
title: "Importación y backup"
|
||||
details: "Importa ChatGPT, Cherry Studio y Kelivo con vista previa, avisos y duplicados."
|
||||
- icon: lock
|
||||
title: "Escritorio y seguridad"
|
||||
details: "Estado en ~/.boosapi/, archivos en ~/Documents/boosapi/, API keys protegidas por AES-256."
|
||||
- icon: desktop
|
||||
title: "Escritorio y seguridad"
|
||||
details: "Estado en ~/.boosapi/, archivos en ~/Documents/boosapi/, API keys protegidas por AES-256."
|
||||
---
|
||||
@@ -0,0 +1,52 @@
|
||||
# Features
|
||||
|
||||
BoosApi is a local-first AI desktop workspace. This page is updated for v0.0.85 and covers the recent provider import, third-party data import, MCP, HTML rendering, backup and gateway work.
|
||||
|
||||
## Chat & Models
|
||||
|
||||
- **Multi-provider chat** — Connect OpenAI, Claude, Gemini, DeepSeek, Qwen and any OpenAI-compatible endpoint with custom Base URL, API Path, headers and proxy rules.
|
||||
- **Provider onboarding** — Use boosapi:// provider links and CC Switch import to bring provider profiles into BoosApi after user confirmation.
|
||||
- **Model management** — Sync remote model lists, organize groups, test latency and configure capabilities, context length, sampling defaults, reasoning profiles and per-model extra_body fields.
|
||||
- **Conversation workflows** — Stream replies with thinking blocks, compare message versions, branch conversations, show title-generation status, compress long chats and ask multiple models in parallel.
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Agent mode** — Let the model read and edit files, run commands and analyze code inside a controlled desktop workflow.
|
||||
- **Permission control** — Choose standard review, auto-accept edits or full-access mode while keeping working-directory sandbox checks active.
|
||||
- **Approval and cost UI** — Review tool calls in real time, remember allow decisions and track token/cost usage for each agent session.
|
||||
|
||||
## Content Rendering
|
||||
|
||||
- **Markdown and math** — Render Markdown, code highlighting, tables, task lists and LaTeX formulas in streaming conversations.
|
||||
- **Code, diagrams and artifacts** — Use Monaco code blocks, Mermaid, D2 diagrams and an Artifact panel for code, Markdown notes, reports and previews.
|
||||
- **HTML fragment rendering** — Preview generated HTML fragments safely, including the streaming fixes added in the recent releases.
|
||||
|
||||
## Search & Knowledge
|
||||
|
||||
- **Web search** — Use Tavily, Zhipu WebSearch, Bocha and other search providers with cited sources and generated search queries.
|
||||
- **Local knowledge bases** — Index private documents with sqlite-vec, tune retrieval/rerank options and inspect retrieval feedback.
|
||||
- **Context management** — Attach files, search results, knowledge snippets, memories and tool output to the conversation context.
|
||||
|
||||
## Tools & Extensions
|
||||
|
||||
- **MCP protocol** — Run Model Context Protocol servers over stdio, SSE or StreamableHTTP.
|
||||
- **Built-in tools** — Use built-in MCP tools such as @boosapi/fetch and file search without installing a separate server.
|
||||
- **Tool loop limit** — Configure the maximum MCP tool-call loop count and recover more cleanly from interrupted or stuck tool sessions.
|
||||
|
||||
## API Gateway
|
||||
|
||||
- **Local gateway** — Expose OpenAI Chat Completions, OpenAI Responses, Claude-native and Gemini-native endpoints from the desktop app.
|
||||
- **Access and observability** — Manage gateway keys, SSL/TLS certificates, request logs and usage analytics locally.
|
||||
- **Client templates** — Use ready-made templates for Claude Code, Codex CLI, OpenCode, Gemini CLI and custom clients.
|
||||
|
||||
## Data Import & Backup
|
||||
|
||||
- **Third-party imports** — Import ChatGPT official exports, Cherry Studio backups and Kelivo backups with preview counts, warnings and duplicate handling.
|
||||
- **Provider and file migration** — Cherry Studio and Kelivo import can optionally migrate linked providers, API keys and file attachments.
|
||||
- **Backups** — Back up and restore local data through local folders, WebDAV or S3-compatible storage.
|
||||
|
||||
## Desktop & Security
|
||||
|
||||
- **Local encryption** — Store app state under ~/.boosapi/ and user files under ~/Documents/boosapi/, with API keys protected by AES-256 and a local master key.
|
||||
- **Desktop integration** — Use tray mode, always-on-top, global shortcuts, auto-start, proxy settings and automatic update checks.
|
||||
- **11 interface languages** — Switch between Simplified Chinese, Traditional Chinese, English, Japanese, Korean, French, German, Spanish, Russian, Hindi and Arabic.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# Fonctionnalités
|
||||
|
||||
BoosApi est un espace de travail IA de bureau local-first. Cette page est mise à jour pour v0.0.85 avec les imports de fournisseurs, imports tiers, MCP, rendu HTML, sauvegardes et passerelle.
|
||||
|
||||
## Chat et modèles
|
||||
|
||||
- **Chat multi-fournisseurs** — Connectez OpenAI, Claude, Gemini, DeepSeek, Qwen et tout endpoint compatible OpenAI avec Base URL, API Path, headers et proxy.
|
||||
- **Onboarding fournisseur** — Utilisez les liens boosapi:// et l’import CC Switch pour importer des profils fournisseur après confirmation.
|
||||
- **Gestion des modèles** — Synchronisez les modèles distants, groupes, latence, capacités, contexte, sampling, profils de raisonnement et extra_body par modèle.
|
||||
- **Workflows de conversation** — Streaming, blocs de réflexion, versions de messages, branches, état de génération du titre, compression et réponses multi-modèles.
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Mode Agent** — Le modèle peut éditer des fichiers, exécuter des commandes et analyser du code dans un workflow contrôlé.
|
||||
- **Contrôle des permissions** — Choisissez revue standard, acceptation automatique des éditions ou accès complet avec sandbox de dossier de travail.
|
||||
- **Approbation et coûts** — Inspectez les appels d’outils, mémorisez les autorisations et suivez tokens/coûts par session.
|
||||
|
||||
## Rendu de contenu
|
||||
|
||||
- **Markdown et maths** — Rendu Markdown, code, tableaux, tâches et LaTeX dans les conversations streamées.
|
||||
- **Code, diagrammes et artifacts** — Monaco, Mermaid, D2 et panneau Artifact pour code, notes Markdown, rapports et aperçus.
|
||||
- **Fragments HTML** — Prévisualisez les fragments HTML générés avec les correctifs récents de stabilité du streaming.
|
||||
|
||||
## Recherche et connaissances
|
||||
|
||||
- **Recherche Web** — Tavily, Zhipu WebSearch, Bocha avec sources citées et génération de requêtes.
|
||||
- **Bases de connaissances locales** — Indexez vos documents avec sqlite-vec, réglez retrieval/rerank et inspectez les retours de récupération.
|
||||
- **Gestion du contexte** — Ajoutez fichiers, résultats de recherche, extraits, mémoires et sorties d’outils au contexte.
|
||||
|
||||
## Outils et extensions
|
||||
|
||||
- **Protocole MCP** — Exécutez des serveurs Model Context Protocol en stdio, SSE ou StreamableHTTP.
|
||||
- **Outils intégrés** — Utilisez @boosapi/fetch et la recherche de fichiers sans serveur séparé.
|
||||
- **Limite de boucle outils** — Configurez le nombre maximal de boucles MCP et récupérez mieux les sessions bloquées.
|
||||
|
||||
## Passerelle API
|
||||
|
||||
- **Passerelle locale** — Exposez OpenAI Chat Completions, OpenAI Responses, Claude natif et Gemini natif depuis l’app.
|
||||
- **Accès et observabilité** — Gérez clés, SSL/TLS, logs de requêtes et statistiques localement.
|
||||
- **Templates clients** — Templates pour Claude Code, Codex CLI, OpenCode, Gemini CLI et clients personnalisés.
|
||||
|
||||
## Import et sauvegarde
|
||||
|
||||
- **Imports tiers** — Importez ChatGPT, Cherry Studio et Kelivo avec aperçu, avertissements et gestion des doublons.
|
||||
- **Migration fournisseurs/fichiers** — Les imports Cherry Studio/Kelivo peuvent migrer fournisseurs, clés API et pièces jointes.
|
||||
- **Sauvegardes** — Sauvegarde/restauration via dossiers locaux, WebDAV ou stockage compatible S3.
|
||||
|
||||
## Bureau et sécurité
|
||||
|
||||
- **Chiffrement local** — État dans ~/.boosapi/, fichiers utilisateur dans ~/Documents/boosapi/, clés API protégées par AES-256.
|
||||
- **Intégration desktop** — Tray, always-on-top, raccourcis globaux, auto-start, proxy et vérification des mises à jour.
|
||||
- **11 langues** — Interface disponible en chinois simplifié/traditionnel, anglais, japonais, coréen, français, allemand, espagnol, russe, hindi et arabe.
|
||||
@@ -0,0 +1,74 @@
|
||||
# Passerelle API
|
||||
|
||||
## Qu'est-ce que la passerelle API ?
|
||||
|
||||
BoosApi inclut un serveur API local intégré qui expose vos fournisseurs configurés comme endpoints **compatibles OpenAI**, **natifs Claude** et **natifs Gemini**. Tout outil ou client utilisant l'un de ces protocoles peut utiliser BoosApi comme backend — sans clés API séparées ni services de relais.
|
||||
|
||||
Cas d'utilisation :
|
||||
|
||||
- Exécutez **Claude Code CLI**, **OpenAI Codex CLI**, **Gemini CLI** ou **OpenCode** via BoosApi.
|
||||
- Connectez vos extensions IDE à un unique endpoint géré localement.
|
||||
- Partagez un ensemble de clés de fournisseur entre de nombreux outils avec limitation de débit par clé.
|
||||
|
||||
---
|
||||
|
||||
## Démarrage
|
||||
|
||||
1. Ouvrez **Paramètres → Passerelle API** (ou appuyez sur <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>).
|
||||
2. Cliquez sur **Démarrer** pour lancer le serveur de passerelle.
|
||||
3. Par défaut, le serveur écoute sur `127.0.0.1:8080` (HTTP).
|
||||
|
||||
::: tip
|
||||
Activez le **Démarrage automatique** dans les paramètres de la passerelle pour lancer le serveur automatiquement au démarrage d'BoosApi.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Gestion des clés API
|
||||
|
||||
1. Allez dans l'onglet **Clés API**.
|
||||
2. Cliquez sur **Générer une nouvelle clé**.
|
||||
3. Ajoutez optionnellement une **description** pour identifier chaque clé.
|
||||
4. Copiez la clé — elle n'est affichée qu'une seule fois.
|
||||
|
||||
---
|
||||
|
||||
## Modèles de configuration
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
### Client personnalisé
|
||||
|
||||
```
|
||||
URL de base : http://127.0.0.1:8080/v1
|
||||
Clé API : boosapi-xxxx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Prochaines étapes
|
||||
|
||||
- [Démarrage rapide](./getting-started) — retourner au guide de démarrage rapide
|
||||
- [Configurer les fournisseurs](./providers) — ajouter les fournisseurs en amont vers lesquels la passerelle route
|
||||
- [Serveurs MCP](./mcp) — connecter des outils externes pour l'appel d'outils IA
|
||||
@@ -0,0 +1,136 @@
|
||||
# Démarrage rapide
|
||||
|
||||
## Installation
|
||||
|
||||
Téléchargez le dernier installateur depuis la [page de téléchargement](/fr/download) ou [GitHub Releases](https://github.com/BoosApi-Desktop/BoosApi/releases).
|
||||
|
||||
### macOS
|
||||
|
||||
| Puce | Fichier |
|
||||
|------|---------|
|
||||
| Apple Silicon (M1 / M2 / M3 / M4) | `BoosApi_x.x.x_aarch64.dmg` |
|
||||
| Intel | `BoosApi_x.x.x_x64.dmg` |
|
||||
|
||||
1. Ouvrez le `.dmg` et faites glisser **BoosApi** dans le dossier **Applications**.
|
||||
2. Lancez BoosApi. Si macOS bloque l'application, allez dans **Réglages Système → Confidentialité et sécurité** et cliquez sur **Ouvrir quand même**.
|
||||
|
||||
::: warning macOS : "L'app est endommagée" ou "Impossible de vérifier le développeur"
|
||||
Si vous voyez l'un de ces messages, ouvrez Terminal et exécutez :
|
||||
|
||||
```bash
|
||||
xattr -c /Applications/BoosApi.app
|
||||
```
|
||||
|
||||
Relancez ensuite l'application. Cela supprime l'indicateur de quarantaine que macOS applique aux téléchargements non signés.
|
||||
:::
|
||||
|
||||
### Windows
|
||||
|
||||
| Architecture | Fichier |
|
||||
|-------------|---------|
|
||||
| x64 (la plupart des PC) | `BoosApi_x.x.x_x64-setup.exe` |
|
||||
| ARM64 | `BoosApi_x.x.x_arm64-setup.exe` |
|
||||
|
||||
Exécutez l'installateur et suivez l'assistant. Lancez BoosApi depuis le menu Démarrer ou le raccourci bureau.
|
||||
|
||||
### Linux
|
||||
|
||||
| Format | Architecture | Fichier |
|
||||
|--------|-------------|---------|
|
||||
| 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` |
|
||||
| Toute distro | x64 | `BoosApi_x.x.x_amd64.AppImage` |
|
||||
| Toute distro | 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 (toute distro)
|
||||
chmod +x BoosApi_x.x.x_amd64.AppImage
|
||||
./BoosApi_x.x.x_amd64.AppImage
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuration initiale
|
||||
|
||||
### 1. Ouvrir les paramètres
|
||||
|
||||
Lancez BoosApi et cliquez sur l'**icône d'engrenage** en bas de la barre latérale, ou appuyez sur <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd>.
|
||||
|
||||
### 2. Ajouter un fournisseur
|
||||
|
||||
Naviguez vers **Paramètres → Fournisseurs** et cliquez sur le bouton **+**.
|
||||
|
||||
1. Entrez un nom d'affichage (ex. *OpenAI*).
|
||||
2. Sélectionnez le type de fournisseur (OpenAI, Anthropic, Google Gemini, etc.).
|
||||
3. Collez votre clé API.
|
||||
4. Confirmez l'**URL de base** — l'endpoint officiel est pré-rempli pour les types intégrés.
|
||||
|
||||
::: tip
|
||||
Vous pouvez ajouter autant de fournisseurs que vous le souhaitez. Chaque fournisseur gère son propre ensemble de clés API et de modèles indépendamment.
|
||||
:::
|
||||
|
||||
### 3. Récupérer les modèles
|
||||
|
||||
Cliquez sur **Récupérer les modèles** pour obtenir la liste des modèles disponibles depuis l'API du fournisseur. Vous pouvez également ajouter des IDs de modèles manuellement si nécessaire.
|
||||
|
||||
### 4. Définir un modèle par défaut
|
||||
|
||||
Allez dans **Paramètres → Modèle par défaut** et choisissez le fournisseur et le modèle que les nouvelles conversations devront utiliser par défaut.
|
||||
|
||||
---
|
||||
|
||||
## Votre première conversation
|
||||
|
||||
1. Cliquez sur **Nouveau chat** dans la barre latérale (ou appuyez sur <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd>).
|
||||
2. Sélectionnez un modèle depuis le sélecteur de modèles en haut du chat.
|
||||
3. Tapez un message et appuyez sur <kbd>Entrée</kbd>.
|
||||
4. BoosApi diffuse la réponse en temps réel. Les modèles qui supportent les blocs de réflexion (ex. Claude, DeepSeek R1) affichent le processus de raisonnement dans une section repliable.
|
||||
|
||||
---
|
||||
|
||||
## Raccourcis
|
||||
|
||||
Voici les raccourcis clavier par défaut. Tous les raccourcis peuvent être personnalisés dans **Paramètres → Raccourcis**.
|
||||
|
||||
| Raccourci | Action |
|
||||
|-----------|--------|
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd> | Afficher / masquer la fenêtre actuelle |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>A</kbd> | Afficher / masquer toutes les fenêtres |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>W</kbd> | Fermer la fenêtre |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd> | Nouvelle conversation |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd> | Ouvrir les paramètres |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>K</kbd> | Palette de commandes |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | Basculer la passerelle API |
|
||||
|
||||
---
|
||||
|
||||
## Données et sauvegarde
|
||||
|
||||
### Répertoires de données
|
||||
|
||||
BoosApi stocke les données dans deux emplacements :
|
||||
|
||||
| Chemin | Contenu |
|
||||
|--------|---------|
|
||||
| `~/.boosapi/` | État de l'application — base de données, clés de chiffrement, base vectorielle, certificats SSL |
|
||||
| `~/Documents/boosapi/` | Fichiers utilisateur — images, documents, sauvegardes |
|
||||
|
||||
### Sauvegarde automatique
|
||||
|
||||
Allez dans **Paramètres → Sauvegarde** pour configurer les sauvegardes automatiques vers un répertoire local ou un serveur WebDAV.
|
||||
|
||||
---
|
||||
|
||||
## Prochaines étapes
|
||||
|
||||
- [Configurer les fournisseurs](./providers) — ajouter et gérer les fournisseurs IA
|
||||
- [Serveurs MCP](./mcp) — connecter des outils externes pour étendre les capacités IA
|
||||
- [Passerelle API](./gateway) — exposer vos fournisseurs comme serveur API local
|
||||
@@ -0,0 +1,64 @@
|
||||
# Serveurs MCP
|
||||
|
||||
## Qu'est-ce que MCP ?
|
||||
|
||||
Le [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) est un standard ouvert qui permet aux modèles IA d'interagir avec des outils et des sources de données externes. BoosApi agit comme un client MCP — vous ajoutez des serveurs MCP, et l'IA peut appeler les outils qu'ils exposent pendant une conversation.
|
||||
|
||||
---
|
||||
|
||||
## Protocoles de transport
|
||||
|
||||
BoosApi supporte trois protocoles de transport pour communiquer avec les serveurs MCP :
|
||||
|
||||
| Protocole | Connexion | Cas d'utilisation | Configuration |
|
||||
|-----------|-----------|------------------|---------------|
|
||||
| **Stdio** | Processus local | Outils installés sur votre machine, lancés via `npx`, `uvx`, `python`, etc. | `command` + `args` + `env` optionnel |
|
||||
| **SSE** | Serveur distant | Endpoint Server-Sent Events hébergé sur une machine distante | `url` |
|
||||
| **StreamableHTTP** | Serveur distant | Endpoint HTTP streaming, alternative plus récente à SSE | `url` |
|
||||
|
||||
---
|
||||
|
||||
## Ajouter des serveurs MCP
|
||||
|
||||
### Création par formulaire
|
||||
|
||||
1. Allez dans **Paramètres → Serveurs MCP**.
|
||||
2. Cliquez sur **Ajouter un serveur MCP**.
|
||||
3. Entrez un nom et sélectionnez le protocole de transport.
|
||||
4. Remplissez les champs pour votre protocole choisi.
|
||||
5. Cliquez sur **Enregistrer**.
|
||||
|
||||
### Import JSON
|
||||
|
||||
Cliquez sur **Import JSON** et collez un objet de configuration. BoosApi accepte le format JSON MCP standard :
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Outils intégrés
|
||||
|
||||
| Outil | Description |
|
||||
|-------|-------------|
|
||||
| **@boosapi/fetch** | Récupérer des pages web et des ressources HTTP |
|
||||
| **@boosapi/search-file** | Rechercher des fichiers sur votre système de fichiers local |
|
||||
|
||||
---
|
||||
|
||||
## Limite de boucle des outils
|
||||
|
||||
Settings -> MCP permet de configurer le nombre maximal d’itérations consécutives d’appels d’outils pour une réponse MCP. Réduisez la limite pour tester des serveurs inconnus, ou augmentez-la pour les workflows qui chaînent volontairement plusieurs outils.
|
||||
|
||||
## Prochaines étapes
|
||||
|
||||
- [Passerelle API](./gateway) — exposer vos fournisseurs comme serveur API local
|
||||
- [Démarrage rapide](./getting-started) — retourner au guide de démarrage rapide
|
||||
@@ -0,0 +1,147 @@
|
||||
# Configurer les fournisseurs
|
||||
|
||||
BoosApi se connecte simultanément à n'importe quel nombre de fournisseurs IA. Chaque fournisseur a ses propres clés API, liste de modèles et paramètres par défaut.
|
||||
|
||||
## Fournisseurs supportés
|
||||
|
||||
| Fournisseur | Modèles exemple |
|
||||
|------------|----------------|
|
||||
| **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** | Série Qwen |
|
||||
| **Zhipu AI** | Série GLM |
|
||||
| **xAI** | Série Grok |
|
||||
| **API compatible OpenAI** | Ollama, vLLM, LiteLLM, relais tiers, etc. |
|
||||
|
||||
---
|
||||
|
||||
## Ajouter un fournisseur
|
||||
|
||||
1. Allez dans **Paramètres → Fournisseurs**.
|
||||
2. Cliquez sur le bouton **+** en bas à gauche.
|
||||
3. Remplissez les détails du fournisseur :
|
||||
|
||||
| Champ | Description |
|
||||
|-------|-------------|
|
||||
| **Nom** | Nom d'affichage pour la barre latérale (ex. *OpenAI*) |
|
||||
| **Type** | Type de fournisseur — détermine l'URL de base par défaut |
|
||||
| **Icône** | Icône optionnelle pour l'identification visuelle |
|
||||
| **Clé API** | La clé secrète du tableau de bord de votre fournisseur |
|
||||
| **URL de base** | Endpoint API (pré-rempli pour les types intégrés) |
|
||||
| **Chemin API** | Chemin de requête — par défaut `/v1/chat/completions` |
|
||||
|
||||
---
|
||||
|
||||
## Importer depuis un lien Web
|
||||
|
||||
Les sites de fournisseurs, tableaux de bord de services relais, plateformes de modèles privées ou pages de passerelle locale peuvent proposer un lien **Ouvrir dans BoosApi**. Lorsqu'un utilisateur clique dessus, le navigateur ouvre l'application de bureau BoosApi, BoosApi passe à **Paramètres → Fournisseurs**, affiche une boîte de confirmation et importe la configuration uniquement après confirmation.
|
||||
|
||||
### Parcours utilisateur
|
||||
|
||||
1. Installez et ouvrez une version d'BoosApi compatible avec les liens de fournisseur.
|
||||
2. Cliquez sur le lien **Ouvrir dans BoosApi** fourni par le fournisseur dans le navigateur.
|
||||
3. Vérifiez dans BoosApi le nom du fournisseur, l'URL de base, le type de fournisseur et le préfixe de la clé API.
|
||||
4. BoosApi réutilise un fournisseur existant avec le même couple **URL de base + type**. S'il n'existe pas, BoosApi en crée un nouveau et ajoute la clé API seulement si elle n'est pas déjà présente.
|
||||
|
||||
BoosApi ne valide pas automatiquement la clé et ne récupère pas automatiquement les modèles. Après l'import, cliquez sur **Récupérer les modèles** ou ajoutez des modèles manuellement.
|
||||
|
||||
### Format du lien
|
||||
|
||||
```text
|
||||
boosapi://providers?name=<name>&baseurl=<base-url>&apikey=<api-key>&type=<provider-type>
|
||||
```
|
||||
|
||||
Exemple :
|
||||
|
||||
```text
|
||||
boosapi://providers?name=OpenAI&baseurl=https%3A%2F%2Fapi.openai.com&apikey=sk-xxx&type=openai
|
||||
```
|
||||
|
||||
### Paramètres
|
||||
|
||||
| Paramètre | Obligatoire | Description |
|
||||
|-----------|-------------|-------------|
|
||||
| `name` | Oui | Nom affiché dans BoosApi, par exemple `OpenAI` ou `My Relay` |
|
||||
| `baseurl` | Oui | URL de base encodée. Seuls `http` et `https` sont acceptés ; query et hash sont refusés. |
|
||||
| `apikey` | Oui | Clé API à enregistrer dans BoosApi. BoosApi n'affiche qu'un préfixe dans la boîte de confirmation. |
|
||||
| `type` | Oui | Type de fournisseur. Valeurs autorisées : `openai`, `openai_responses`, `anthropic`, `gemini`, `custom`. |
|
||||
|
||||
`baseurl` peut utiliser le suffixe forcé existant d'BoosApi, par exemple `https://example.com!`. L'import par lien ne définit pas `api_path` ; BoosApi continue d'utiliser le chemin par défaut du type de fournisseur choisi.
|
||||
|
||||
### Configuration du site Web
|
||||
|
||||
Encodez toutes les valeurs dynamiques avec `encodeURIComponent` ou `URLSearchParams` :
|
||||
|
||||
```html
|
||||
<a id="open-boosapi" href="#">Ouvrir dans 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>
|
||||
```
|
||||
|
||||
Si votre service permet de générer des clés API, créez le lien uniquement lorsque l'utilisateur est connecté et a explicitement choisi ou créé une clé.
|
||||
|
||||
::: warning Sécurité
|
||||
Une clé API dans une URL peut être visible dans l'historique du navigateur, les journaux, les extensions ou les outils d'analyse. Ne placez pas de vraies clés sur des pages publiques, du HTML statique ou des redirections tierces. Préférez générer le lien sur une page privée du compte après confirmation de l'utilisateur.
|
||||
:::
|
||||
|
||||
::: tip Test
|
||||
`boosapi://` est un protocole personnalisé enregistré par l'application de bureau installée. Exécuter uniquement le site Web ou le serveur de développement Vite n'enregistre pas ce protocole. Si le lien n'ouvre pas BoosApi, installez ou reconstruisez d'abord la dernière application de bureau BoosApi.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Importer depuis CC Switch
|
||||
|
||||
BoosApi peut scanner les configurations fournisseur de CC Switch depuis Settings -> Providers. Vérifiez chaque candidat, sélectionnez les lignes importables, puis importez fournisseurs, Base URLs, clés API et listes de modèles. Les entrées OAuth-only ou sans clé réutilisable sont ignorées avec une raison visible.
|
||||
|
||||
## Corps de requête modèle avancé
|
||||
|
||||
Chaque modèle peut définir extra_body, un objet JSON ajouté à plat aux requêtes OpenAI-compatible Chat Completions. Il sert aux options propres aux fournisseurs comme enable_thinking. BoosApi valide le JSON et bloque l’écrasement de model, messages, stream, tools et des champs de sampling de base.
|
||||
|
||||
## Rotation de clés multiples
|
||||
|
||||
BoosApi supporte plusieurs clés API par fournisseur pour la distribution de charge et l'évitement des limites de débit. Cliquez sur **Ajouter une clé** dans le panneau de détails du fournisseur.
|
||||
|
||||
---
|
||||
|
||||
## Gestion des modèles
|
||||
|
||||
Cliquez sur **Récupérer les modèles** pour obtenir la liste complète des modèles disponibles depuis l'API du fournisseur. Vous pouvez également ajouter des IDs de modèles manuellement.
|
||||
|
||||
Chaque modèle peut avoir ses propres paramètres par défaut : température, tokens maximum, Top P, pénalité de fréquence, pénalité de présence.
|
||||
|
||||
---
|
||||
|
||||
## Endpoints personnalisés et locaux
|
||||
|
||||
### Ollama (modèles locaux)
|
||||
|
||||
1. Installez et démarrez [Ollama](https://ollama.com/).
|
||||
2. Dans BoosApi, créez un nouveau fournisseur avec le type **OpenAI**.
|
||||
3. Définissez l'**URL de base** à `http://localhost:11434`.
|
||||
4. Cliquez sur **Récupérer les modèles** pour découvrir les modèles téléchargés localement.
|
||||
|
||||
---
|
||||
|
||||
## Prochaines étapes
|
||||
|
||||
- [Serveurs MCP](./mcp) — connecter des outils externes pour étendre les capacités IA
|
||||
- [Passerelle API](./gateway) — exposer vos fournisseurs comme serveur API local
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — Client IA de bureau open-source & passerelle"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi est un client IA de bureau gratuit et open-source avec chat multi-modèles, Agent, MCP, import ChatGPT/Cherry Studio/Kelivo, RAG local, sauvegarde S3/WebDAV et passerelle IA intégrée."
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "Votre espace de travail IA de bureau"
|
||||
tagline: "Chat multi-modèles, Agent, outils MCP, passerelle API, imports, base de connaissances et sauvegardes dans un client local-first"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "Démarrage rapide"
|
||||
link: /fr/guide/getting-started
|
||||
- theme: alt
|
||||
text: "Télécharger"
|
||||
link: /fr/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "Chat et modèles"
|
||||
details: "Connectez OpenAI, Claude, Gemini, DeepSeek, Qwen et tout endpoint compatible OpenAI avec Base URL, API Path, headers et proxy."
|
||||
- icon: api
|
||||
title: "Configuration fournisseurs"
|
||||
details: "Utilisez les liens boosapi:// et l’import CC Switch pour importer des profils fournisseur après confirmation."
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "Le modèle peut éditer des fichiers, exécuter des commandes et analyser du code dans un workflow contrôlé."
|
||||
- icon: edit
|
||||
title: "Rendu de contenu"
|
||||
details: "Rendu Markdown, code, tableaux, tâches et LaTeX dans les conversations streamées."
|
||||
- icon: search
|
||||
title: "Recherche et connaissances"
|
||||
details: "Tavily, Zhipu WebSearch, Bocha avec sources citées et génération de requêtes."
|
||||
- icon: cloud-server
|
||||
title: "Passerelle API"
|
||||
details: "Exposez OpenAI Chat Completions, OpenAI Responses, Claude natif et Gemini natif depuis l’app."
|
||||
- icon: book
|
||||
title: "Import et sauvegarde"
|
||||
details: "Importez ChatGPT, Cherry Studio et Kelivo avec aperçu, avertissements et gestion des doublons."
|
||||
- icon: lock
|
||||
title: "Bureau et sécurité"
|
||||
details: "État dans ~/.boosapi/, fichiers utilisateur dans ~/Documents/boosapi/, clés API protégées par AES-256."
|
||||
- icon: desktop
|
||||
title: "Bureau et sécurité"
|
||||
details: "État dans ~/.boosapi/, fichiers utilisateur dans ~/Documents/boosapi/, clés API protégées par AES-256."
|
||||
---
|
||||
@@ -0,0 +1,171 @@
|
||||
# API Gateway
|
||||
|
||||
## What is the API Gateway?
|
||||
|
||||
BoosApi includes a built-in local API server that exposes your configured providers as **OpenAI-compatible**, **Claude-native**, and **Gemini-native** endpoints. Any tool or client that speaks one of these protocols can use BoosApi as its backend — no separate API keys or relay services required.
|
||||
|
||||
Use cases:
|
||||
|
||||
- Run **Claude Code CLI**, **OpenAI Codex CLI**, **Gemini CLI**, or **OpenCode** through BoosApi.
|
||||
- Feed your IDE extensions through a single, locally managed endpoint.
|
||||
- Share one set of provider keys across many tools with per-key rate limiting.
|
||||
|
||||
---
|
||||
|
||||
## Getting Started
|
||||
|
||||
1. Open **Settings → API Gateway** (or press <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>).
|
||||
2. Click **Start** to launch the gateway server.
|
||||
3. By default the server listens on `127.0.0.1:8080` (HTTP). You can change the listen address and port in the **Settings** tab.
|
||||
|
||||
::: tip
|
||||
Enable **Auto-start** in the gateway settings to launch the server automatically when BoosApi starts.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## API Key Management
|
||||
|
||||
The gateway authenticates incoming requests with its own API keys, separate from your provider keys.
|
||||
|
||||
1. Go to the **API Keys** tab.
|
||||
2. Click **Generate New Key**.
|
||||
3. Optionally add a **description** (e.g. *Claude Code*, *VS Code*) to identify each key.
|
||||
4. Copy the key — it is only displayed once.
|
||||
|
||||
Each key shows its **prefix**, **creation date**, and **last used** timestamp. You can **enable/disable** or **delete** keys at any time.
|
||||
|
||||
::: warning
|
||||
Treat gateway keys like any other API key. Anyone with the key can send requests to your local gateway while it is running.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## SSL/TLS
|
||||
|
||||
The gateway can serve HTTPS alongside or instead of HTTP.
|
||||
|
||||
### Auto-Generated Certificate
|
||||
|
||||
1. Open the **Settings** tab.
|
||||
2. Enable **SSL/TLS** and select **Generate** mode.
|
||||
3. BoosApi creates a self-signed certificate and private key at:
|
||||
|
||||
```
|
||||
~/.boosapi/ssl/cert.pem
|
||||
~/.boosapi/ssl/key.pem
|
||||
```
|
||||
|
||||
4. Set the **HTTPS port** (default `8443`).
|
||||
5. Optionally enable **Force SSL** to redirect all HTTP requests to HTTPS.
|
||||
|
||||
### Custom Certificate
|
||||
|
||||
Select **Upload** mode and provide the paths to your own certificate and private key files.
|
||||
|
||||
::: info
|
||||
The private key is stored with file mode `0600` on Unix systems to prevent other users from reading it.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Usage Analytics
|
||||
|
||||
The **Metrics** tab provides dashboards for monitoring gateway activity:
|
||||
|
||||
| View | Description |
|
||||
|------|-------------|
|
||||
| **By API Key** | Request volume and token usage broken down by each gateway key |
|
||||
| **By Provider** | Requests and tokens routed to each upstream AI provider |
|
||||
| **By Day** | Daily usage trends over time |
|
||||
|
||||
Use these dashboards to track cost, spot anomalies, and balance load across providers.
|
||||
|
||||
---
|
||||
|
||||
## Request Logs
|
||||
|
||||
The **Overview** tab shows recent request logs with the following details:
|
||||
|
||||
- **Timestamp**, **HTTP method**, **path**
|
||||
- **Status code** and **response time**
|
||||
- **Provider** and **model** used
|
||||
- **Token count** (prompt + completion)
|
||||
|
||||
Click any log entry to inspect the full request and response. Use the **Clear Logs** button to reset the log history.
|
||||
|
||||
---
|
||||
|
||||
## Configuration Templates
|
||||
|
||||
BoosApi ships with ready-made configuration snippets for popular CLI tools. Go to the **Templates** tab, pick a tool, and click **Copy** to get the configuration you need.
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
### OpenCode
|
||||
|
||||
Add to your OpenCode configuration:
|
||||
|
||||
```json
|
||||
{
|
||||
"provider": "openai",
|
||||
"baseURL": "http://127.0.0.1:8080/v1",
|
||||
"apiKey": "boosapi-xxxx"
|
||||
}
|
||||
```
|
||||
|
||||
### Gemini CLI
|
||||
|
||||
```bash
|
||||
export GEMINI_API_BASE=http://127.0.0.1:8080
|
||||
export GEMINI_API_KEY=boosapi-xxxx
|
||||
gemini
|
||||
```
|
||||
|
||||
### Custom Client
|
||||
|
||||
Any tool that accepts an OpenAI-compatible base URL can connect to the gateway:
|
||||
|
||||
```
|
||||
Base URL: http://127.0.0.1:8080/v1
|
||||
API Key: boosapi-xxxx
|
||||
```
|
||||
|
||||
Replace `boosapi-xxxx` with a key generated in the **API Keys** tab. If SSL is enabled, use `https://` and port `8443` (or your configured HTTPS port).
|
||||
|
||||
---
|
||||
|
||||
## Connecting External Tools
|
||||
|
||||
Below is a general pattern for connecting any OpenAI-compatible client:
|
||||
|
||||
1. **Generate a gateway API key** in BoosApi.
|
||||
2. **Set the base URL** in your tool's configuration to `http://127.0.0.1:8080/v1` (or the HTTPS equivalent).
|
||||
3. **Set the API key** to the gateway key you generated.
|
||||
4. **Select a model** that you have configured in one of your BoosApi providers.
|
||||
5. Start using the tool — all requests route through BoosApi to the upstream provider.
|
||||
|
||||
::: tip
|
||||
If a tool requires a specific API format (e.g. Claude or Gemini native), BoosApi automatically detects the request format and routes it to the correct provider. You do not need to configure separate endpoints per format.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [Getting Started](./getting-started) — return to the quick start guide
|
||||
- [Configure Providers](./providers) — add the upstream providers the gateway routes to
|
||||
- [MCP Servers](./mcp) — connect external tools for AI tool calling
|
||||
@@ -0,0 +1,197 @@
|
||||
# Getting Started
|
||||
|
||||
## Installation
|
||||
|
||||
Download the latest installer from the [Download page](/download) or the [GitHub Releases](https://github.com/BoosApi-Desktop/BoosApi/releases).
|
||||
|
||||
### macOS
|
||||
|
||||
| Chip | File |
|
||||
|------|------|
|
||||
| Apple Silicon (M1 / M2 / M3 / M4) | `BoosApi_x.x.x_aarch64.dmg` |
|
||||
| Intel | `BoosApi_x.x.x_x64.dmg` |
|
||||
|
||||
1. Open the `.dmg` and drag **BoosApi** into the **Applications** folder.
|
||||
2. Launch BoosApi. If macOS blocks the app, go to **System Settings → Privacy & Security** and click **Open Anyway**.
|
||||
|
||||
::: warning macOS: "App Is Damaged" or "Cannot Verify Developer"
|
||||
If you see either of these messages, open Terminal and run:
|
||||
|
||||
```bash
|
||||
xattr -c /Applications/BoosApi.app
|
||||
```
|
||||
|
||||
Then launch the app again. This removes the quarantine flag that macOS applies to unsigned downloads.
|
||||
:::
|
||||
|
||||
### Windows
|
||||
|
||||
| Architecture | File |
|
||||
|--------------|------|
|
||||
| x64 (most PCs) | `BoosApi_x.x.x_x64-setup.exe` |
|
||||
| ARM64 | `BoosApi_x.x.x_arm64-setup.exe` |
|
||||
|
||||
Run the installer and follow the wizard. Launch BoosApi from the Start Menu or the desktop shortcut.
|
||||
|
||||
### Linux
|
||||
|
||||
| Format | Architecture | File |
|
||||
|--------|--------------|------|
|
||||
| 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` |
|
||||
| Any distro | x64 | `BoosApi_x.x.x_amd64.AppImage` |
|
||||
| Any distro | 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 (any distro)
|
||||
chmod +x BoosApi_x.x.x_amd64.AppImage
|
||||
./BoosApi_x.x.x_amd64.AppImage
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## First-Time Setup
|
||||
|
||||
### 1. Open Settings
|
||||
|
||||
Launch BoosApi and click the **gear icon** at the bottom of the sidebar, or press <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd>.
|
||||
|
||||
### 2. Add a Provider
|
||||
|
||||
Navigate to **Settings → Providers** and click the **+** button.
|
||||
|
||||
1. Enter a display name (e.g. *OpenAI*).
|
||||
2. Select the provider type (OpenAI, Anthropic, Google Gemini, etc.).
|
||||
3. Paste your API key.
|
||||
4. Confirm the **Base URL** — the official endpoint is pre-filled for built-in types. Change it only if you use a third-party relay or proxy.
|
||||
|
||||
::: tip
|
||||
You can add as many providers as you like. Each provider manages its own set of API keys and models independently.
|
||||
:::
|
||||
|
||||
### 3. Fetch Models
|
||||
|
||||
Click **Fetch Models** to pull the list of available models from the provider's API. You can also add model IDs manually if needed.
|
||||
|
||||
### 4. Set a Default Model
|
||||
|
||||
Go to **Settings → Default Model** and choose the provider and model that new conversations should use by default.
|
||||
|
||||
---
|
||||
|
||||
## Your First Conversation
|
||||
|
||||
1. Click **New Chat** in the sidebar (or press <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd>).
|
||||
2. Select a model from the model selector at the top of the chat.
|
||||
3. Type a message and press <kbd>Enter</kbd>.
|
||||
4. BoosApi streams the response in real time. Models that support thinking blocks (e.g. Claude, DeepSeek R1) display the reasoning process in a collapsible section above the answer.
|
||||
|
||||
---
|
||||
|
||||
## Key Concepts
|
||||
|
||||
### Conversation Branching
|
||||
|
||||
Edit or regenerate any message to create a branch. The original and new versions coexist in the same conversation tree — navigate between them with the arrow controls on each message.
|
||||
|
||||
### Message Versions
|
||||
|
||||
Every regeneration creates a new version. Switch between versions using the **◀ ▶** arrows on the message bubble.
|
||||
|
||||
### Context Attachments
|
||||
|
||||
Enrich your prompts by attaching files, search results, or MCP tool outputs directly to the conversation context.
|
||||
|
||||
---
|
||||
|
||||
## Shortcuts
|
||||
|
||||
Below are the default keyboard shortcuts. All shortcuts can be customized in **Settings → Shortcuts**.
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd> | Show / hide the current window |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>A</kbd> | Show / hide all windows |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>W</kbd> | Close window |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd> | New conversation |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd> | Open Settings |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>K</kbd> | Command palette |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>M</kbd> | Toggle model selector |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>↑</kbd> | Fill last message |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>K</kbd> | Clear context |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Backspace</kbd> | Clear conversation messages |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | Toggle API Gateway |
|
||||
|
||||
::: info
|
||||
Global shortcuts (show/hide window) work system-wide even when BoosApi is in the background. BoosApi detects conflicts with shortcuts from other applications and warns you in Settings.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Desktop Settings
|
||||
|
||||
Open **Settings** to configure the desktop experience.
|
||||
|
||||
| Setting | Options |
|
||||
|---------|---------|
|
||||
| **Theme** | Dark, Light, or System (auto) |
|
||||
| **Language** | English, 简体中文 |
|
||||
| **System tray** | Minimize to tray, close to tray |
|
||||
| **Auto-start** | Launch BoosApi when your computer starts |
|
||||
| **Always on top** | Keep the window above other applications |
|
||||
| **Proxy** | HTTP or SOCKS5 proxy with host and port |
|
||||
|
||||
---
|
||||
|
||||
## Data & Backup
|
||||
|
||||
### Data Directories
|
||||
|
||||
BoosApi stores data in two locations:
|
||||
|
||||
| Path | Contents |
|
||||
|------|----------|
|
||||
| `~/.boosapi/` | Application state — database, encryption keys, vector DB, SSL certificates |
|
||||
| `~/Documents/boosapi/` | User-visible files — images, documents, backups |
|
||||
|
||||
::: tip
|
||||
On Windows the paths are `%USERPROFILE%\.boosapi\` and `%USERPROFILE%\Documents\boosapi\`.
|
||||
:::
|
||||
|
||||
### Auto Backup
|
||||
|
||||
Go to **Settings → Backup** to configure automatic backups:
|
||||
|
||||
- **Enabled** — toggle automatic backups on or off.
|
||||
- **Interval** — how often to back up (in hours).
|
||||
- **Max count** — number of backups to keep before the oldest is deleted.
|
||||
- **Storage target** — local directory (default: `~/Documents/boosapi/backups/`) or WebDAV server.
|
||||
|
||||
### Manual Backup & Restore
|
||||
|
||||
Create a manual backup at any time from the Backup settings panel. To restore, select a backup from the history list and click **Restore**.
|
||||
|
||||
### Conversation Export
|
||||
|
||||
Right-click a conversation in the sidebar to export it as:
|
||||
|
||||
- **PNG** — rendered screenshot of the chat
|
||||
- **Markdown** — formatted with headers, code blocks, and LaTeX
|
||||
- **Plain text** — simple text with message separators
|
||||
- **JSON** — structured data with full metadata
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [Configure Providers](./providers) — add and manage AI providers
|
||||
- [MCP Servers](./mcp) — connect external tools to extend AI capabilities
|
||||
- [API Gateway](./gateway) — expose your providers as a local API server
|
||||
@@ -0,0 +1,205 @@
|
||||
# MCP Servers
|
||||
|
||||
## What is MCP?
|
||||
|
||||
The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) is an open standard that lets AI models interact with external tools and data sources. BoosApi acts as an MCP client — you add MCP servers, and the AI can call the tools they expose during a conversation.
|
||||
|
||||
---
|
||||
|
||||
## Transport Protocols
|
||||
|
||||
BoosApi supports three transport protocols for communicating with MCP servers:
|
||||
|
||||
| Protocol | Connection | Use Case | Configuration |
|
||||
|----------|-----------|----------|---------------|
|
||||
| **Stdio** | Local process | Tools installed on your machine, launched via `npx`, `uvx`, `python`, etc. | `command` + `args` + optional `env` |
|
||||
| **SSE** | Remote server | Server-Sent Events endpoint hosted on a remote machine or cloud service | `url` |
|
||||
| **StreamableHTTP** | Remote server | HTTP streaming endpoint, the newer alternative to SSE | `url` |
|
||||
|
||||
---
|
||||
|
||||
## Adding MCP Servers
|
||||
|
||||
### Form Creation
|
||||
|
||||
1. Go to **Settings → MCP Servers**.
|
||||
2. Click **Add MCP Server**.
|
||||
3. Enter a name and select the transport protocol.
|
||||
4. Fill in the fields for your chosen protocol:
|
||||
- **Stdio** — command to run, arguments (JSON array), environment variables (JSON object), timeout.
|
||||
- **SSE** — endpoint URL, timeout.
|
||||
- **StreamableHTTP** — endpoint URL, timeout.
|
||||
5. Click **Save**.
|
||||
|
||||
### JSON Import
|
||||
|
||||
Click **JSON Import** and paste a configuration object. BoosApi accepts the standard MCP JSON format:
|
||||
|
||||
#### Stdio server
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### SSE server
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-tools": {
|
||||
"type": "sse",
|
||||
"url": "https://example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### StreamableHTTP server
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-http": {
|
||||
"type": "streamablehttp",
|
||||
"url": "https://example.com/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Multiple servers at once
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
},
|
||||
"filesystem": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
|
||||
},
|
||||
"remote": {
|
||||
"type": "sse",
|
||||
"url": "https://example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuration Examples
|
||||
|
||||
### Web Fetching — `mcp-server-fetch`
|
||||
|
||||
Fetches web pages and converts them to readable text for the AI.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### File Operations — `@modelcontextprotocol/server-filesystem`
|
||||
|
||||
Gives the AI read/write access to specific directories on your machine.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"filesystem": {
|
||||
"command": "npx",
|
||||
"args": [
|
||||
"-y",
|
||||
"@modelcontextprotocol/server-filesystem",
|
||||
"/Users/me/documents",
|
||||
"/Users/me/projects"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Remote SSE Server
|
||||
|
||||
Connect to a remote tool server over Server-Sent Events.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"cloud-tools": {
|
||||
"type": "sse",
|
||||
"url": "https://mcp.example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Stdio with Environment Variables
|
||||
|
||||
Pass API keys or configuration to the server process via environment variables.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"weather": {
|
||||
"command": "python",
|
||||
"args": ["-m", "weather_server"],
|
||||
"env": {
|
||||
"WEATHER_API_KEY": "your-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Built-in Tools
|
||||
|
||||
BoosApi ships with built-in tools that are available without adding any external MCP server:
|
||||
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| **@boosapi/fetch** | Fetch web pages and HTTP resources |
|
||||
| **@boosapi/search-file** | Search for files on your local file system |
|
||||
|
||||
Built-in tools are listed in the MCP Servers settings alongside your custom servers and can be enabled or disabled individually.
|
||||
|
||||
---
|
||||
|
||||
## Tool Execution Panel
|
||||
|
||||
When the AI calls an MCP tool during a conversation, BoosApi displays a **tool execution panel** inline in the chat. The panel shows:
|
||||
|
||||
- The **tool name** and the **server** it belongs to.
|
||||
- The **input arguments** sent to the tool.
|
||||
- The **output** returned by the tool.
|
||||
- Execution status (running, succeeded, or failed).
|
||||
|
||||
Click on any tool call in the conversation to expand its details. This makes it easy to verify what the AI did and debug unexpected results.
|
||||
|
||||
---
|
||||
|
||||
## Tool Loop Limit
|
||||
|
||||
In Settings -> Conversation, MCP Tool Loop Max Iterations limits how many consecutive tool-call rounds one model response may run. Lower values reduce latency and cost; higher values allow longer autonomous tool workflows.
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [API Gateway](./gateway) — expose your providers as a local API server
|
||||
- [Getting Started](./getting-started) — return to the quick start guide
|
||||
@@ -0,0 +1,209 @@
|
||||
# Configure Providers
|
||||
|
||||
BoosApi connects to any number of AI providers simultaneously. Each provider has its own API keys, model list, and parameter defaults.
|
||||
|
||||
## Supported Providers
|
||||
|
||||
BoosApi includes first-class support for the following providers. Any service that exposes an OpenAI-compatible API also works out of the box.
|
||||
|
||||
| Provider | Example Models |
|
||||
|----------|---------------|
|
||||
| **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 series |
|
||||
| **Zhipu AI** | GLM series |
|
||||
| **xAI** | Grok series |
|
||||
| **Any OpenAI-compatible API** | Ollama, vLLM, LiteLLM, third-party relays, etc. |
|
||||
|
||||
---
|
||||
|
||||
## Adding a Provider
|
||||
|
||||
1. Go to **Settings → Providers**.
|
||||
2. Click the **+** button at the bottom left.
|
||||
3. Fill in the provider details:
|
||||
|
||||
| Field | Description |
|
||||
|-------|-------------|
|
||||
| **Name** | A display name for the sidebar (e.g. *OpenAI*) |
|
||||
| **Type** | Provider type — determines the default base URL and API behavior |
|
||||
| **Icon** | Optional icon for visual identification |
|
||||
| **API Key** | The secret key from your provider's dashboard |
|
||||
| **Base URL** | API endpoint (pre-filled for built-in types, changeable for relays) |
|
||||
| **API Path** | Request path — defaults to `/v1/chat/completions` |
|
||||
|
||||
::: tip
|
||||
For third-party relay services, keep the type set to **OpenAI** (or the matching upstream type) and change the **Base URL** to the relay's endpoint.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Importing from a Website Link
|
||||
|
||||
Provider websites can offer an **Open in BoosApi** link that opens the BoosApi desktop app and pre-fills the provider settings. BoosApi will switch to **Settings → Providers**, show a confirmation dialog, and import the provider only after the user confirms.
|
||||
|
||||
This is useful for API vendors, relay services, private model platforms, and local gateway dashboards that want to help users configure BoosApi without copying every field manually.
|
||||
|
||||
### User Flow
|
||||
|
||||
1. Install and open a version of BoosApi that supports provider links.
|
||||
2. Click the provider's **Open in BoosApi** link in your browser.
|
||||
3. Confirm the provider name, Base URL, provider type, and API key prefix in BoosApi.
|
||||
4. BoosApi creates a new provider or reuses an existing provider with the same **Base URL + type**, then adds the API key if it is not already present.
|
||||
|
||||
BoosApi does not validate the key or fetch models automatically. After importing, click **Fetch Models** or add models manually.
|
||||
|
||||
### Link Format
|
||||
|
||||
```text
|
||||
boosapi://providers?name=<name>&baseurl=<base-url>&apikey=<api-key>&type=<provider-type>
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```text
|
||||
boosapi://providers?name=OpenAI&baseurl=https%3A%2F%2Fapi.openai.com&apikey=sk-xxx&type=openai
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
| Parameter | Required | Description |
|
||||
|-----------|----------|-------------|
|
||||
| `name` | Yes | Display name shown in BoosApi, for example `OpenAI` or `My Relay` |
|
||||
| `baseurl` | Yes | Provider Base URL, URL-encoded. Only `http` and `https` are accepted. Query strings and fragments are rejected. |
|
||||
| `apikey` | Yes | API key to save into BoosApi. BoosApi shows only a prefix in the confirmation dialog. |
|
||||
| `type` | Yes | Provider type. Allowed values: `openai`, `openai_responses`, `anthropic`, `gemini`, `custom`. |
|
||||
|
||||
`baseurl` can use BoosApi's existing force suffix, for example `https://example.com!`. BoosApi stores `api_path` as empty for imported providers and continues to use the default path for the selected provider type.
|
||||
|
||||
### Website Configuration
|
||||
|
||||
Use `encodeURIComponent` for every dynamic value:
|
||||
|
||||
```html
|
||||
<a id="open-boosapi" href="#">Open in 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>
|
||||
```
|
||||
|
||||
If your service lets users generate API keys, create the link only after the user is signed in and has explicitly selected or created a key.
|
||||
|
||||
::: warning Security
|
||||
An API key in a URL may be visible to browser history, logs, extensions, or analytics tools. Do not place provider import links with real keys on public pages, in static HTML, or in third-party tracking redirects. Prefer generating the link on a private account page after user confirmation.
|
||||
:::
|
||||
|
||||
::: tip Testing
|
||||
Custom URI schemes are registered by the installed desktop app. If `boosapi://...` does not open BoosApi, install or rebuild the latest BoosApi app first; running only the website or Vite dev server does not register the system scheme.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Importing from CC Switch
|
||||
|
||||
BoosApi can scan CC Switch provider configurations from Settings -> Providers. Review each candidate, select the importable rows, then import providers, Base URLs, API keys and model lists into BoosApi. OAuth-only entries and entries without reusable keys are skipped with a visible reason.
|
||||
|
||||
## Advanced Model Request Body
|
||||
|
||||
Each model can define extra_body, a JSON object flattened into OpenAI-compatible Chat Completions requests. It is useful for vendor-specific options such as enable_thinking. BoosApi validates the JSON and blocks reserved fields such as model, messages, stream, tools and base sampling parameters.
|
||||
|
||||
## Multi-Key Rotation
|
||||
|
||||
BoosApi supports multiple API keys per provider for load distribution and rate-limit avoidance.
|
||||
|
||||
### Adding Keys
|
||||
|
||||
In the provider detail panel, click **Add Key** to add additional API keys. Each key shows its prefix, creation date, and last-used timestamp.
|
||||
|
||||
### How Rotation Works
|
||||
|
||||
BoosApi rotates through enabled keys automatically using a round-robin index. When a request completes, the rotation index advances to the next key. If a key is disabled or fails validation, it is skipped.
|
||||
|
||||
### Validating Keys
|
||||
|
||||
Click the **validate** button next to a key to verify it against the provider's API. The validation result and any error message are recorded for reference.
|
||||
|
||||
---
|
||||
|
||||
## Model Management
|
||||
|
||||
### Fetching Models
|
||||
|
||||
Click **Fetch Models** in the provider detail panel to pull the full list of available models from the provider's API. The discovered models are added to your local list automatically.
|
||||
|
||||
### Adding Models Manually
|
||||
|
||||
If a model is not returned by the API (e.g. a fine-tuned model or a new release), you can add it by typing the model ID directly.
|
||||
|
||||
### Per-Model Parameters
|
||||
|
||||
Each model can have its own default parameter overrides. Open the model's settings to configure:
|
||||
|
||||
| Parameter | Description |
|
||||
|-----------|-------------|
|
||||
| **Temperature** | Controls randomness (0 = deterministic, higher = more creative) |
|
||||
| **Max Tokens** | Maximum number of tokens in the response |
|
||||
| **Top P** | Nucleus sampling threshold |
|
||||
| **Frequency Penalty** | Reduces repetition of token sequences |
|
||||
| **Presence Penalty** | Encourages the model to introduce new topics |
|
||||
|
||||
### Model Capabilities
|
||||
|
||||
BoosApi tracks capabilities per model — such as **Vision**, **Function Calling**, and **Reasoning** — and displays them as tags. These capabilities affect which features are available during a conversation.
|
||||
|
||||
---
|
||||
|
||||
## Custom & Local Endpoints
|
||||
|
||||
BoosApi works with any endpoint that implements the OpenAI chat completions API.
|
||||
|
||||
### Ollama (Local Models)
|
||||
|
||||
1. Install and start [Ollama](https://ollama.com/).
|
||||
2. In BoosApi, create a new provider with type **OpenAI**.
|
||||
3. Set the **Base URL** to `http://localhost:11434`.
|
||||
4. Click **Fetch Models** to discover the models you have pulled locally.
|
||||
|
||||
### vLLM / TGI
|
||||
|
||||
Point the **Base URL** to the address of your inference server (e.g. `http://localhost:8000`) and fetch or add models as usual.
|
||||
|
||||
### API Relay Services
|
||||
|
||||
For relay or aggregator services (e.g. OpenRouter, one-api), set the type to **OpenAI**, enter the relay's base URL, and provide the relay's API key.
|
||||
|
||||
---
|
||||
|
||||
## Default Model Settings
|
||||
|
||||
### Default Assistant Model
|
||||
|
||||
Go to **Settings → Default Model** to choose the provider and model that new conversations use by default. You can always override the model on a per-conversation basis from the model selector.
|
||||
|
||||
### Topic Naming Model
|
||||
|
||||
BoosApi can automatically generate a title for each conversation. In the default model settings, you can assign a separate, lightweight model for topic naming to save cost and latency. Configure a custom prompt and context window size for title generation.
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [MCP Servers](./mcp) — connect external tools to extend AI capabilities
|
||||
- [API Gateway](./gateway) — expose your providers as a local API server
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# विशेषताएँ
|
||||
|
||||
BoosApi एक local-first AI desktop workspace है। यह पेज v0.0.85 के लिए provider import, third-party data import, MCP, HTML rendering, backup और gateway क्षमताओं के साथ अपडेट किया गया है।
|
||||
|
||||
## चैट और मॉडल
|
||||
|
||||
- **Multi-provider chat** — OpenAI, Claude, Gemini, DeepSeek, Qwen और OpenAI-compatible endpoints को Base URL, API Path, headers और proxy rules के साथ जोड़ें।
|
||||
- **Provider onboarding** — boosapi:// provider links और CC Switch import से user confirmation के बाद provider profiles BoosApi में लाएं।
|
||||
- **Model management** — Remote model lists sync करें, groups व्यवस्थित करें, latency test करें और capabilities, context length, sampling defaults, reasoning profiles तथा per-model extra_body सेट करें।
|
||||
- **Conversation workflows** — Streaming replies, thinking blocks, message versions, branches, title-generation status, long chat compression और multi-model comparison।
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Agent mode** — Model controlled desktop workflow में files edit, commands run और code analysis कर सकता है।
|
||||
- **Permission control** — Standard review, auto-accept edits या full-access mode चुनें, working-directory sandbox checks active रहते हैं।
|
||||
- **Approval और cost UI** — Tool calls real time में review करें, allow decisions याद रखें और हर session का token/cost track करें।
|
||||
|
||||
## सामग्री रेंडरिंग
|
||||
|
||||
- **Markdown और math** — Streaming conversations में Markdown, code highlighting, tables, task lists और LaTeX formulas render करें।
|
||||
- **Code, diagrams और Artifact** — Monaco code blocks, Mermaid, D2 और Artifact panel से code, Markdown notes, reports और previews देखें।
|
||||
- **HTML fragments** — Generated HTML fragments सुरक्षित preview करें, हाल के streaming stability fixes के साथ।
|
||||
|
||||
## खोज और ज्ञान
|
||||
|
||||
- **Web search** — Tavily, Zhipu WebSearch, Bocha आदि cited sources और generated search queries के साथ।
|
||||
- **Local knowledge base** — sqlite-vec से private documents index करें, retrieval/rerank options tune करें और retrieval feedback देखें।
|
||||
- **Context management** — Files, search results, knowledge snippets, memories और tool output को conversation context में जोड़ें।
|
||||
|
||||
## टूल और एक्सटेंशन
|
||||
|
||||
- **MCP protocol** — stdio, SSE या StreamableHTTP transport वाले Model Context Protocol servers चलाएं।
|
||||
- **Built-in tools** — @boosapi/fetch और file search जैसे built-in MCP tools बिना अलग server के उपयोग करें।
|
||||
- **Tool loop limit** — MCP tool-call loop count सेट करें और interrupted/stuck tool sessions से बेहतर recover करें।
|
||||
|
||||
## API gateway
|
||||
|
||||
- **Local gateway** — Desktop app से OpenAI Chat Completions, OpenAI Responses, Claude-native और Gemini-native endpoints expose करें।
|
||||
- **Access और observability** — Gateway keys, SSL/TLS certificates, request logs और usage analytics local रूप से manage करें।
|
||||
- **Client templates** — Claude Code, Codex CLI, OpenCode, Gemini CLI और custom clients के ready templates।
|
||||
|
||||
## Data import और backup
|
||||
|
||||
- **Third-party imports** — ChatGPT official exports, Cherry Studio backups और Kelivo backups preview counts, warnings और duplicate handling के साथ import करें।
|
||||
- **Provider और file migration** — Cherry Studio/Kelivo import linked providers, API keys और file attachments optionally migrate कर सकता है।
|
||||
- **Backups** — Local folders, WebDAV या S3-compatible storage से backup और restore करें।
|
||||
|
||||
## Desktop और security
|
||||
|
||||
- **Local encryption** — App state ~/.boosapi/ में, user files ~/Documents/boosapi/ में, API keys AES-256 और local master key से protected।
|
||||
- **Desktop integration** — Tray, always-on-top, global shortcuts, auto-start, proxy settings और automatic update checks।
|
||||
- **11 interface languages** — Simplified Chinese, Traditional Chinese, English, Japanese, Korean, French, German, Spanish, Russian, Hindi और Arabic में switch करें।
|
||||
@@ -0,0 +1,74 @@
|
||||
# API गेटवे
|
||||
|
||||
## API गेटवे क्या है?
|
||||
|
||||
BoosApi में एक बिल्ट-इन लोकल API सर्वर है जो आपके कॉन्फ़िगर किए गए प्रदाताओं को **OpenAI-कम्पैटिबल**, **Claude-नेटिव** और **Gemini-नेटिव** एंडपॉइंट के रूप में एक्सपोज़ करता है। इन प्रोटोकॉल में से किसी का भी उपयोग करने वाला कोई भी टूल या क्लाइंट BoosApi को बैकएंड के रूप में उपयोग कर सकता है।
|
||||
|
||||
उपयोग केस:
|
||||
|
||||
- BoosApi के माध्यम से **Claude Code CLI**, **OpenAI Codex CLI**, **Gemini CLI**, या **OpenCode** चलाएं।
|
||||
- अपने IDE एक्सटेंशन को एकल, लोकल रूप से प्रबंधित एंडपॉइंट से फीड करें।
|
||||
- प्रति-की रेट लिमिटिंग के साथ कई टूल्स में प्रदाता कीज़ का एक सेट साझा करें।
|
||||
|
||||
---
|
||||
|
||||
## शुरुआत
|
||||
|
||||
1. **Settings → API Gateway** खोलें (या <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> दबाएं)।
|
||||
2. गेटवे सर्वर लॉन्च करने के लिए **Start** क्लिक करें।
|
||||
3. डिफ़ॉल्ट रूप से सर्वर `127.0.0.1:8080` (HTTP) पर सुनता है।
|
||||
|
||||
::: tip
|
||||
BoosApi शुरू होने पर सर्वर ऑटोमैटिकली लॉन्च हो, इसके लिए गेटवे Settings में **Auto-start** एनेबल करें।
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## API की मैनेजमेंट
|
||||
|
||||
1. **API Keys** टैब में जाएं।
|
||||
2. **Generate New Key** क्लिक करें।
|
||||
3. वैकल्पिक रूप से हर की की पहचान के लिए **description** जोड़ें।
|
||||
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 Key: boosapi-xxxx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## अगले कदम
|
||||
|
||||
- [त्वरित प्रारंभ](./getting-started) — क्विक स्टार्ट गाइड पर वापस जाएं
|
||||
- [प्रदाता कॉन्फ़िगर करें](./providers) — गेटवे जिन अपस्ट्रीम प्रदाताओं को रूट करता है, उन्हें जोड़ें
|
||||
- [MCP सर्वर](./mcp) — AI टूल कॉलिंग के लिए बाहरी टूल्स कनेक्ट करें
|
||||
@@ -0,0 +1,117 @@
|
||||
# त्वरित प्रारंभ
|
||||
|
||||
## इंस्टॉलेशन
|
||||
|
||||
[डाउनलोड पेज](/hi/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** को **Applications** फोल्डर में ड्रैग करें।
|
||||
2. BoosApi लॉन्च करें। अगर macOS ऐप को ब्लॉक करे, **System Settings → Privacy & Security** में जाएं और **Open Anyway** क्लिक करें।
|
||||
|
||||
::: warning macOS: "App Is Damaged" या "Cannot Verify Developer"
|
||||
अगर ये संदेश दिखाई दें, तो Terminal खोलें और चलाएं:
|
||||
|
||||
```bash
|
||||
xattr -c /Applications/BoosApi.app
|
||||
```
|
||||
|
||||
फिर ऐप दोबारा लॉन्च करें।
|
||||
:::
|
||||
|
||||
### Windows
|
||||
|
||||
| आर्किटेक्चर | फ़ाइल |
|
||||
|------------|-------|
|
||||
| x64 (अधिकांश PC) | `BoosApi_x.x.x_x64-setup.exe` |
|
||||
| ARM64 | `BoosApi_x.x.x_arm64-setup.exe` |
|
||||
|
||||
इंस्टॉलर चलाएं और विज़ार्ड का पालन करें।
|
||||
|
||||
### Linux
|
||||
|
||||
```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. Settings खोलें
|
||||
|
||||
BoosApi लॉन्च करें और साइडबार के नीचे **gear आइकन** क्लिक करें, या <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd> दबाएं।
|
||||
|
||||
### 2. प्रदाता जोड़ें
|
||||
|
||||
**Settings → Providers** में जाएं और **+** बटन क्लिक करें।
|
||||
|
||||
1. एक डिस्प्ले नेम दर्ज करें (जैसे *OpenAI*)।
|
||||
2. प्रदाता प्रकार चुनें (OpenAI, Anthropic, Google Gemini, आदि)।
|
||||
3. अपनी API कुंजी पेस्ट करें।
|
||||
4. **Base URL** कन्फर्म करें — बिल्ट-इन प्रकारों के लिए आधिकारिक एंडपॉइंट पहले से भरा है।
|
||||
|
||||
::: tip
|
||||
आप जितने चाहें उतने प्रदाता जोड़ सकते हैं।
|
||||
:::
|
||||
|
||||
### 3. मॉडल फ़ेच करें
|
||||
|
||||
**Fetch Models** क्लिक करें प्रदाता की API से उपलब्ध मॉडलों की सूची प्राप्त करने के लिए।
|
||||
|
||||
### 4. डिफ़ॉल्ट मॉडल सेट करें
|
||||
|
||||
**Settings → Default Model** में जाएं और प्रदाता और मॉडल चुनें जो नई वार्तालाप डिफ़ॉल्ट रूप से उपयोग करें।
|
||||
|
||||
---
|
||||
|
||||
## आपकी पहली वार्तालाप
|
||||
|
||||
1. साइडबार में **New Chat** क्लिक करें (या <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd> दबाएं)।
|
||||
2. चैट के शीर्ष पर मॉडल सेलेक्टर से एक मॉडल चुनें।
|
||||
3. एक संदेश टाइप करें और <kbd>Enter</kbd> दबाएं।
|
||||
4. BoosApi रियल-टाइम में रेस्पॉन्स स्ट्रीम करता है।
|
||||
|
||||
---
|
||||
|
||||
## शॉर्टकट
|
||||
|
||||
| शॉर्टकट | क्रिया |
|
||||
|---------|--------|
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>A</kbd> | वर्तमान विंडो दिखाएं / छुपाएं |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd> | नई वार्तालाप |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>,</kbd> | Settings खोलें |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>K</kbd> | Command palette |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | API गेटवे टॉगल करें |
|
||||
|
||||
---
|
||||
|
||||
## डेटा और बैकअप
|
||||
|
||||
### डेटा डायरेक्टरी
|
||||
|
||||
| पथ | सामग्री |
|
||||
|----|---------|
|
||||
| `~/.boosapi/` | एप्लिकेशन स्टेट — डेटाबेस, एन्क्रिप्शन कीज़, वेक्टर DB, SSL सर्टिफिकेट |
|
||||
| `~/Documents/boosapi/` | यूज़र फ़ाइलें — इमेज, दस्तावेज़, बैकअप |
|
||||
|
||||
---
|
||||
|
||||
## अगले कदम
|
||||
|
||||
- [प्रदाता कॉन्फ़िगर करें](./providers) — AI प्रदाता जोड़ें और प्रबंधित करें
|
||||
- [MCP सर्वर](./mcp) — AI क्षमताओं को बढ़ाने के लिए बाहरी टूल्स कनेक्ट करें
|
||||
- [API गेटवे](./gateway) — अपने प्रदाताओं को लोकल API सर्वर के रूप में एक्सपोज़ करें
|
||||
@@ -0,0 +1,62 @@
|
||||
# MCP सर्वर
|
||||
|
||||
## MCP क्या है?
|
||||
|
||||
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) एक ओपन स्टैंडर्ड है जो AI मॉडलों को बाहरी टूल्स और डेटा स्रोतों के साथ इंटरैक्ट करने देता है। BoosApi MCP क्लाइंट के रूप में काम करता है — आप MCP सर्वर जोड़ते हैं, और AI वार्तालाप के दौरान उनके एक्सपोज़ टूल कॉल कर सकता है।
|
||||
|
||||
---
|
||||
|
||||
## ट्रांसपोर्ट प्रोटोकॉल
|
||||
|
||||
| प्रोटोकॉल | कनेक्शन | उपयोग केस | कॉन्फ़िगरेशन |
|
||||
|---------|---------|---------|------------|
|
||||
| **Stdio** | लोकल प्रोसेस | `npx`, `uvx`, `python` आदि से लॉन्च टूल्स | `command` + `args` + वैकल्पिक `env` |
|
||||
| **SSE** | रिमोट सर्वर | रिमोट मशीन पर होस्ट Server-Sent Events एंडपॉइंट | `url` |
|
||||
| **StreamableHTTP** | रिमोट सर्वर | HTTP स्ट्रीमिंग एंडपॉइंट | `url` |
|
||||
|
||||
---
|
||||
|
||||
## MCP सर्वर जोड़ना
|
||||
|
||||
### फॉर्म से बनाना
|
||||
|
||||
1. **Settings → MCP Servers** में जाएं।
|
||||
2. **Add MCP Server** क्लिक करें।
|
||||
3. एक नाम दर्ज करें और ट्रांसपोर्ट प्रोटोकॉल चुनें।
|
||||
4. अपने चुने हुए प्रोटोकॉल के लिए फ़ील्ड भरें।
|
||||
5. **Save** क्लिक करें।
|
||||
|
||||
### JSON इम्पोर्ट
|
||||
|
||||
**JSON Import** क्लिक करें और कॉन्फ़िगरेशन ऑब्जेक्ट पेस्ट करें:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## बिल्ट-इन टूल्स
|
||||
|
||||
| टूल | विवरण |
|
||||
|-----|-------|
|
||||
| **@boosapi/fetch** | वेब पेज और HTTP रिसोर्स फ़ेच करें |
|
||||
| **@boosapi/search-file** | लोकल फ़ाइल सिस्टम में फ़ाइलें खोजें |
|
||||
|
||||
---
|
||||
|
||||
## Tool loop limit
|
||||
|
||||
Settings -> MCP में MCP-enabled response के लिए consecutive tool-call iterations की maximum संख्या सेट कर सकते हैं। Unknown servers टेस्ट करते समय limit कम रखें, और multi-tool workflows के लिए इसे बढ़ा सकते हैं।
|
||||
|
||||
## अगले कदम
|
||||
|
||||
- [API गेटवे](./gateway) — अपने प्रदाताओं को लोकल API सर्वर के रूप में एक्सपोज़ करें
|
||||
- [त्वरित प्रारंभ](./getting-started) — क्विक स्टार्ट गाइड पर वापस जाएं
|
||||
@@ -0,0 +1,143 @@
|
||||
# प्रदाता कॉन्फ़िगर करें
|
||||
|
||||
BoosApi एक साथ किसी भी संख्या में AI प्रदाताओं से कनेक्ट होता है। प्रत्येक प्रदाता की अपनी 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. **Settings → Providers** में जाएं।
|
||||
2. नीचे बाईं ओर **+** बटन क्लिक करें।
|
||||
3. प्रदाता विवरण भरें:
|
||||
|
||||
| फ़ील्ड | विवरण |
|
||||
|--------|-------|
|
||||
| **नाम** | साइडबार के लिए डिस्प्ले नेम (जैसे *OpenAI*) |
|
||||
| **प्रकार** | प्रदाता प्रकार — डिफ़ॉल्ट Base URL निर्धारित करता है |
|
||||
| **आइकन** | विज़ुअल पहचान के लिए वैकल्पिक आइकन |
|
||||
| **API कुंजी** | आपके प्रदाता के डैशबोर्ड से गुप्त कुंजी |
|
||||
| **Base URL** | API एंडपॉइंट (बिल्ट-इन प्रकारों के लिए पूर्व-भरा) |
|
||||
| **API पथ** | रिक्वेस्ट पथ — डिफ़ॉल्ट `/v1/chat/completions` |
|
||||
|
||||
---
|
||||
|
||||
## वेबसाइट लिंक से आयात करना
|
||||
|
||||
प्रदाता वेबसाइट, रिले सेवा डैशबोर्ड, निजी मॉडल प्लेटफ़ॉर्म या लोकल गेटवे पेज **BoosApi में खोलें** लिंक दे सकते हैं। क्लिक करने पर ब्राउज़र BoosApi डेस्कटॉप ऐप खोलता है, BoosApi **Settings → Providers** पर जाता है, पुष्टि डायलॉग दिखाता है और उपयोगकर्ता की पुष्टि के बाद ही कॉन्फ़िगरेशन आयात करता है।
|
||||
|
||||
### उपयोगकर्ता प्रवाह
|
||||
|
||||
1. प्रदाता लिंक आयात सपोर्ट करने वाला BoosApi संस्करण इंस्टॉल करके खोलें।
|
||||
2. ब्राउज़र में प्रदाता का **BoosApi में खोलें** लिंक क्लिक करें।
|
||||
3. BoosApi में प्रदाता नाम, Base URL, प्रदाता प्रकार और API key prefix जांचें।
|
||||
4. BoosApi समान **Base URL + प्रकार** वाले मौजूदा प्रदाता को पुनः उपयोग करता है। यदि वह मौजूद नहीं है, तो नया प्रदाता बनाता है और API key केवल तब जोड़ता है जब वह पहले से मौजूद न हो।
|
||||
|
||||
BoosApi API key को अपने-आप validate नहीं करता और मॉडल सूची अपने-आप fetch नहीं करता। आयात के बाद **Fetch Models** क्लिक करें या मॉडल ID मैन्युअल रूप से जोड़ें।
|
||||
|
||||
### लिंक फ़ॉर्मेट
|
||||
|
||||
```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-encoded Base URL। केवल `http` और `https` स्वीकार हैं; query और hash अस्वीकार किए जाते हैं। |
|
||||
| `apikey` | हाँ | BoosApi में सेव की जाने वाली API key। पुष्टि डायलॉग में BoosApi केवल prefix दिखाता है। |
|
||||
| `type` | हाँ | प्रदाता प्रकार। मान्य values: `openai`, `openai_responses`, `anthropic`, `gemini`, `custom`. |
|
||||
|
||||
`baseurl` BoosApi के मौजूदा force suffix का उपयोग कर सकता है, जैसे `https://example.com!`। लिंक से आयात करते समय `api_path` सेट नहीं होता; BoosApi चुने गए प्रदाता प्रकार का डिफ़ॉल्ट path इस्तेमाल करता है।
|
||||
|
||||
### वेबसाइट कॉन्फ़िगरेशन
|
||||
|
||||
हर dynamic value को `encodeURIComponent` या `URLSearchParams` से encode करें:
|
||||
|
||||
```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 key ऑनलाइन generate करती है, तो लिंक केवल उपयोगकर्ता के sign in करने और स्पष्ट रूप से key चुनने या बनाने के बाद generate करें।
|
||||
|
||||
::: warning सुरक्षा
|
||||
URL में API key ब्राउज़र history, logs, extensions या analytics tools में दिखाई दे सकती है। असली keys को public pages, static HTML या third-party redirects में न डालें। बेहतर है कि लिंक private account page पर user confirmation के बाद generate किया जाए।
|
||||
:::
|
||||
|
||||
::: tip टेस्टिंग
|
||||
`boosapi://` एक custom protocol है जिसे installed desktop app सिस्टम में register करती है। केवल वेबसाइट या Vite dev server चलाने से protocol register नहीं होता। यदि link BoosApi नहीं खोलता, तो पहले latest BoosApi desktop app install या rebuild करें।
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## CC Switch से import
|
||||
|
||||
BoosApi Settings -> Providers में CC Switch provider configurations स्कैन कर सकता है। हर candidate देखें, importable rows चुनें, फिर providers, Base URLs, API keys और model lists BoosApi में import करें। OAuth-only entries या reusable keys के बिना entries visible reason के साथ skip होती हैं।
|
||||
|
||||
## Advanced model request body
|
||||
|
||||
हर model extra_body define कर सकता है, जो OpenAI-compatible Chat Completions requests में flat JSON object के रूप में जोड़ा जाता है। यह enable_thinking जैसे vendor-specific options के लिए उपयोगी है। BoosApi JSON validate करता है और model, messages, stream, tools तथा base sampling fields overwrite होने से रोकता है।
|
||||
|
||||
## मल्टी-की रोटेशन
|
||||
|
||||
BoosApi लोड वितरण के लिए प्रति प्रदाता कई API कीज़ सपोर्ट करता है। प्रदाता डिटेल पैनल में **Add Key** क्लिक करें।
|
||||
|
||||
---
|
||||
|
||||
## मॉडल प्रबंधन
|
||||
|
||||
उपलब्ध मॉडलों की पूरी सूची प्राप्त करने के लिए **Fetch Models** क्लिक करें। आप मॉडल ID मैन्युअल रूप से भी जोड़ सकते हैं।
|
||||
|
||||
---
|
||||
|
||||
## Ollama (लोकल मॉडल)
|
||||
|
||||
1. [Ollama](https://ollama.com/) इंस्टॉल और स्टार्ट करें।
|
||||
2. BoosApi में **OpenAI** प्रकार के साथ नया प्रदाता बनाएं।
|
||||
3. **Base URL** को `http://localhost:11434` पर सेट करें।
|
||||
4. लोकल रूप से डाउनलोड किए गए मॉडल खोजने के लिए **Fetch Models** क्लिक करें।
|
||||
|
||||
---
|
||||
|
||||
## अगले कदम
|
||||
|
||||
- [MCP सर्वर](./mcp) — AI क्षमताओं को बढ़ाने के लिए बाहरी टूल्स कनेक्ट करें
|
||||
- [API गेटवे](./gateway) — अपने प्रदाताओं को लोकल API सर्वर के रूप में एक्सपोज़ करें
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — open-source AI desktop client और gateway"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi एक free open-source AI desktop client है जिसमें multi-model chat, Agent, MCP, ChatGPT/Cherry Studio/Kelivo import, local RAG, S3/WebDAV backup और built-in AI gateway है।"
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "आपका AI desktop workspace"
|
||||
tagline: "Multi-model chat, Agent, MCP tools, API gateway, imports, knowledge base और backups एक local-first client में"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "Quick Start"
|
||||
link: /hi/guide/getting-started
|
||||
- theme: alt
|
||||
text: "डाउनलोड"
|
||||
link: /hi/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "Multi-model chat"
|
||||
details: "OpenAI, Claude, Gemini, DeepSeek, Qwen और compatible APIs with key rotation, branches, compression और multi-model answers।"
|
||||
- icon: api
|
||||
title: "Provider setup"
|
||||
details: "boosapi:// provider links, CC Switch import, custom headers, proxy settings, OpenAI Responses और per-model extra_body।"
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "File edits, commands और code analysis with permission levels, working-directory sandboxing, approval UI और cost tracking।"
|
||||
- icon: edit
|
||||
title: "Rich rendering"
|
||||
details: "Markdown, LaTeX, Mermaid, D2, Monaco code blocks, HTML fragments और Artifact previews।"
|
||||
- icon: search
|
||||
title: "Search और RAG"
|
||||
details: "Web search with citations, query generation, local sqlite-vec knowledge bases, rerank settings और retrieval feedback।"
|
||||
- icon: cloud-server
|
||||
title: "API gateway"
|
||||
details: "Local OpenAI-compatible, OpenAI Responses, Claude और Gemini endpoints for Claude Code, Codex, OpenCode और custom tools।"
|
||||
- icon: book
|
||||
title: "Data import"
|
||||
details: "ChatGPT official exports, Cherry Studio backups और Kelivo backups duplicate handling और optional provider migration के साथ।"
|
||||
- icon: lock
|
||||
title: "Backup और security"
|
||||
details: "AES-256 encrypted local storage, dual-root data layout, local/WebDAV/S3 backups और restore workflows।"
|
||||
- icon: desktop
|
||||
title: "Desktop experience"
|
||||
details: "11 interface languages, tray mode, always-on-top, global shortcuts, auto-start, proxy support और auto-update checks।"
|
||||
---
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — Open-source AI Desktop Client & Gateway"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi is a free, open-source AI desktop client with multi-model chat, Agent mode, MCP tools, ChatGPT/Cherry Studio/Kelivo import, local RAG, S3/WebDAV backup, and a built-in AI gateway."
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "Your AI Desktop Workspace"
|
||||
tagline: "Multi-model chat, Agent, MCP tools, API gateway, imports, knowledge base and backups in one local-first client"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "Quick Start"
|
||||
link: /guide/getting-started
|
||||
- theme: alt
|
||||
text: "Download"
|
||||
link: /download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "Multi-Model Chat"
|
||||
details: "OpenAI, Claude, Gemini, DeepSeek, Qwen and compatible APIs with key rotation, branches, compression and multi-model answers."
|
||||
- icon: api
|
||||
title: "Fast Provider Setup"
|
||||
details: "boosapi:// provider links, CC Switch import, custom headers, proxy settings, OpenAI Responses and per-model extra_body controls."
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "File edits, commands and code analysis with permission levels, working-directory sandboxing, approval UI and cost tracking."
|
||||
- icon: edit
|
||||
title: "Rich Rendering"
|
||||
details: "Markdown, LaTeX, Mermaid, D2, Monaco code blocks, HTML fragments and Artifact previews built for streaming replies."
|
||||
- icon: search
|
||||
title: "Search & RAG"
|
||||
details: "Web search with citations, query generation, local sqlite-vec knowledge bases, rerank settings and retrieval feedback."
|
||||
- icon: cloud-server
|
||||
title: "API Gateway"
|
||||
details: "Local OpenAI-compatible, OpenAI Responses, Claude and Gemini endpoints for Claude Code, Codex, OpenCode and custom tools."
|
||||
- icon: book
|
||||
title: "Data Import"
|
||||
details: "Bring in ChatGPT official exports, Cherry Studio backups and Kelivo backups with duplicate handling and optional provider migration."
|
||||
- icon: lock
|
||||
title: "Backup & Security"
|
||||
details: "AES-256 encrypted local storage, dual-root data layout, local/WebDAV/S3 backups and restore workflows."
|
||||
- icon: desktop
|
||||
title: "Desktop Experience"
|
||||
details: "11 interface languages, tray mode, always-on-top, global shortcuts, auto-start, proxy support and auto-update checks."
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# 機能一覧
|
||||
|
||||
BoosApi はローカルファーストの AI デスクトップワークスペースです。このページは v0.0.85 に合わせて、プロバイダー導入、外部データインポート、MCP、HTML レンダリング、バックアップ、ゲートウェイ機能を更新しています。
|
||||
|
||||
## チャットとモデル
|
||||
|
||||
- **マルチプロバイダー対応** — OpenAI、Claude、Gemini、DeepSeek、Qwen、OpenAI 互換エンドポイントを、Base URL、API Path、ヘッダー、プロキシ設定付きで接続できます。
|
||||
- **プロバイダー導入** — boosapi:// プロバイダーリンクと CC Switch インポートで、ユーザー確認後にプロバイダー設定を取り込めます。
|
||||
- **モデル管理** — リモートモデル同期、グループ管理、レイテンシーテスト、能力タグ、コンテキスト長、サンプリング既定値、推論プロファイル、モデル別 extra_body を設定できます。
|
||||
- **会話ワークフロー** — ストリーミング返信、思考ブロック、メッセージバージョン、会話分岐、タイトル生成状態、長文圧縮、複数モデル並列回答に対応します。
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Agent モード** — 制御されたデスクトップワークフロー内で、モデルにファイル編集、コマンド実行、コード分析を任せられます。
|
||||
- **権限制御** — 標準レビュー、自動編集承認、フルアクセスを選べ、作業ディレクトリのサンドボックスチェックは維持されます。
|
||||
- **承認とコスト UI** — ツール呼び出しをリアルタイムで確認し、許可判断を記憶し、各 Agent セッションの token とコストを追跡できます。
|
||||
|
||||
## コンテンツレンダリング
|
||||
|
||||
- **Markdown と数式** — ストリーミング会話で Markdown、コードハイライト、表、タスクリスト、LaTeX 数式を表示します。
|
||||
- **コード、図、Artifact** — Monaco コードブロック、Mermaid、D2、Artifact パネルでコード、Markdown メモ、レポート、プレビューを扱えます。
|
||||
- **HTML フラグメント** — 生成された HTML 断片を安全にプレビューし、最近のリリースで追加されたストリーミング安定化も反映しています。
|
||||
|
||||
## 検索とナレッジ
|
||||
|
||||
- **Web 検索** — Tavily、Zhipu WebSearch、Bocha などを使い、引用元と検索クエリ生成を会話に追加できます。
|
||||
- **ローカルナレッジベース** — sqlite-vec で非公開ドキュメントを索引化し、取得/リランク設定と検索フィードバックを確認できます。
|
||||
- **コンテキスト管理** — ファイル、検索結果、ナレッジ断片、メモリ、ツール出力を会話コンテキストへ追加できます。
|
||||
|
||||
## ツールと拡張機能
|
||||
|
||||
- **MCP プロトコル** — stdio、SSE、StreamableHTTP の Model Context Protocol サーバーを実行できます。
|
||||
- **ビルトインツール** — @boosapi/fetch やファイル検索などの内蔵 MCP ツールを、追加サーバーなしで利用できます。
|
||||
- **ツールループ上限** — MCP ツール呼び出しの最大ループ数を設定し、中断や停止したツールセッションから復帰しやすくなりました。
|
||||
|
||||
## API ゲートウェイ
|
||||
|
||||
- **ローカルゲートウェイ** — デスクトップアプリから OpenAI Chat Completions、OpenAI Responses、Claude ネイティブ、Gemini ネイティブ API を公開します。
|
||||
- **アクセスと可観測性** — ゲートウェイキー、SSL/TLS 証明書、リクエストログ、利用統計をローカルで管理できます。
|
||||
- **クライアントテンプレート** — Claude Code、Codex CLI、OpenCode、Gemini CLI、カスタムクライアント向けのテンプレートを提供します。
|
||||
|
||||
## データインポートとバックアップ
|
||||
|
||||
- **サードパーティインポート** — ChatGPT 公式エクスポート、Cherry Studio、Kelivo バックアップをプレビュー、警告、重複処理付きで取り込めます。
|
||||
- **プロバイダーとファイル移行** — Cherry Studio/Kelivo から関連プロバイダー、API キー、添付ファイルを任意で移行できます。
|
||||
- **バックアップ** — ローカルフォルダー、WebDAV、S3 互換ストレージでバックアップと復元を行えます。
|
||||
|
||||
## デスクトップとセキュリティ
|
||||
|
||||
- **ローカル暗号化** — アプリ状態は ~/.boosapi/、ユーザーファイルは ~/Documents/boosapi/ に保存され、API キーは AES-256 とローカルマスターキーで保護されます。
|
||||
- **デスクトップ統合** — トレイ、常に手前、グローバルショートカット、自動起動、プロキシ、自動更新チェックをサポートします。
|
||||
- **11 言語 UI** — 簡体字中国語、繁体字中国語、英語、日本語、韓国語、フランス語、ドイツ語、スペイン語、ロシア語、ヒンディー語、アラビア語を切り替えられます。
|
||||
@@ -0,0 +1,171 @@
|
||||
# API ゲートウェイ
|
||||
|
||||
## API ゲートウェイとは?
|
||||
|
||||
BoosApi にはビルトインのローカル API サーバーが含まれており、設定されたプロバイダーを **OpenAI 互換**、**Claude ネイティブ**、**Gemini ネイティブ**エンドポイントとして公開します。これらのプロトコルのいずれかを使用するツールやクライアントは、BoosApi をバックエンドとして使用できます — 別の API キーやリレーサービスは不要です。
|
||||
|
||||
ユースケース:
|
||||
|
||||
- **Claude Code CLI**、**OpenAI Codex CLI**、**Gemini CLI**、**OpenCode** を BoosApi 経由で実行。
|
||||
- IDE 拡張機能を単一のローカル管理エンドポイントに接続。
|
||||
- 1 セットのプロバイダーキーをキーごとのレート制限で多くのツールで共有。
|
||||
|
||||
---
|
||||
|
||||
## はじめに
|
||||
|
||||
1. **設定 → API ゲートウェイ**を開きます(または <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> を押します)。
|
||||
2. **起動**をクリックしてゲートウェイサーバーを起動します。
|
||||
3. デフォルトでは、サーバーは `127.0.0.1:8080`(HTTP)でリッスンします。**設定**タブでリッスンアドレスとポートを変更できます。
|
||||
|
||||
::: tip
|
||||
ゲートウェイ設定で**自動起動**を有効にすると、BoosApi 起動時にサーバーが自動的に起動します。
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## API キー管理
|
||||
|
||||
ゲートウェイは、プロバイダーキーとは別に独自の API キーで受信リクエストを認証します。
|
||||
|
||||
1. **API キー**タブに移動します。
|
||||
2. **新しいキーを生成**をクリックします。
|
||||
3. 各キーを識別するためにオプションで**説明**を追加します(例:*Claude Code*、*VS Code*)。
|
||||
4. キーをコピーします — 一度しか表示されません。
|
||||
|
||||
各キーには**プレフィックス**、**作成日**、**最終使用**タイムスタンプが表示されます。キーはいつでも**有効化/無効化**または**削除**できます。
|
||||
|
||||
::: warning
|
||||
ゲートウェイキーは他の API キーと同様に扱ってください。キーを持つ人は誰でも、ゲートウェイが実行中にローカルゲートウェイにリクエストを送信できます。
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## SSL/TLS
|
||||
|
||||
ゲートウェイは HTTP の他に HTTPS を提供できます。
|
||||
|
||||
### 自動生成証明書
|
||||
|
||||
1. **設定**タブを開きます。
|
||||
2. **SSL/TLS** を有効にして**生成**モードを選択します。
|
||||
3. BoosApi が自己署名証明書と秘密鍵を以下に作成します:
|
||||
|
||||
```
|
||||
~/.boosapi/ssl/cert.pem
|
||||
~/.boosapi/ssl/key.pem
|
||||
```
|
||||
|
||||
4. **HTTPS ポート**を設定します(デフォルト `8443`)。
|
||||
5. オプションで**SSL 強制**を有効にして、すべての HTTP リクエストを HTTPS にリダイレクトします。
|
||||
|
||||
### カスタム証明書
|
||||
|
||||
**アップロード**モードを選択して、独自の証明書と秘密鍵ファイルのパスを提供します。
|
||||
|
||||
::: info
|
||||
秘密鍵は Unix システムではファイルモード `0600` で保存され、他のユーザーが読み取れないようにします。
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## 使用状況分析
|
||||
|
||||
**メトリクス**タブにはゲートウェイアクティビティを監視するためのダッシュボードが表示されます:
|
||||
|
||||
| ビュー | 説明 |
|
||||
|--------|------|
|
||||
| **API キー別** | 各ゲートウェイキーによるリクエスト量とトークン使用量 |
|
||||
| **プロバイダー別** | 各アップストリーム AI プロバイダーへのリクエストとトークン |
|
||||
| **日別** | 時間経過による日次使用トレンド |
|
||||
|
||||
これらのダッシュボードを使用してコストを追跡し、異常を発見し、プロバイダー間で負荷を分散します。
|
||||
|
||||
---
|
||||
|
||||
## リクエストログ
|
||||
|
||||
**概要**タブには以下の詳細を含む最近のリクエストログが表示されます:
|
||||
|
||||
- **タイムスタンプ**、**HTTP メソッド**、**パス**
|
||||
- **ステータスコード**と**レスポンスタイム**
|
||||
- 使用された**プロバイダー**と**モデル**
|
||||
- **トークン数**(プロンプト + 補完)
|
||||
|
||||
任意のログエントリをクリックして完全なリクエストとレスポンスを確認します。**ログをクリア**ボタンでログ履歴をリセットします。
|
||||
|
||||
---
|
||||
|
||||
## 設定テンプレート
|
||||
|
||||
BoosApi には人気の CLI ツール用の既製設定スニペットが付属しています。**テンプレート**タブに移動し、ツールを選択して**コピー**をクリックして必要な設定を取得します。
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
### OpenCode
|
||||
|
||||
OpenCode 設定に追加します:
|
||||
|
||||
```json
|
||||
{
|
||||
"provider": "openai",
|
||||
"baseURL": "http://127.0.0.1:8080/v1",
|
||||
"apiKey": "boosapi-xxxx"
|
||||
}
|
||||
```
|
||||
|
||||
### Gemini CLI
|
||||
|
||||
```bash
|
||||
export GEMINI_API_BASE=http://127.0.0.1:8080
|
||||
export GEMINI_API_KEY=boosapi-xxxx
|
||||
gemini
|
||||
```
|
||||
|
||||
### カスタムクライアント
|
||||
|
||||
OpenAI 互換のベース URL を受け入れるツールはゲートウェイに接続できます:
|
||||
|
||||
```
|
||||
Base URL: http://127.0.0.1:8080/v1
|
||||
API Key: boosapi-xxxx
|
||||
```
|
||||
|
||||
`boosapi-xxxx` を **API キー**タブで生成したキーに置き換えます。SSL が有効な場合は `https://` とポート `8443`(または設定した HTTPS ポート)を使用します。
|
||||
|
||||
---
|
||||
|
||||
## 外部ツールの接続
|
||||
|
||||
以下は OpenAI 互換クライアントを接続するための一般的なパターンです:
|
||||
|
||||
1. BoosApi で**ゲートウェイ API キーを生成**します。
|
||||
2. ツールの設定で**ベース URL** を `http://127.0.0.1:8080/v1`(または HTTPS の同等)に設定します。
|
||||
3. **API キー**を生成したゲートウェイキーに設定します。
|
||||
4. BoosApi プロバイダーのいずれかに設定した**モデルを選択**します。
|
||||
5. ツールを使用し始めます — すべてのリクエストは BoosApi を経由してアップストリームプロバイダーにルーティングされます。
|
||||
|
||||
::: tip
|
||||
ツールが特定の API 形式(例:Claude または Gemini ネイティブ)を必要とする場合、BoosApi はリクエスト形式を自動的に検出して正しいプロバイダーにルーティングします。形式ごとに別のエンドポイントを設定する必要はありません。
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## 次のステップ
|
||||
|
||||
- [クイックスタート](./getting-started) — クイックスタートガイドに戻る
|
||||
- [プロバイダーの設定](./providers) — ゲートウェイがルーティングするアップストリームプロバイダーの追加
|
||||
- [MCP サーバー](./mcp) — AI ツール呼び出しのための外部ツールの接続
|
||||
@@ -0,0 +1,197 @@
|
||||
# クイックスタート
|
||||
|
||||
## インストール
|
||||
|
||||
[ダウンロードページ](/ja/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(ほとんどの PC) | `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** を確認します — ビルトインタイプには公式エンドポイントが事前入力されています。サードパーティのリレーやプロキシを使用する場合のみ変更してください。
|
||||
|
||||
::: tip
|
||||
プロバイダーはいくつでも追加できます。各プロバイダーは独自の API キーとモデルのセットを個別に管理します。
|
||||
:::
|
||||
|
||||
### 3. モデルを取得する
|
||||
|
||||
**モデルを取得**をクリックして、プロバイダーの API から利用可能なモデルのリストを取得します。必要に応じてモデル ID を手動で追加することもできます。
|
||||
|
||||
### 4. デフォルトモデルを設定する
|
||||
|
||||
**設定 → デフォルトモデル**に移動し、新しい会話でデフォルトとして使用するプロバイダーとモデルを選択します。
|
||||
|
||||
---
|
||||
|
||||
## 最初の会話
|
||||
|
||||
1. サイドバーの**新規チャット**をクリックします(または <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd> を押します)。
|
||||
2. チャット上部のモデルセレクターからモデルを選択します。
|
||||
3. メッセージを入力して <kbd>Enter</kbd> を押します。
|
||||
4. BoosApi はリアルタイムでレスポンスをストリーミングします。思考ブロックをサポートするモデル(Claude、DeepSeek R1 など)は、回答の上の折りたたみ可能なセクションに推論プロセスを表示します。
|
||||
|
||||
---
|
||||
|
||||
## 主要概念
|
||||
|
||||
### 会話ブランチ
|
||||
|
||||
任意のメッセージを編集または再生成してブランチを作成します。元のバージョンと新しいバージョンは同じ会話ツリーに共存します — 各メッセージの矢印コントロールでナビゲートできます。
|
||||
|
||||
### メッセージバージョン
|
||||
|
||||
再生成のたびに新しいバージョンが作成されます。メッセージバブルの **◀ ▶** 矢印でバージョンを切り替えられます。
|
||||
|
||||
### コンテキスト添付
|
||||
|
||||
ファイル、検索結果、MCP ツール出力を会話コンテキストに直接添付してプロンプトを充実させます。
|
||||
|
||||
---
|
||||
|
||||
## ショートカット
|
||||
|
||||
以下はデフォルトのキーボードショートカットです。すべてのショートカットは**設定 → ショートカット**でカスタマイズできます。
|
||||
|
||||
| ショートカット | アクション |
|
||||
|--------------|-----------|
|
||||
| <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>M</kbd> | モデルセレクターを切り替え |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>↑</kbd> | 最後のメッセージを入力 |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>K</kbd> | コンテキストをクリア |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Backspace</kbd> | 会話メッセージをクリア |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | API ゲートウェイを切り替え |
|
||||
|
||||
::: info
|
||||
グローバルショートカット(ウィンドウの表示/非表示)は、BoosApi がバックグラウンドにある場合でもシステム全体で動作します。BoosApi は他のアプリケーションのショートカットとの競合を検出し、設定で警告を表示します。
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## デスクトップ設定
|
||||
|
||||
**設定**を開いてデスクトップ体験を設定します。
|
||||
|
||||
| 設定 | オプション |
|
||||
|------|---------|
|
||||
| **テーマ** | ダーク、ライト、またはシステム(自動) |
|
||||
| **言語** | 日本語、English、简体中文 |
|
||||
| **システムトレイ** | トレイに最小化、トレイに閉じる |
|
||||
| **自動起動** | コンピューター起動時に BoosApi を起動 |
|
||||
| **常に最前面** | ウィンドウを他のアプリの上に保持 |
|
||||
| **プロキシ** | ホストとポートを指定した HTTP または SOCKS5 プロキシ |
|
||||
|
||||
---
|
||||
|
||||
## データとバックアップ
|
||||
|
||||
### データディレクトリ
|
||||
|
||||
BoosApi は 2 つの場所にデータを保存します:
|
||||
|
||||
| パス | 内容 |
|
||||
|------|------|
|
||||
| `~/.boosapi/` | アプリケーション状態 — データベース、暗号化キー、ベクトル DB、SSL 証明書 |
|
||||
| `~/Documents/boosapi/` | ユーザーが見えるファイル — 画像、ドキュメント、バックアップ |
|
||||
|
||||
::: tip
|
||||
Windows では、パスは `%USERPROFILE%\.boosapi\` と `%USERPROFILE%\Documents\boosapi\` になります。
|
||||
:::
|
||||
|
||||
### 自動バックアップ
|
||||
|
||||
**設定 → バックアップ**に移動して自動バックアップを設定します:
|
||||
|
||||
- **有効** — 自動バックアップのオン/オフを切り替え。
|
||||
- **間隔** — バックアップの頻度(時間単位)。
|
||||
- **最大数** — 最古のバックアップが削除される前に保持するバックアップ数。
|
||||
- **ストレージターゲット** — ローカルディレクトリ(デフォルト:`~/Documents/boosapi/backups/`)または WebDAV サーバー。
|
||||
|
||||
### 手動バックアップと復元
|
||||
|
||||
バックアップ設定パネルからいつでも手動バックアップを作成できます。復元するには、履歴リストからバックアップを選択して**復元**をクリックします。
|
||||
|
||||
### 会話エクスポート
|
||||
|
||||
サイドバーの会話を右クリックしてエクスポートします:
|
||||
|
||||
- **PNG** — チャットのレンダリングスクリーンショット
|
||||
- **Markdown** — ヘッダー、コードブロック、LaTeX 付きフォーマット
|
||||
- **プレーンテキスト** — メッセージ区切りのシンプルなテキスト
|
||||
- **JSON** — 完全なメタデータを含む構造化データ
|
||||
|
||||
---
|
||||
|
||||
## 次のステップ
|
||||
|
||||
- [プロバイダーの設定](./providers) — AI プロバイダーの追加と管理
|
||||
- [MCP サーバー](./mcp) — AI 機能を拡張する外部ツールの接続
|
||||
- [API ゲートウェイ](./gateway) — プロバイダーをローカル API サーバーとして公開
|
||||
@@ -0,0 +1,205 @@
|
||||
# MCP サーバー
|
||||
|
||||
## MCP とは?
|
||||
|
||||
[Model Context Protocol(MCP)](https://modelcontextprotocol.io/)は、AI モデルが外部ツールやデータソースと対話できるようにするオープンスタンダードです。BoosApi は MCP クライアントとして機能します — MCP サーバーを追加すると、AI は会話中にそのサーバーが公開するツールを呼び出せます。
|
||||
|
||||
---
|
||||
|
||||
## トランスポートプロトコル
|
||||
|
||||
BoosApi は MCP サーバーとの通信に 3 つのトランスポートプロトコルをサポートしています:
|
||||
|
||||
| プロトコル | 接続 | ユースケース | 設定 |
|
||||
|-----------|------|------------|------|
|
||||
| **Stdio** | ローカルプロセス | `npx`、`uvx`、`python` などで起動するマシン上にインストールされたツール | `command` + `args` + オプション `env` |
|
||||
| **SSE** | リモートサーバー | リモートマシンまたはクラウドサービスでホストされる Server-Sent Events エンドポイント | `url` |
|
||||
| **StreamableHTTP** | リモートサーバー | HTTP ストリーミングエンドポイント(SSE の新しい代替) | `url` |
|
||||
|
||||
---
|
||||
|
||||
## MCP サーバーの追加
|
||||
|
||||
### フォームで作成
|
||||
|
||||
1. **設定 → MCP サーバー**に移動します。
|
||||
2. **MCP サーバーを追加**をクリックします。
|
||||
3. 名前を入力してトランスポートプロトコルを選択します。
|
||||
4. 選択したプロトコルのフィールドを入力します:
|
||||
- **Stdio** — 実行するコマンド、引数(JSON 配列)、環境変数(JSON オブジェクト)、タイムアウト。
|
||||
- **SSE** — エンドポイント URL、タイムアウト。
|
||||
- **StreamableHTTP** — エンドポイント URL、タイムアウト。
|
||||
5. **保存**をクリックします。
|
||||
|
||||
### JSON インポート
|
||||
|
||||
**JSON インポート**をクリックして設定オブジェクトを貼り付けます。BoosApi は標準の MCP JSON 形式を受け入れます:
|
||||
|
||||
#### Stdio サーバー
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### SSE サーバー
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-tools": {
|
||||
"type": "sse",
|
||||
"url": "https://example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### StreamableHTTP サーバー
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-http": {
|
||||
"type": "streamablehttp",
|
||||
"url": "https://example.com/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 複数のサーバーを一度に
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
},
|
||||
"filesystem": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
|
||||
},
|
||||
"remote": {
|
||||
"type": "sse",
|
||||
"url": "https://example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 設定例
|
||||
|
||||
### ウェブフェッチ — `mcp-server-fetch`
|
||||
|
||||
ウェブページを取得して AI のために読みやすいテキストに変換します。
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### ファイル操作 — `@modelcontextprotocol/server-filesystem`
|
||||
|
||||
AI にマシン上の特定のディレクトリへの読み書きアクセスを与えます。
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"filesystem": {
|
||||
"command": "npx",
|
||||
"args": [
|
||||
"-y",
|
||||
"@modelcontextprotocol/server-filesystem",
|
||||
"/Users/me/documents",
|
||||
"/Users/me/projects"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### リモート SSE サーバー
|
||||
|
||||
Server-Sent Events を介してリモートツールサーバーに接続します。
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"cloud-tools": {
|
||||
"type": "sse",
|
||||
"url": "https://mcp.example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 環境変数付き Stdio
|
||||
|
||||
環境変数を介して API キーや設定をサーバープロセスに渡します。
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"weather": {
|
||||
"command": "python",
|
||||
"args": ["-m", "weather_server"],
|
||||
"env": {
|
||||
"WEATHER_API_KEY": "your-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ビルトインツール
|
||||
|
||||
BoosApi には、外部 MCP サーバーを追加せずに使用できるビルトインツールが付属しています:
|
||||
|
||||
| ツール | 説明 |
|
||||
|--------|------|
|
||||
| **@boosapi/fetch** | ウェブページと HTTP リソースの取得 |
|
||||
| **@boosapi/search-file** | ローカルファイルシステムでのファイル検索 |
|
||||
|
||||
ビルトインツールは、カスタムサーバーと並んで MCP サーバー設定に一覧表示され、個別に有効化・無効化できます。
|
||||
|
||||
---
|
||||
|
||||
## ツール実行パネル
|
||||
|
||||
AI が会話中に MCP ツールを呼び出すと、BoosApi はチャット内にインラインで**ツール実行パネル**を表示します。パネルには以下が表示されます:
|
||||
|
||||
- **ツール名**とそれが属する**サーバー**。
|
||||
- ツールに送信された**入力引数**。
|
||||
- ツールによって返された**出力**。
|
||||
- 実行ステータス(実行中、成功、または失敗)。
|
||||
|
||||
会話内の任意のツール呼び出しをクリックして詳細を展開します。これにより、AI が何をしたかを確認し、予期しない結果をデバッグするのが簡単になります。
|
||||
|
||||
---
|
||||
|
||||
## ツールループ上限
|
||||
|
||||
Settings -> MCP で、MCP 対応応答が連続して実行できるツール呼び出し回数の上限を設定できます。未知のサーバーを試すときは低めに、複数ツールを意図的に連鎖させるワークフローでは高めに設定できます。
|
||||
|
||||
## 次のステップ
|
||||
|
||||
- [API ゲートウェイ](./gateway) — プロバイダーをローカル API サーバーとして公開
|
||||
- [クイックスタート](./getting-started) — クイックスタートガイドに戻る
|
||||
@@ -0,0 +1,207 @@
|
||||
# プロバイダーの設定
|
||||
|
||||
BoosApi は任意の数の AI プロバイダーに同時に接続できます。各プロバイダーには独自の API キー、モデルリスト、パラメーターのデフォルトがあります。
|
||||
|
||||
## サポートされているプロバイダー
|
||||
|
||||
BoosApi は以下のプロバイダーをファーストクラスでサポートしています。OpenAI 互換 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 動作を決定 |
|
||||
| **アイコン** | 視覚的識別のためのオプションアイコン |
|
||||
| **API キー** | プロバイダーのダッシュボードからのシークレットキー |
|
||||
| **Base URL** | API エンドポイント(ビルトインタイプには事前入力、リレー用に変更可能) |
|
||||
| **API パス** | リクエストパス — デフォルトは `/v1/chat/completions` |
|
||||
|
||||
::: tip
|
||||
サードパーティのリレーサービスの場合、タイプを **OpenAI**(または対応するアップストリームタイプ)に設定し、**Base URL** をリレーのエンドポイントに変更します。
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Web サイトのリンクからインポート
|
||||
|
||||
プロバイダーの Web サイト、リレーサービスのダッシュボード、プライベートモデル基盤、ローカルゲートウェイの管理画面は、**BoosApi で開く** リンクを提供できます。ユーザーがクリックするとブラウザーが BoosApi デスクトップアプリを起動し、BoosApi は **設定 → プロバイダー** に移動して確認ダイアログを表示します。インポートはユーザーが確認した後にのみ実行されます。
|
||||
|
||||
### ユーザーフロー
|
||||
|
||||
1. プロバイダーリンクのインポートに対応した BoosApi をインストールして開きます。
|
||||
2. ブラウザーでプロバイダーが提供する **BoosApi で開く** リンクをクリックします。
|
||||
3. BoosApi の確認ダイアログで、プロバイダー名、Base URL、タイプ、API キーのプレフィックスを確認します。
|
||||
4. BoosApi は同じ **Base URL + タイプ** の既存プロバイダーを再利用します。存在しない場合は新規作成し、API キーがまだ存在しない場合のみ追加します。
|
||||
|
||||
BoosApi は API キーの検証やモデル取得を自動では行いません。インポート後に **モデルを取得** をクリックするか、モデル ID を手動で追加してください。
|
||||
|
||||
### リンク形式
|
||||
|
||||
```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` | はい | BoosApi に保存する API キー。確認ダイアログにはプレフィックスのみ表示されます。 |
|
||||
| `type` | はい | プロバイダータイプ。指定可能な値:`openai`、`openai_responses`、`anthropic`、`gemini`、`custom`。 |
|
||||
|
||||
`baseurl` では BoosApi 既存の強制サフィックスも使用できます(例:`https://example.com!`)。リンク経由のインポートでは `api_path` は設定されず、選択したプロバイダータイプのデフォルトパスが使われます。
|
||||
|
||||
### Web サイト側の設定
|
||||
|
||||
すべての動的値は `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 セキュリティ
|
||||
URL 内の API キーは、ブラウザー履歴、ログ、拡張機能、解析スクリプトに記録される可能性があります。実際のキーを公開ページ、静的 HTML、第三者のリダイレクト URL に置かないでください。ユーザー専用のアカウントページで、確認後に生成する方法を推奨します。
|
||||
:::
|
||||
|
||||
::: tip テスト
|
||||
`boosapi://` はインストール済みデスクトップアプリがシステムに登録するカスタムプロトコルです。Web サイトや Vite 開発サーバーを実行するだけでは登録されません。クリックしても BoosApi が開かない場合は、まず最新の BoosApi デスクトップアプリをインストールまたは再ビルドしてください。
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## CC Switch からインポート
|
||||
|
||||
Settings -> Providers で CC Switch のプロバイダー設定をスキャンできます。候補を確認し、インポート可能な行を選ぶと、プロバイダー、Base URL、API Key、モデルリストを BoosApi に取り込めます。OAuth のみ、または再利用できるキーがない項目は理由付きでスキップされます。
|
||||
|
||||
## 高度なモデルリクエストボディ
|
||||
|
||||
各モデルには extra_body を設定できます。これは OpenAI 互換 Chat Completions のリクエストへ平坦化して追加される JSON オブジェクトです。enable_thinking などのベンダー固有オプションに使えます。BoosApi は JSON を検証し、model、messages、stream、tools、基本サンプリング項目の上書きを防ぎます。
|
||||
|
||||
## マルチキーローテーション
|
||||
|
||||
BoosApi はロード分散とレート制限回避のために、プロバイダーごとに複数の API キーをサポートします。
|
||||
|
||||
### キーの追加
|
||||
|
||||
プロバイダー詳細パネルで**キーを追加**をクリックして、追加の API キーを追加します。各キーには、プレフィックス、作成日、最終使用タイムスタンプが表示されます。
|
||||
|
||||
### ローテーションの仕組み
|
||||
|
||||
BoosApi はラウンドロビンインデックスを使用して有効なキーを自動的にローテーションします。リクエストが完了すると、ローテーションインデックスが次のキーに進みます。キーが無効化されたり検証に失敗した場合はスキップされます。
|
||||
|
||||
### キーの検証
|
||||
|
||||
キーの隣の**検証**ボタンをクリックして、プロバイダーの API に対して検証します。検証結果とエラーメッセージが記録されます。
|
||||
|
||||
---
|
||||
|
||||
## モデル管理
|
||||
|
||||
### モデルの取得
|
||||
|
||||
プロバイダー詳細パネルで**モデルを取得**をクリックして、プロバイダーの API から利用可能なモデルの完全なリストを取得します。発見されたモデルは自動的にローカルリストに追加されます。
|
||||
|
||||
### モデルの手動追加
|
||||
|
||||
API によって返されないモデル(例:ファインチューニングされたモデルや新しいリリース)は、モデル ID を直接入力して追加できます。
|
||||
|
||||
### モデルごとのパラメーター
|
||||
|
||||
各モデルに独自のデフォルトパラメーターオーバーライドを設定できます:
|
||||
|
||||
| パラメーター | 説明 |
|
||||
|------------|------|
|
||||
| **温度** | ランダム性を制御(0 = 決定論的、高いほどよりクリエイティブ) |
|
||||
| **最大トークン数** | レスポンスの最大トークン数 |
|
||||
| **Top P** | 核サンプリングのしきい値 |
|
||||
| **頻度ペナルティ** | トークンシーケンスの繰り返しを減少 |
|
||||
| **存在ペナルティ** | モデルが新しいトピックを導入するよう促す |
|
||||
|
||||
### モデル能力
|
||||
|
||||
BoosApi はモデルごとに能力(**ビジョン**、**関数呼び出し**、**推論**など)を追跡し、タグとして表示します。これらの能力は会話中に利用できる機能に影響します。
|
||||
|
||||
---
|
||||
|
||||
## カスタム & ローカルエンドポイント
|
||||
|
||||
BoosApi は OpenAI チャットコンプリーション API を実装するエンドポイントであれば何でも動作します。
|
||||
|
||||
### Ollama(ローカルモデル)
|
||||
|
||||
1. [Ollama](https://ollama.com/) をインストールして起動します。
|
||||
2. BoosApi でタイプ **OpenAI** の新しいプロバイダーを作成します。
|
||||
3. **Base URL** を `http://localhost:11434` に設定します。
|
||||
4. **モデルを取得**をクリックして、ローカルにプルされたモデルを発見します。
|
||||
|
||||
### vLLM / TGI
|
||||
|
||||
推論サーバーのアドレス(例:`http://localhost:8000`)に **Base URL** を設定し、通常通りモデルを取得または追加します。
|
||||
|
||||
### API リレーサービス
|
||||
|
||||
リレーまたはアグリゲーターサービス(例:OpenRouter、one-api)の場合、タイプを **OpenAI** に設定し、リレーの Base URL を入力し、リレーの API キーを提供します。
|
||||
|
||||
---
|
||||
|
||||
## デフォルトモデル設定
|
||||
|
||||
### デフォルトアシスタントモデル
|
||||
|
||||
**設定 → デフォルトモデル**に移動して、新しい会話でデフォルトとして使用するプロバイダーとモデルを選択します。モデルセレクターから会話ごとに常にモデルをオーバーライドできます。
|
||||
|
||||
### トピック命名モデル
|
||||
|
||||
BoosApi は各会話のタイトルを自動的に生成できます。デフォルトモデル設定で、タイトル生成のコストとレイテンシーを節約するために、トピック命名専用の軽量モデルを割り当てられます。タイトル生成用のカスタムプロンプトとコンテキストウィンドウサイズを設定できます。
|
||||
|
||||
---
|
||||
|
||||
## 次のステップ
|
||||
|
||||
- [MCP サーバー](./mcp) — AI 機能を拡張する外部ツールの接続
|
||||
- [API ゲートウェイ](./gateway) — プロバイダーをローカル API サーバーとして公開
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — オープンソース AI デスクトップクライアント & ゲートウェイ"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi は無料のオープンソース AI デスクトップクライアントです。マルチモデルチャット、Agent、MCP、ChatGPT/Cherry Studio/Kelivo インポート、ローカル RAG、S3/WebDAV バックアップ、内蔵 AI ゲートウェイをサポートします。"
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "AI デスクトップワークスペース"
|
||||
tagline: "マルチモデルチャット、Agent、MCP ツール、API ゲートウェイ、インポート、ナレッジベース、バックアップを 1 つのローカルファーストクライアントに統合"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "クイックスタート"
|
||||
link: /ja/guide/getting-started
|
||||
- theme: alt
|
||||
text: "ダウンロード"
|
||||
link: /ja/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "マルチモデルチャット"
|
||||
details: "OpenAI、Claude、Gemini、DeepSeek、Qwen と互換 API。キーローテーション、分岐、圧縮、複数モデル回答に対応。"
|
||||
- icon: api
|
||||
title: "プロバイダー設定"
|
||||
details: "boosapi:// リンク、CC Switch インポート、カスタムヘッダー、プロキシ、OpenAI Responses、モデル別 extra_body。"
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "ファイル編集、コマンド実行、コード分析を権限制御、作業ディレクトリサンドボックス、承認 UI、コスト追跡付きで実行。"
|
||||
- icon: edit
|
||||
title: "リッチレンダリング"
|
||||
details: "Markdown、LaTeX、Mermaid、D2、Monaco、HTML フラグメント、Artifact プレビュー。"
|
||||
- icon: search
|
||||
title: "検索と RAG"
|
||||
details: "引用付き Web 検索、クエリ生成、ローカル sqlite-vec ナレッジベース、リランク設定、取得フィードバック。"
|
||||
- icon: cloud-server
|
||||
title: "API ゲートウェイ"
|
||||
details: "OpenAI 互換、OpenAI Responses、Claude、Gemini のローカル API を Claude Code、Codex、OpenCode などに提供。"
|
||||
- icon: book
|
||||
title: "データインポート"
|
||||
details: "ChatGPT 公式エクスポート、Cherry Studio、Kelivo バックアップを重複処理と任意のプロバイダー移行付きで取り込み。"
|
||||
- icon: lock
|
||||
title: "バックアップと安全性"
|
||||
details: "AES-256 ローカル暗号化、二重ルートデータ配置、ローカル/WebDAV/S3 バックアップと復元。"
|
||||
- icon: desktop
|
||||
title: "デスクトップ体験"
|
||||
details: "11 言語 UI、トレイ、常に手前、グローバルショートカット、自動起動、プロキシ、自動更新。"
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# 기능 목록
|
||||
|
||||
BoosApi은 로컬 우선 AI 데스크톱 워크스페이스입니다. 이 페이지는 v0.0.85 기준으로 provider import, third-party data import, MCP, HTML rendering, backup, gateway 기능을 반영합니다.
|
||||
|
||||
## 채팅 및 모델
|
||||
|
||||
- **멀티 제공업체 채팅** — OpenAI, Claude, Gemini, DeepSeek, Qwen 및 OpenAI 호환 엔드포인트를 Base URL, API Path, headers, proxy rules와 함께 연결합니다.
|
||||
- **제공업체 온보딩** — boosapi:// provider links 및 CC Switch import로 사용자 확인 후 provider profiles를 BoosApi으로 가져옵니다.
|
||||
- **모델 관리** — remote model sync, groups, latency test, capabilities, context length, sampling defaults, reasoning profiles, per-model extra_body를 설정합니다.
|
||||
- **대화 워크플로** — streaming replies, thinking blocks, message versions, branches, title-generation status, compression, multi-model comparison을 지원합니다.
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Agent mode** — 모델이 controlled workflow에서 files edit, commands run, code analysis를 수행합니다.
|
||||
- **권한 제어** — standard review, auto-accept edits, full-access mode를 선택하고 working-directory sandbox checks를 유지합니다.
|
||||
- **승인 및 비용 UI** — tool calls를 실시간 검토하고 allow decisions를 기억하며 session token/cost를 추적합니다.
|
||||
|
||||
## 콘텐츠 렌더링
|
||||
|
||||
- **Markdown 및 수식** — Markdown, code highlighting, tables, task lists, LaTeX를 streaming conversation에서 렌더링합니다.
|
||||
- **코드, 다이어그램, Artifact** — Monaco, Mermaid, D2, Artifact panel로 code, Markdown notes, reports, previews를 다룹니다.
|
||||
- **HTML fragment rendering** — generated HTML fragments를 안전하게 preview하고 최근 streaming stability fixes를 반영합니다.
|
||||
|
||||
## 검색 및 지식
|
||||
|
||||
- **웹 검색** — Tavily, Zhipu WebSearch, Bocha 등과 cited sources, generated queries를 지원합니다.
|
||||
- **로컬 지식베이스** — sqlite-vec로 private documents를 index하고 retrieval/rerank options 및 feedback을 확인합니다.
|
||||
- **컨텍스트 관리** — files, search results, knowledge snippets, memories, tool output을 conversation context에 첨부합니다.
|
||||
|
||||
## 도구 및 확장
|
||||
|
||||
- **MCP protocol** — stdio, SSE, StreamableHTTP transport의 Model Context Protocol servers를 실행합니다.
|
||||
- **Built-in tools** — @boosapi/fetch 및 file search 같은 built-in MCP tools를 별도 server 없이 사용합니다.
|
||||
- **Tool loop limit** — MCP tool-call loop count를 설정하고 interrupted/stuck tool sessions에서 더 안정적으로 복구합니다.
|
||||
|
||||
## API 게이트웨이
|
||||
|
||||
- **Local gateway** — OpenAI Chat Completions, OpenAI Responses, Claude-native, Gemini-native endpoints를 desktop app에서 노출합니다.
|
||||
- **Access and observability** — gateway keys, SSL/TLS certificates, request logs, usage analytics를 로컬에서 관리합니다.
|
||||
- **Client templates** — Claude Code, Codex CLI, OpenCode, Gemini CLI, custom clients templates를 제공합니다.
|
||||
|
||||
## 데이터 가져오기 및 백업
|
||||
|
||||
- **Third-party imports** — ChatGPT official exports, Cherry Studio backups, Kelivo backups를 preview counts, warnings, duplicate handling과 함께 가져옵니다.
|
||||
- **Provider and file migration** — Cherry Studio/Kelivo import에서 linked providers, API keys, file attachments를 선택적으로 migration합니다.
|
||||
- **Backups** — local folders, WebDAV, S3-compatible storage로 backup/restore를 수행합니다.
|
||||
|
||||
## 데스크톱 및 보안
|
||||
|
||||
- **Local encryption** — app state는 ~/.boosapi/, user files는 ~/Documents/boosapi/에 저장되며 API keys는 AES-256 local master key로 보호됩니다.
|
||||
- **Desktop integration** — tray, always-on-top, global shortcuts, auto-start, proxy settings, automatic update checks를 지원합니다.
|
||||
- **11 interface languages** — Simplified/Traditional Chinese, English, Japanese, Korean, French, German, Spanish, Russian, Hindi, Arabic을 전환할 수 있습니다.
|
||||
@@ -0,0 +1,171 @@
|
||||
# API 게이트웨이
|
||||
|
||||
## API 게이트웨이란?
|
||||
|
||||
BoosApi에는 구성된 제공업체를 **OpenAI 호환**, **Claude 네이티브**, **Gemini 네이티브** 엔드포인트로 노출하는 내장 로컬 API 서버가 포함되어 있습니다. 이러한 프로토콜 중 하나를 사용하는 모든 도구나 클라이언트는 BoosApi을 백엔드로 사용할 수 있습니다 — 별도의 API 키나 릴레이 서비스가 필요 없습니다.
|
||||
|
||||
사용 사례:
|
||||
|
||||
- **Claude Code CLI**, **OpenAI Codex CLI**, **Gemini CLI**, **OpenCode**를 BoosApi을 통해 실행.
|
||||
- IDE 확장 프로그램을 단일 로컬 관리 엔드포인트에 연결.
|
||||
- 키당 속도 제한으로 하나의 제공업체 키 세트를 여러 도구에서 공유.
|
||||
|
||||
---
|
||||
|
||||
## 시작하기
|
||||
|
||||
1. **설정 → API 게이트웨이**를 엽니다(또는 <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd>를 누릅니다).
|
||||
2. **시작**을 클릭하여 게이트웨이 서버를 시작합니다.
|
||||
3. 기본적으로 서버는 `127.0.0.1:8080`(HTTP)에서 수신합니다. **설정** 탭에서 수신 주소와 포트를 변경할 수 있습니다.
|
||||
|
||||
::: tip
|
||||
게이트웨이 설정에서 **자동 시작**을 활성화하면 BoosApi이 시작될 때 서버가 자동으로 시작됩니다.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## API 키 관리
|
||||
|
||||
게이트웨이는 제공업체 키와는 별도로 자체 API 키로 수신 요청을 인증합니다.
|
||||
|
||||
1. **API 키** 탭으로 이동합니다.
|
||||
2. **새 키 생성**을 클릭합니다.
|
||||
3. 각 키를 식별하기 위해 선택적으로 **설명**을 추가합니다(예: *Claude Code*, *VS Code*).
|
||||
4. 키를 복사합니다 — 한 번만 표시됩니다.
|
||||
|
||||
각 키에는 **접두사**, **생성 날짜**, **마지막 사용** 타임스탬프가 표시됩니다. 키는 언제든지 **활성화/비활성화** 또는 **삭제**할 수 있습니다.
|
||||
|
||||
::: warning
|
||||
게이트웨이 키를 다른 API 키처럼 취급하세요. 키를 가진 사람은 게이트웨이가 실행 중일 때 로컬 게이트웨이에 요청을 보낼 수 있습니다.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## SSL/TLS
|
||||
|
||||
게이트웨이는 HTTP 외에 HTTPS를 제공할 수 있습니다.
|
||||
|
||||
### 자동 생성 인증서
|
||||
|
||||
1. **설정** 탭을 엽니다.
|
||||
2. **SSL/TLS**를 활성화하고 **생성** 모드를 선택합니다.
|
||||
3. BoosApi이 다음에 자가 서명 인증서와 개인 키를 만듭니다:
|
||||
|
||||
```
|
||||
~/.boosapi/ssl/cert.pem
|
||||
~/.boosapi/ssl/key.pem
|
||||
```
|
||||
|
||||
4. **HTTPS 포트**를 설정합니다(기본값 `8443`).
|
||||
5. 선택적으로 **SSL 강제**를 활성화하여 모든 HTTP 요청을 HTTPS로 리디렉션합니다.
|
||||
|
||||
### 사용자 지정 인증서
|
||||
|
||||
**업로드** 모드를 선택하고 자체 인증서와 개인 키 파일의 경로를 제공합니다.
|
||||
|
||||
::: info
|
||||
개인 키는 Unix 시스템에서 파일 모드 `0600`으로 저장되어 다른 사용자가 읽을 수 없도록 합니다.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## 사용량 분석
|
||||
|
||||
**메트릭** 탭에는 게이트웨이 활동을 모니터링하는 대시보드가 제공됩니다:
|
||||
|
||||
| 보기 | 설명 |
|
||||
|------|------|
|
||||
| **API 키별** | 각 게이트웨이 키별 요청 볼륨 및 토큰 사용량 |
|
||||
| **제공업체별** | 각 업스트림 AI 제공업체로 라우팅된 요청 및 토큰 |
|
||||
| **일별** | 시간 경과에 따른 일별 사용 트렌드 |
|
||||
|
||||
이러한 대시보드를 사용하여 비용을 추적하고 이상을 발견하고 제공업체 간에 부하를 분산합니다.
|
||||
|
||||
---
|
||||
|
||||
## 요청 로그
|
||||
|
||||
**개요** 탭에는 다음 세부 정보가 포함된 최근 요청 로그가 표시됩니다:
|
||||
|
||||
- **타임스탬프**, **HTTP 메서드**, **경로**
|
||||
- **상태 코드** 및 **응답 시간**
|
||||
- 사용된 **제공업체** 및 **모델**
|
||||
- **토큰 수** (프롬프트 + 완성)
|
||||
|
||||
임의의 로그 항목을 클릭하여 전체 요청과 응답을 검사합니다. **로그 지우기** 버튼으로 로그 기록을 재설정합니다.
|
||||
|
||||
---
|
||||
|
||||
## 구성 템플릿
|
||||
|
||||
BoosApi에는 인기 있는 CLI 도구를 위한 기성 구성 스니펫이 제공됩니다. **템플릿** 탭으로 이동하여 도구를 선택하고 **복사**를 클릭하여 필요한 구성을 가져옵니다.
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
### OpenCode
|
||||
|
||||
OpenCode 구성에 추가합니다:
|
||||
|
||||
```json
|
||||
{
|
||||
"provider": "openai",
|
||||
"baseURL": "http://127.0.0.1:8080/v1",
|
||||
"apiKey": "boosapi-xxxx"
|
||||
}
|
||||
```
|
||||
|
||||
### Gemini CLI
|
||||
|
||||
```bash
|
||||
export GEMINI_API_BASE=http://127.0.0.1:8080
|
||||
export GEMINI_API_KEY=boosapi-xxxx
|
||||
gemini
|
||||
```
|
||||
|
||||
### 사용자 지정 클라이언트
|
||||
|
||||
OpenAI 호환 Base URL을 허용하는 모든 도구는 게이트웨이에 연결할 수 있습니다:
|
||||
|
||||
```
|
||||
Base URL: http://127.0.0.1:8080/v1
|
||||
API Key: boosapi-xxxx
|
||||
```
|
||||
|
||||
`boosapi-xxxx`를 **API 키** 탭에서 생성한 키로 교체합니다. SSL이 활성화된 경우 `https://`와 포트 `8443`(또는 구성된 HTTPS 포트)을 사용합니다.
|
||||
|
||||
---
|
||||
|
||||
## 외부 도구 연결
|
||||
|
||||
다음은 OpenAI 호환 클라이언트를 연결하기 위한 일반적인 패턴입니다:
|
||||
|
||||
1. BoosApi에서 **게이트웨이 API 키를 생성**합니다.
|
||||
2. 도구의 구성에서 **Base URL**을 `http://127.0.0.1:8080/v1`(또는 HTTPS 등가)로 설정합니다.
|
||||
3. **API 키**를 생성한 게이트웨이 키로 설정합니다.
|
||||
4. BoosApi 제공업체 중 하나에 구성한 **모델을 선택**합니다.
|
||||
5. 도구를 사용하기 시작합니다 — 모든 요청은 BoosApi을 통해 업스트림 제공업체로 라우팅됩니다.
|
||||
|
||||
::: tip
|
||||
도구가 특정 API 형식(예: Claude 또는 Gemini 네이티브)을 필요로 하는 경우 BoosApi은 요청 형식을 자동으로 감지하여 올바른 제공업체로 라우팅합니다. 형식별로 별도의 엔드포인트를 구성할 필요가 없습니다.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## 다음 단계
|
||||
|
||||
- [빠른 시작](./getting-started) — 빠른 시작 가이드로 돌아가기
|
||||
- [제공업체 설정](./providers) — 게이트웨이가 라우팅하는 업스트림 제공업체 추가
|
||||
- [MCP 서버](./mcp) — AI 도구 호출을 위한 외부 도구 연결
|
||||
@@ -0,0 +1,197 @@
|
||||
# 빠른 시작
|
||||
|
||||
## 설치
|
||||
|
||||
[다운로드 페이지](/ko/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 (대부분의 PC) | `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**을 확인합니다 — 내장 유형에는 공식 엔드포인트가 미리 채워져 있습니다. 서드파티 릴레이나 프록시를 사용하는 경우에만 변경하세요.
|
||||
|
||||
::: tip
|
||||
원하는 만큼 제공업체를 추가할 수 있습니다. 각 제공업체는 자체 API 키와 모델 세트를 독립적으로 관리합니다.
|
||||
:::
|
||||
|
||||
### 3. 모델 가져오기
|
||||
|
||||
**모델 가져오기**를 클릭하여 제공업체의 API에서 사용 가능한 모델 목록을 가져옵니다. 필요한 경우 모델 ID를 수동으로 추가할 수도 있습니다.
|
||||
|
||||
### 4. 기본 모델 설정
|
||||
|
||||
**설정 → 기본 모델**로 이동하여 새 대화에서 기본으로 사용할 제공업체와 모델을 선택합니다.
|
||||
|
||||
---
|
||||
|
||||
## 첫 번째 대화
|
||||
|
||||
1. 사이드바의 **새 채팅**을 클릭합니다(또는 <kbd>Cmd/Ctrl</kbd>+<kbd>N</kbd>을 누릅니다).
|
||||
2. 채팅 상단의 모델 선택기에서 모델을 선택합니다.
|
||||
3. 메시지를 입력하고 <kbd>Enter</kbd>를 누릅니다.
|
||||
4. BoosApi은 실시간으로 응답을 스트리밍합니다. 사고 블록을 지원하는 모델(Claude, DeepSeek R1 등)은 답변 위의 접을 수 있는 섹션에 추론 과정을 표시합니다.
|
||||
|
||||
---
|
||||
|
||||
## 핵심 개념
|
||||
|
||||
### 대화 브랜치
|
||||
|
||||
임의의 메시지를 편집하거나 재생성하여 브랜치를 만듭니다. 원래 버전과 새 버전은 같은 대화 트리에 공존합니다 — 각 메시지의 화살표 컨트롤로 탐색할 수 있습니다.
|
||||
|
||||
### 메시지 버전
|
||||
|
||||
재생성할 때마다 새 버전이 만들어집니다. 메시지 버블의 **◀ ▶** 화살표로 버전을 전환합니다.
|
||||
|
||||
### 컨텍스트 첨부
|
||||
|
||||
파일, 검색 결과, MCP 도구 출력을 대화 컨텍스트에 직접 첨부하여 프롬프트를 풍부하게 합니다.
|
||||
|
||||
---
|
||||
|
||||
## 단축키
|
||||
|
||||
다음은 기본 키보드 단축키입니다. 모든 단축키는 **설정 → 단축키**에서 사용자 지정할 수 있습니다.
|
||||
|
||||
| 단축키 | 작업 |
|
||||
|--------|------|
|
||||
| <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>M</kbd> | 모델 선택기 전환 |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>↑</kbd> | 마지막 메시지 입력 |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>K</kbd> | 컨텍스트 지우기 |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Backspace</kbd> | 대화 메시지 지우기 |
|
||||
| <kbd>Cmd/Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | API 게이트웨이 전환 |
|
||||
|
||||
::: info
|
||||
전역 단축키(창 표시/숨기기)는 BoosApi이 백그라운드에 있을 때도 시스템 전체에서 작동합니다. BoosApi은 다른 애플리케이션의 단축키와의 충돌을 감지하고 설정에서 경고합니다.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## 데스크톱 설정
|
||||
|
||||
**설정**을 열어 데스크톱 경험을 구성합니다.
|
||||
|
||||
| 설정 | 옵션 |
|
||||
|------|------|
|
||||
| **테마** | 다크, 라이트 또는 시스템(자동) |
|
||||
| **언어** | 한국어, English, 简体中文 |
|
||||
| **시스템 트레이** | 트레이로 최소화, 트레이로 닫기 |
|
||||
| **자동 시작** | 컴퓨터 시작 시 BoosApi 시작 |
|
||||
| **항상 위에 표시** | 다른 애플리케이션 위에 창 유지 |
|
||||
| **프록시** | 호스트와 포트를 지정한 HTTP 또는 SOCKS5 프록시 |
|
||||
|
||||
---
|
||||
|
||||
## 데이터 및 백업
|
||||
|
||||
### 데이터 디렉토리
|
||||
|
||||
BoosApi은 두 위치에 데이터를 저장합니다:
|
||||
|
||||
| 경로 | 내용 |
|
||||
|------|------|
|
||||
| `~/.boosapi/` | 애플리케이션 상태 — 데이터베이스, 암호화 키, 벡터 DB, SSL 인증서 |
|
||||
| `~/Documents/boosapi/` | 사용자 파일 — 이미지, 문서, 백업 |
|
||||
|
||||
::: tip
|
||||
Windows에서 경로는 `%USERPROFILE%\.boosapi\`와 `%USERPROFILE%\Documents\boosapi\`입니다.
|
||||
:::
|
||||
|
||||
### 자동 백업
|
||||
|
||||
**설정 → 백업**으로 이동하여 자동 백업을 구성합니다:
|
||||
|
||||
- **활성화** — 자동 백업 켜기/끄기.
|
||||
- **간격** — 백업 빈도(시간 단위).
|
||||
- **최대 수** — 가장 오래된 것이 삭제되기 전에 유지할 백업 수.
|
||||
- **스토리지 대상** — 로컬 디렉토리(기본값: `~/Documents/boosapi/backups/`) 또는 WebDAV 서버.
|
||||
|
||||
### 수동 백업 및 복원
|
||||
|
||||
백업 설정 패널에서 언제든지 수동 백업을 만들 수 있습니다. 복원하려면 기록 목록에서 백업을 선택하고 **복원**을 클릭합니다.
|
||||
|
||||
### 대화 내보내기
|
||||
|
||||
사이드바에서 대화를 오른쪽 클릭하여 내보냅니다:
|
||||
|
||||
- **PNG** — 채팅의 렌더링 스크린샷
|
||||
- **Markdown** — 헤더, 코드 블록, LaTeX가 포함된 형식
|
||||
- **일반 텍스트** — 메시지 구분 기호가 있는 간단한 텍스트
|
||||
- **JSON** — 전체 메타데이터를 포함한 구조화된 데이터
|
||||
|
||||
---
|
||||
|
||||
## 다음 단계
|
||||
|
||||
- [제공업체 설정](./providers) — AI 제공업체 추가 및 관리
|
||||
- [MCP 서버](./mcp) — AI 기능을 확장하는 외부 도구 연결
|
||||
- [API 게이트웨이](./gateway) — 제공업체를 로컬 API 서버로 노출
|
||||
@@ -0,0 +1,205 @@
|
||||
# MCP 서버
|
||||
|
||||
## MCP란?
|
||||
|
||||
[Model Context Protocol(MCP)](https://modelcontextprotocol.io/)은 AI 모델이 외부 도구 및 데이터 소스와 상호 작용할 수 있게 하는 오픈 표준입니다. BoosApi은 MCP 클라이언트 역할을 합니다 — MCP 서버를 추가하면 AI가 대화 중에 해당 서버가 노출하는 도구를 호출할 수 있습니다.
|
||||
|
||||
---
|
||||
|
||||
## 전송 프로토콜
|
||||
|
||||
BoosApi은 MCP 서버와의 통신을 위해 3가지 전송 프로토콜을 지원합니다:
|
||||
|
||||
| 프로토콜 | 연결 | 사용 사례 | 구성 |
|
||||
|---------|------|---------|------|
|
||||
| **Stdio** | 로컬 프로세스 | `npx`, `uvx`, `python` 등으로 시작하는 머신에 설치된 도구 | `command` + `args` + 선택적 `env` |
|
||||
| **SSE** | 원격 서버 | 원격 머신이나 클라우드 서비스에서 호스팅되는 Server-Sent Events 엔드포인트 | `url` |
|
||||
| **StreamableHTTP** | 원격 서버 | HTTP 스트리밍 엔드포인트(SSE의 새로운 대안) | `url` |
|
||||
|
||||
---
|
||||
|
||||
## MCP 서버 추가
|
||||
|
||||
### 폼으로 만들기
|
||||
|
||||
1. **설정 → MCP 서버**로 이동합니다.
|
||||
2. **MCP 서버 추가**를 클릭합니다.
|
||||
3. 이름을 입력하고 전송 프로토콜을 선택합니다.
|
||||
4. 선택한 프로토콜의 필드를 입력합니다:
|
||||
- **Stdio** — 실행할 명령, 인수(JSON 배열), 환경 변수(JSON 객체), 타임아웃.
|
||||
- **SSE** — 엔드포인트 URL, 타임아웃.
|
||||
- **StreamableHTTP** — 엔드포인트 URL, 타임아웃.
|
||||
5. **저장**을 클릭합니다.
|
||||
|
||||
### JSON 가져오기
|
||||
|
||||
**JSON 가져오기**를 클릭하고 구성 객체를 붙여넣습니다. BoosApi은 표준 MCP JSON 형식을 허용합니다:
|
||||
|
||||
#### Stdio 서버
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### SSE 서버
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-tools": {
|
||||
"type": "sse",
|
||||
"url": "https://example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### StreamableHTTP 서버
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-http": {
|
||||
"type": "streamablehttp",
|
||||
"url": "https://example.com/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 여러 서버 한 번에
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
},
|
||||
"filesystem": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
|
||||
},
|
||||
"remote": {
|
||||
"type": "sse",
|
||||
"url": "https://example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 구성 예시
|
||||
|
||||
### 웹 가져오기 — `mcp-server-fetch`
|
||||
|
||||
웹 페이지를 가져와 AI를 위한 읽기 쉬운 텍스트로 변환합니다.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 파일 작업 — `@modelcontextprotocol/server-filesystem`
|
||||
|
||||
AI에게 머신의 특정 디렉토리에 대한 읽기/쓰기 액세스를 제공합니다.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"filesystem": {
|
||||
"command": "npx",
|
||||
"args": [
|
||||
"-y",
|
||||
"@modelcontextprotocol/server-filesystem",
|
||||
"/Users/me/documents",
|
||||
"/Users/me/projects"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 원격 SSE 서버
|
||||
|
||||
Server-Sent Events를 통해 원격 도구 서버에 연결합니다.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"cloud-tools": {
|
||||
"type": "sse",
|
||||
"url": "https://mcp.example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 환경 변수가 있는 Stdio
|
||||
|
||||
환경 변수를 통해 API 키나 구성을 서버 프로세스에 전달합니다.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"weather": {
|
||||
"command": "python",
|
||||
"args": ["-m", "weather_server"],
|
||||
"env": {
|
||||
"WEATHER_API_KEY": "your-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 내장 도구
|
||||
|
||||
BoosApi에는 외부 MCP 서버를 추가하지 않고도 사용 가능한 내장 도구가 포함되어 있습니다:
|
||||
|
||||
| 도구 | 설명 |
|
||||
|------|------|
|
||||
| **@boosapi/fetch** | 웹 페이지 및 HTTP 리소스 가져오기 |
|
||||
| **@boosapi/search-file** | 로컬 파일 시스템에서 파일 검색 |
|
||||
|
||||
내장 도구는 사용자 지정 서버와 함께 MCP 서버 설정에 나열되며 개별적으로 활성화 또는 비활성화할 수 있습니다.
|
||||
|
||||
---
|
||||
|
||||
## 도구 실행 패널
|
||||
|
||||
AI가 대화 중에 MCP 도구를 호출하면 BoosApi은 채팅에 인라인으로 **도구 실행 패널**을 표시합니다. 패널에는 다음이 표시됩니다:
|
||||
|
||||
- **도구 이름**과 해당 **서버**.
|
||||
- 도구에 전송된 **입력 인수**.
|
||||
- 도구에 의해 반환된 **출력**.
|
||||
- 실행 상태(실행 중, 성공 또는 실패).
|
||||
|
||||
대화의 임의의 도구 호출을 클릭하여 세부 정보를 확장합니다. 이를 통해 AI가 무엇을 했는지 확인하고 예상치 못한 결과를 디버그하는 것이 쉬워집니다.
|
||||
|
||||
---
|
||||
|
||||
## 도구 루프 제한
|
||||
|
||||
Settings -> MCP에서 MCP-enabled response의 consecutive tool-call iterations 최대값을 설정할 수 있습니다. unknown servers를 테스트할 때는 낮추고, 여러 도구를 의도적으로 chaining하는 workflows에서는 높일 수 있습니다.
|
||||
|
||||
## 다음 단계
|
||||
|
||||
- [API 게이트웨이](./gateway) — 제공업체를 로컬 API 서버로 노출
|
||||
- [빠른 시작](./getting-started) — 빠른 시작 가이드로 돌아가기
|
||||
@@ -0,0 +1,207 @@
|
||||
# 제공업체 설정
|
||||
|
||||
BoosApi은 동시에 여러 AI 제공업체에 연결할 수 있습니다. 각 제공업체는 자체 API 키, 모델 목록, 매개변수 기본값을 갖습니다.
|
||||
|
||||
## 지원되는 제공업체
|
||||
|
||||
BoosApi은 다음 제공업체를 최우선으로 지원합니다. OpenAI 호환 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 동작 결정 |
|
||||
| **아이콘** | 시각적 식별을 위한 선택적 아이콘 |
|
||||
| **API 키** | 제공업체 대시보드의 시크릿 키 |
|
||||
| **Base URL** | API 엔드포인트(내장 유형에는 미리 채워짐, 릴레이용으로 변경 가능) |
|
||||
| **API 경로** | 요청 경로 — 기본값은 `/v1/chat/completions` |
|
||||
|
||||
::: tip
|
||||
서드파티 릴레이 서비스의 경우 유형을 **OpenAI**(또는 해당 업스트림 유형)로 설정하고 **Base URL**을 릴레이의 엔드포인트로 변경합니다.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## 웹사이트 링크에서 가져오기
|
||||
|
||||
제공업체 웹사이트, 릴레이 서비스 대시보드, 프라이빗 모델 플랫폼, 로컬 게이트웨이 관리 페이지는 **BoosApi에서 열기** 링크를 제공할 수 있습니다. 사용자가 클릭하면 브라우저가 BoosApi 데스크톱 앱을 열고, BoosApi은 **설정 → 제공업체**로 이동해 확인 대화상자를 표시합니다. 가져오기는 사용자가 확인한 뒤에만 실행됩니다.
|
||||
|
||||
### 사용자 흐름
|
||||
|
||||
1. 제공업체 링크 가져오기를 지원하는 BoosApi 버전을 설치하고 엽니다.
|
||||
2. 브라우저에서 제공업체가 제공한 **BoosApi에서 열기** 링크를 클릭합니다.
|
||||
3. BoosApi 확인 대화상자에서 제공업체 이름, Base URL, 제공업체 유형, API 키 접두사를 확인합니다.
|
||||
4. BoosApi은 같은 **Base URL + 유형**의 기존 제공업체를 재사용합니다. 없으면 새 제공업체를 만들고, API 키가 아직 없을 때만 추가합니다.
|
||||
|
||||
BoosApi은 API 키를 자동으로 검증하거나 모델 목록을 자동으로 가져오지 않습니다. 가져온 뒤 **모델 가져오기**를 클릭하거나 모델 ID를 수동으로 추가하세요.
|
||||
|
||||
### 링크 형식
|
||||
|
||||
```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` | 예 | BoosApi에 저장할 API 키. 확인 대화상자에는 접두사만 표시됩니다. |
|
||||
| `type` | 예 | 제공업체 유형. 허용 값: `openai`, `openai_responses`, `anthropic`, `gemini`, `custom`. |
|
||||
|
||||
`baseurl`은 BoosApi의 기존 강제 접미사도 사용할 수 있습니다(예: `https://example.com!`). 링크로 가져올 때는 `api_path`가 설정되지 않으며, 선택한 제공업체 유형의 기본 경로가 계속 사용됩니다.
|
||||
|
||||
### 웹사이트 설정
|
||||
|
||||
모든 동적 값은 `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 보안
|
||||
URL에 포함된 API 키는 브라우저 기록, 로그, 확장 프로그램, 분석 스크립트에 남을 수 있습니다. 실제 키를 공개 페이지, 정적 HTML, 서드파티 리디렉션 링크에 넣지 마세요. 사용자 전용 계정 페이지에서 확인 후 생성하는 방식을 권장합니다.
|
||||
:::
|
||||
|
||||
::: tip 테스트
|
||||
`boosapi://`는 설치된 데스크톱 앱이 시스템에 등록하는 사용자 지정 프로토콜입니다. 웹사이트나 Vite 개발 서버만 실행해서는 등록되지 않습니다. 클릭해도 BoosApi이 열리지 않으면 최신 BoosApi 데스크톱 앱을 먼저 설치하거나 다시 빌드하세요.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## CC Switch에서 가져오기
|
||||
|
||||
Settings -> Providers에서 CC Switch provider configurations를 스캔할 수 있습니다. 후보를 검토하고 importable rows를 선택하면 providers, Base URLs, API keys, model lists를 BoosApi으로 가져옵니다. OAuth-only entries나 reusable keys가 없는 항목은 이유와 함께 건너뜁니다.
|
||||
|
||||
## 고급 모델 요청 본문
|
||||
|
||||
각 모델은 extra_body JSON object를 정의할 수 있으며 OpenAI-compatible Chat Completions requests에 flatten되어 추가됩니다. enable_thinking 같은 vendor-specific options에 유용합니다. BoosApi은 JSON을 검증하고 model, messages, stream, tools, base sampling fields 덮어쓰기를 차단합니다.
|
||||
|
||||
## 멀티 키 로테이션
|
||||
|
||||
BoosApi은 부하 분산과 속도 제한 회피를 위해 제공업체별로 여러 API 키를 지원합니다.
|
||||
|
||||
### 키 추가
|
||||
|
||||
제공업체 상세 패널에서 **키 추가**를 클릭하여 추가 API 키를 추가합니다. 각 키에는 접두사, 생성 날짜, 마지막 사용 타임스탬프가 표시됩니다.
|
||||
|
||||
### 로테이션 작동 방식
|
||||
|
||||
BoosApi은 라운드 로빈 인덱스를 사용하여 활성화된 키를 자동으로 로테이션합니다. 요청이 완료되면 로테이션 인덱스가 다음 키로 진행됩니다. 키가 비활성화되거나 검증에 실패하면 건너뜁니다.
|
||||
|
||||
### 키 검증
|
||||
|
||||
키 옆의 **검증** 버튼을 클릭하여 제공업체의 API에 대해 검증합니다. 검증 결과와 오류 메시지가 기록됩니다.
|
||||
|
||||
---
|
||||
|
||||
## 모델 관리
|
||||
|
||||
### 모델 가져오기
|
||||
|
||||
제공업체 상세 패널에서 **모델 가져오기**를 클릭하여 제공업체 API에서 사용 가능한 모델의 전체 목록을 가져옵니다. 발견된 모델은 자동으로 로컬 목록에 추가됩니다.
|
||||
|
||||
### 모델 수동 추가
|
||||
|
||||
API에서 반환되지 않는 모델(예: 파인튜닝된 모델이나 새 릴리스)은 모델 ID를 직접 입력하여 추가할 수 있습니다.
|
||||
|
||||
### 모델별 매개변수
|
||||
|
||||
각 모델에 자체 기본 매개변수 재정의를 설정할 수 있습니다:
|
||||
|
||||
| 매개변수 | 설명 |
|
||||
|---------|------|
|
||||
| **온도** | 무작위성 제어(0 = 결정론적, 높을수록 더 창의적) |
|
||||
| **최대 토큰** | 응답의 최대 토큰 수 |
|
||||
| **Top P** | 핵 샘플링 임계값 |
|
||||
| **빈도 페널티** | 토큰 시퀀스 반복 감소 |
|
||||
| **존재 페널티** | 모델이 새 주제를 도입하도록 장려 |
|
||||
|
||||
### 모델 능력
|
||||
|
||||
BoosApi은 모델별로 **비전**, **함수 호출**, **추론** 등의 능력을 추적하고 태그로 표시합니다. 이러한 능력은 대화 중에 사용 가능한 기능에 영향을 미칩니다.
|
||||
|
||||
---
|
||||
|
||||
## 사용자 지정 및 로컬 엔드포인트
|
||||
|
||||
BoosApi은 OpenAI 채팅 완성 API를 구현하는 모든 엔드포인트와 작동합니다.
|
||||
|
||||
### Ollama (로컬 모델)
|
||||
|
||||
1. [Ollama](https://ollama.com/)를 설치하고 시작합니다.
|
||||
2. BoosApi에서 유형 **OpenAI**로 새 제공업체를 만듭니다.
|
||||
3. **Base URL**을 `http://localhost:11434`로 설정합니다.
|
||||
4. **모델 가져오기**를 클릭하여 로컬에 다운로드한 모델을 검색합니다.
|
||||
|
||||
### vLLM / TGI
|
||||
|
||||
추론 서버의 주소(예: `http://localhost:8000`)에 **Base URL**을 설정하고 평소처럼 모델을 가져오거나 추가합니다.
|
||||
|
||||
### API 릴레이 서비스
|
||||
|
||||
릴레이 또는 애그리게이터 서비스(예: OpenRouter, one-api)의 경우 유형을 **OpenAI**로 설정하고 릴레이의 Base URL을 입력하고 릴레이의 API 키를 제공합니다.
|
||||
|
||||
---
|
||||
|
||||
## 기본 모델 설정
|
||||
|
||||
### 기본 어시스턴트 모델
|
||||
|
||||
**설정 → 기본 모델**로 이동하여 새 대화에서 기본으로 사용할 제공업체와 모델을 선택합니다. 모델 선택기에서 대화별로 항상 모델을 재정의할 수 있습니다.
|
||||
|
||||
### 주제 명명 모델
|
||||
|
||||
BoosApi은 각 대화의 제목을 자동으로 생성할 수 있습니다. 기본 모델 설정에서 제목 생성의 비용과 지연을 절약하기 위해 주제 명명 전용 경량 모델을 할당할 수 있습니다. 제목 생성을 위한 사용자 지정 프롬프트와 컨텍스트 창 크기를 구성할 수 있습니다.
|
||||
|
||||
---
|
||||
|
||||
## 다음 단계
|
||||
|
||||
- [MCP 서버](./mcp) — AI 기능을 확장하는 외부 도구 연결
|
||||
- [API 게이트웨이](./gateway) — 제공업체를 로컬 API 서버로 노출
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — 오픈소스 AI 데스크톱 클라이언트 & 게이트웨이"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi은 멀티 모델 채팅, Agent, MCP, ChatGPT/Cherry Studio/Kelivo 가져오기, 로컬 RAG, S3/WebDAV 백업, 내장 AI 게이트웨이를 지원하는 무료 오픈소스 AI 데스크톱 클라이언트입니다."
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "AI 데스크톱 워크스페이스"
|
||||
tagline: "멀티 모델 채팅, Agent, MCP 도구, API 게이트웨이, 가져오기, 지식베이스, 백업을 하나의 로컬 우선 클라이언트에 통합"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "빠른 시작"
|
||||
link: /ko/guide/getting-started
|
||||
- theme: alt
|
||||
text: "다운로드"
|
||||
link: /ko/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "채팅 및 모델"
|
||||
details: "OpenAI, Claude, Gemini, DeepSeek, Qwen 및 OpenAI 호환 엔드포인트를 Base URL, API Path, headers, proxy rules와 함께 연결합니다."
|
||||
- icon: api
|
||||
title: "제공업체 설정"
|
||||
details: "boosapi:// provider links 및 CC Switch import로 사용자 확인 후 provider profiles를 BoosApi으로 가져옵니다."
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "모델이 controlled workflow에서 files edit, commands run, code analysis를 수행합니다."
|
||||
- icon: edit
|
||||
title: "콘텐츠 렌더링"
|
||||
details: "Markdown, code highlighting, tables, task lists, LaTeX를 streaming conversation에서 렌더링합니다."
|
||||
- icon: search
|
||||
title: "검색 및 지식"
|
||||
details: "Tavily, Zhipu WebSearch, Bocha 등과 cited sources, generated queries를 지원합니다."
|
||||
- icon: cloud-server
|
||||
title: "API 게이트웨이"
|
||||
details: "OpenAI Chat Completions, OpenAI Responses, Claude-native, Gemini-native endpoints를 desktop app에서 노출합니다."
|
||||
- icon: book
|
||||
title: "데이터 가져오기 및 백업"
|
||||
details: "ChatGPT official exports, Cherry Studio backups, Kelivo backups를 preview counts, warnings, duplicate handling과 함께 가져옵니다."
|
||||
- icon: lock
|
||||
title: "데스크톱 및 보안"
|
||||
details: "app state는 ~/.boosapi/, user files는 ~/Documents/boosapi/에 저장되며 API keys는 AES-256 local master key로 보호됩니다."
|
||||
- icon: desktop
|
||||
title: "데스크톱 및 보안"
|
||||
details: "app state는 ~/.boosapi/, user files는 ~/Documents/boosapi/에 저장되며 API keys는 AES-256 local master key로 보호됩니다."
|
||||
---
|
||||
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 443 KiB |
|
After Width: | Height: | Size: 255 KiB |
|
After Width: | Height: | Size: 457 KiB |
|
After Width: | Height: | Size: 152 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 436 KiB |
|
After Width: | Height: | Size: 294 KiB |
|
After Width: | Height: | Size: 650 KiB |
|
After Width: | Height: | Size: 380 KiB |
|
After Width: | Height: | Size: 344 KiB |
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# Возможности
|
||||
|
||||
BoosApi — локальный AI-десктоп workspace. Страница обновлена для v0.0.85 и отражает импорт провайдеров, импорт сторонних данных, MCP, HTML-рендеринг, резервные копии и шлюз.
|
||||
|
||||
## Чат и модели
|
||||
|
||||
- **Мультипровайдерный чат** — Подключайте OpenAI, Claude, Gemini, DeepSeek, Qwen и любые OpenAI-compatible endpoints с Base URL, API Path, headers и proxy rules.
|
||||
- **Быстрое подключение провайдеров** — Ссылки boosapi:// и импорт CC Switch переносят профили провайдеров в BoosApi после подтверждения пользователя.
|
||||
- **Управление моделями** — Синхронизируйте remote model lists, группы, latency test, capabilities, context length, sampling defaults, reasoning profiles и extra_body для каждой модели.
|
||||
- **Сценарии диалогов** — Streaming replies, thinking blocks, версии сообщений, ветки, статус генерации заголовка, сжатие длинных чатов и параллельные ответы нескольких моделей.
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Agent mode** — Модель может редактировать файлы, запускать команды и анализировать код в контролируемом рабочем процессе.
|
||||
- **Контроль прав** — Выбирайте стандартную проверку, auto-accept edits или full-access mode при активной sandbox рабочего каталога.
|
||||
- **Одобрения и стоимость** — Проверяйте tool calls в реальном времени, запоминайте разрешения и отслеживайте token/cost по каждой сессии.
|
||||
|
||||
## Рендеринг контента
|
||||
|
||||
- **Markdown и математика** — Рендеринг Markdown, подсветки кода, таблиц, task lists и LaTeX в потоковых диалогах.
|
||||
- **Код, диаграммы и Artifact** — Monaco, Mermaid, D2 и Artifact panel для кода, Markdown notes, отчетов и preview.
|
||||
- **HTML-фрагменты** — Безопасный preview HTML-фрагментов, с учетом последних исправлений streaming stability.
|
||||
|
||||
## Поиск и знания
|
||||
|
||||
- **Web search** — Tavily, Zhipu WebSearch, Bocha с цитируемыми источниками и генерацией search queries.
|
||||
- **Локальная база знаний** — Индексируйте приватные документы через sqlite-vec, настраивайте retrieval/rerank и смотрите retrieval feedback.
|
||||
- **Управление контекстом** — Прикрепляйте files, search results, knowledge snippets, memories и tool output к контексту диалога.
|
||||
|
||||
## Инструменты и расширения
|
||||
|
||||
- **MCP protocol** — Запускайте Model Context Protocol servers через stdio, SSE или StreamableHTTP.
|
||||
- **Встроенные инструменты** — Используйте @boosapi/fetch и поиск файлов без установки отдельного сервера.
|
||||
- **Лимит tool loop** — Настраивайте максимум MCP tool-call loops и лучше восстанавливайтесь после прерванных или зависших tool sessions.
|
||||
|
||||
## API-шлюз
|
||||
|
||||
- **Локальный gateway** — Публикуйте OpenAI Chat Completions, OpenAI Responses, Claude-native и Gemini-native endpoints из desktop app.
|
||||
- **Доступ и наблюдаемость** — Управляйте gateway keys, SSL/TLS certificates, request logs и usage analytics локально.
|
||||
- **Шаблоны клиентов** — Готовые templates для Claude Code, Codex CLI, OpenCode, Gemini CLI и custom clients.
|
||||
|
||||
## Импорт данных и backups
|
||||
|
||||
- **Сторонний импорт** — Импортируйте ChatGPT official exports, Cherry Studio backups и Kelivo backups с preview counts, warnings и duplicate handling.
|
||||
- **Миграция провайдеров и файлов** — Импорт Cherry Studio/Kelivo может переносить linked providers, API keys и file attachments.
|
||||
- **Backups** — Создавайте и восстанавливайте backups через local folders, WebDAV или S3-compatible storage.
|
||||
|
||||
## Desktop и безопасность
|
||||
|
||||
- **Локальное шифрование** — App state хранится в ~/.boosapi/, user files — в ~/Documents/boosapi/, API keys защищены AES-256 и локальным master key.
|
||||
- **Desktop-интеграция** — Tray, always-on-top, global shortcuts, auto-start, proxy settings и automatic update checks.
|
||||
- **11 языков интерфейса** — Переключение между Simplified Chinese, Traditional Chinese, English, Japanese, Korean, French, German, Spanish, Russian, Hindi и Arabic.
|
||||
@@ -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-сервера
|
||||
@@ -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) — вернуться к руководству по быстрому старту
|
||||
@@ -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-сервера
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — open-source AI-десктоп клиент и gateway"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi — бесплатный open-source AI desktop client с multi-model chat, Agent, MCP, импортом ChatGPT/Cherry Studio/Kelivo, local RAG, S3/WebDAV backup и встроенным AI gateway."
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "Ваш AI-десктоп workspace"
|
||||
tagline: "Мультимодельный чат, Agent, MCP-инструменты, API gateway, импорт данных, база знаний и backups в одном local-first клиенте"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "Начало работы"
|
||||
link: /ru/guide/getting-started
|
||||
- theme: alt
|
||||
text: "Скачать"
|
||||
link: /ru/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "Мультимодельный чат"
|
||||
details: "OpenAI, Claude, Gemini, DeepSeek, Qwen и compatible APIs с key rotation, branches, compression и multi-model answers."
|
||||
- icon: api
|
||||
title: "Быстрое подключение"
|
||||
details: "boosapi:// links, CC Switch import, custom headers, proxy settings, OpenAI Responses и per-model extra_body."
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "File edits, commands и code analysis с permission levels, working-directory sandbox, approval UI и cost tracking."
|
||||
- icon: edit
|
||||
title: "Рендеринг контента"
|
||||
details: "Markdown, LaTeX, Mermaid, D2, Monaco code blocks, HTML fragments и Artifact previews."
|
||||
- icon: search
|
||||
title: "Search & RAG"
|
||||
details: "Web search с citations, query generation, local sqlite-vec knowledge bases, rerank settings и retrieval feedback."
|
||||
- icon: cloud-server
|
||||
title: "API Gateway"
|
||||
details: "Локальные OpenAI-compatible, OpenAI Responses, Claude и Gemini endpoints для Claude Code, Codex, OpenCode и custom tools."
|
||||
- icon: book
|
||||
title: "Импорт данных"
|
||||
details: "ChatGPT official exports, Cherry Studio backups и Kelivo backups с duplicate handling и optional provider migration."
|
||||
- icon: lock
|
||||
title: "Backup и безопасность"
|
||||
details: "AES-256 local storage, dual-root data layout, local/WebDAV/S3 backups и restore workflows."
|
||||
- icon: desktop
|
||||
title: "Desktop experience"
|
||||
details: "11 languages, tray mode, always-on-top, global shortcuts, auto-start, proxy support и auto-update checks."
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# 功能特性
|
||||
|
||||
BoosApi 是本機優先的 AI 桌面工作台。本頁已依 v0.0.85 更新,涵蓋近期服務供應商匯入、第三方資料匯入、MCP、HTML 渲染、備份和閘道能力。
|
||||
|
||||
## 對話與模型
|
||||
|
||||
- **多服務供應商對話** — 連接 OpenAI、Claude、Gemini、DeepSeek、Qwen 以及任意 OpenAI 相容端點,支援自訂 Base URL、API Path、請求頭和代理規則。
|
||||
- **服務供應商快速匯入** — 透過 boosapi:// 服務供應商連結和 CC Switch 設定匯入,在使用者確認後把服務供應商資料帶入 BoosApi。
|
||||
- **模型管理** — 同步遠端模型列表、管理分組、測試延遲,並設定能力標籤、上下文長度、採樣預設值、推理檔位和模型級 extra_body。
|
||||
- **對話工作流** — 流式回覆、思考區塊、訊息多版本、對話分支、標題生成狀態、長對話壓縮和多模型並行回答。
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Agent 模式** — 讓模型在受控桌面工作流中讀取/編輯檔案、執行命令並分析程式碼。
|
||||
- **權限控制** — 可選擇標準審核、自動接受編輯或完全存取模式,同時保留工作目錄沙箱檢查。
|
||||
- **審批與成本面板** — 即時查看工具呼叫、記住允許決策,並追蹤每個 Agent 會話的 token 與成本。
|
||||
|
||||
## 內容渲染
|
||||
|
||||
- **Markdown 與數學公式** — 在流式對話中渲染 Markdown、程式碼高亮、表格、任務列表和 LaTeX 公式。
|
||||
- **程式碼、圖表與 Artifact** — 內建 Monaco 程式碼區塊、Mermaid、D2 圖表和 Artifact 面板,用於程式碼、Markdown 筆記、報告和預覽。
|
||||
- **HTML 片段渲染** — 安全預覽模型生成的 HTML 片段,並包含近期版本加入的流式渲染穩定性修復。
|
||||
|
||||
## 搜尋與知識
|
||||
|
||||
- **網路搜尋** — 接入 Tavily、智譜 WebSearch、Bocha 等搜尋服務,支援引用來源和搜尋查詢生成。
|
||||
- **本機知識庫** — 用 sqlite-vec 索引私有文件,設定檢索/重排選項並查看檢索回饋。
|
||||
- **上下文管理** — 把檔案、搜尋結果、知識片段、記憶和工具輸出附加到對話上下文。
|
||||
|
||||
## 工具與擴充
|
||||
|
||||
- **MCP 協定** — 執行 stdio、SSE 或 StreamableHTTP 傳輸的 Model Context Protocol 伺服器。
|
||||
- **內建工具** — 直接使用 @boosapi/fetch、檔案搜尋等內建 MCP 工具,無需額外安裝獨立伺服器。
|
||||
- **工具循環上限** — 可設定 MCP 工具呼叫最大循環次數,並更好地恢復中斷或卡住的工具會話。
|
||||
|
||||
## API 閘道
|
||||
|
||||
- **本機閘道** — 從桌面應用暴露 OpenAI Chat Completions、OpenAI Responses、Claude 原生和 Gemini 原生介面。
|
||||
- **存取與觀測** — 本機管理閘道金鑰、SSL/TLS 憑證、請求日誌和用量統計。
|
||||
- **客戶端範本** — 提供 Claude Code、Codex CLI、OpenCode、Gemini CLI 和自訂客戶端的設定範本。
|
||||
|
||||
## 資料匯入與備份
|
||||
|
||||
- **第三方匯入** — 匯入 ChatGPT 官方匯出、Cherry Studio 備份和 Kelivo 備份,帶預覽統計、警告和重複處理。
|
||||
- **服務供應商與檔案遷移** — Cherry Studio/Kelivo 匯入可選擇遷移關聯服務供應商、API Key 和檔案附件。
|
||||
- **備份** — 透過本機目錄、WebDAV 或 S3 相容儲存進行備份與還原。
|
||||
|
||||
## 桌面體驗與安全
|
||||
|
||||
- **本機加密** — 應用狀態位於 ~/.boosapi/,使用者檔案位於 ~/Documents/boosapi/,API Key 使用 AES-256 和本機主金鑰保護。
|
||||
- **桌面整合** — 支援系統匣、視窗置頂、全域快捷鍵、開機自啟、代理設定和自動更新檢查。
|
||||
- **11 種界面語言** — 可在簡體中文、繁體中文、英語、日語、韓語、法語、德語、西班牙語、俄語、印地語和阿拉伯語之間切換。
|
||||
@@ -0,0 +1,204 @@
|
||||
# API 閘道
|
||||
|
||||
## 什麼是 API 閘道?
|
||||
|
||||
BoosApi 內建了一個本機 API 閘道伺服器,可以將您在 BoosApi 中設定的 AI 服務供應商統一暴露為標準 API 介面。其他工具和客戶端(如 Claude Code、Codex CLI、Cursor 等)可以透過這個閘道存取您的所有模型,無需為每個工具分別設定 API 金鑰。
|
||||
|
||||
閘道支援以下相容格式:
|
||||
|
||||
- **OpenAI 相容** — `/v1/chat/completions`
|
||||
- **Claude 原生** — Anthropic API 格式
|
||||
- **Gemini 原生** — Google AI API 格式
|
||||
|
||||
::: tip 使用場景
|
||||
如果您已經在 BoosApi 中設定了多個服務供應商和金鑰,API 閘道可以讓其他開發工具直接復用這些設定,省去重複設定的麻煩。同時,閘道提供統一的用量統計和存取控制。
|
||||
:::
|
||||
|
||||
## 快速上手
|
||||
|
||||
### 啟用閘道
|
||||
|
||||
1. 進入 **設定 → API 閘道**
|
||||
2. 開啟閘道開關
|
||||
3. 設定監聽參數:
|
||||
- **連接埠** — 閘道監聽的連接埠號,預設 `8080`
|
||||
- **主機** — 監聽位址,預設 `127.0.0.1`(僅本機存取)
|
||||
|
||||
::: warning 網路安全
|
||||
如果將主機設定為 `0.0.0.0`,閘道將對所有網路介面開放。請確保您了解其安全風險,並配合 API 金鑰和防火牆使用。
|
||||
:::
|
||||
|
||||
### 測試連通性
|
||||
|
||||
閘道啟動後,可以用 `curl` 快速驗證:
|
||||
|
||||
```bash
|
||||
curl http://127.0.0.1:8080/v1/models \
|
||||
-H "Authorization: Bearer your-gateway-api-key"
|
||||
```
|
||||
|
||||
如果回傳了模型清單,說明閘道執行正常。
|
||||
|
||||
## API 金鑰管理
|
||||
|
||||
閘道使用獨立的 API 金鑰體系來控制存取權限。
|
||||
|
||||
### 產生新金鑰
|
||||
|
||||
1. 在 **API 閘道** 頁面中找到 **金鑰管理** 區域
|
||||
2. 點擊 **產生金鑰**
|
||||
3. 為金鑰新增描述備注(如「Claude Code 專用」、「團隊共享」)
|
||||
4. 複製並妥善儲存產生的金鑰
|
||||
|
||||
::: danger 金鑰安全
|
||||
金鑰僅在建立時完整顯示一次。請立即複製儲存,之後只能看到金鑰前綴。
|
||||
:::
|
||||
|
||||
### 撤銷 / 停用金鑰
|
||||
|
||||
- **停用** — 暫時停用金鑰,可隨時重新啟用
|
||||
- **刪除** — 永久撤銷金鑰,使用該金鑰的所有客戶端將立即失去存取權限
|
||||
|
||||
### 描述備注
|
||||
|
||||
為每個金鑰新增描述可以幫助您管理多個客戶端的存取。例如區分不同工具或團隊成員使用的金鑰。
|
||||
|
||||
## SSL/TLS
|
||||
|
||||
閘道支援 HTTPS 加密通訊,部分工具(如 Claude Code)要求使用 HTTPS 連線。
|
||||
|
||||
### 自動自簽憑證
|
||||
|
||||
啟用 SSL 後,BoosApi 會自動產生自簽憑證,無需手動操作。憑證檔案儲存在:
|
||||
|
||||
```
|
||||
~/.boosapi/ssl/
|
||||
├── cert.pem # 自簽憑證
|
||||
└── key.pem # 私鑰(Unix 系統權限 0600)
|
||||
```
|
||||
|
||||
### 自訂憑證
|
||||
|
||||
如果您有自己的 SSL 憑證(如 Let's Encrypt 簽發的憑證),可以在閘道設定中指定憑證和私鑰的路徑。
|
||||
|
||||
### 設定選項
|
||||
|
||||
| 選項 | 說明 |
|
||||
|------|------|
|
||||
| 啟用 SSL | 是否開啟 HTTPS |
|
||||
| SSL 連接埠 | HTTPS 監聽連接埠 |
|
||||
| 憑證路徑 | cert.pem 檔案路徑 |
|
||||
| 私鑰路徑 | key.pem 檔案路徑 |
|
||||
| 強制 SSL | 是否將所有 HTTP 請求重新導向到 HTTPS |
|
||||
|
||||
::: info 自簽憑證信任
|
||||
使用自簽憑證時,客戶端可能會回報憑證不受信任的警告。大部分 CLI 工具可以透過設定環境變數來跳過憑證驗證(見下方設定範本)。
|
||||
:::
|
||||
|
||||
## 用量統計
|
||||
|
||||
閘道提供詳細的用量統計面板,幫助您了解 API 的使用情況。
|
||||
|
||||
### 請求量面板
|
||||
|
||||
即時顯示閘道處理的請求總量、成功率和錯誤率。
|
||||
|
||||
### Token 用量
|
||||
|
||||
依不同維度查看 Token 消耗:
|
||||
|
||||
- **依金鑰** — 每個 API 金鑰使用了多少 Token
|
||||
- **依服務供應商** — 每個後端服務供應商處理了多少請求和 Token
|
||||
- **依日期** — 每日的 Token 使用趨勢
|
||||
|
||||
::: tip
|
||||
透過用量統計,您可以了解哪個工具消耗最多資源,合理分配 API 配額。
|
||||
:::
|
||||
|
||||
## 請求日誌
|
||||
|
||||
閘道記錄所有經過它的 API 請求,方便除錯和稽核。
|
||||
|
||||
每條日誌包含以下資訊:
|
||||
|
||||
| 欄位 | 說明 |
|
||||
|------|------|
|
||||
| 時間 | 請求的時間戳記 |
|
||||
| 方法 | HTTP 方法(GET、POST 等) |
|
||||
| 路徑 | 請求路徑 |
|
||||
| 模型 | 請求使用的模型 |
|
||||
| 服務供應商 | 轉發到的後端服務供應商 |
|
||||
| 狀態碼 | HTTP 回應狀態碼 |
|
||||
| Token | 輸入/輸出 Token 數量 |
|
||||
| 延遲 | 請求處理耗時 |
|
||||
|
||||
支援依時間範圍、狀態碼、模型等條件篩選日誌。
|
||||
|
||||
## 設定範本
|
||||
|
||||
BoosApi 內建了常見開發工具的設定範本,幫助您快速接入。以下是一些常用工具的設定方式:
|
||||
|
||||
### Claude Code CLI
|
||||
|
||||
```bash
|
||||
export ANTHROPIC_BASE_URL=https://127.0.0.1:8443
|
||||
export ANTHROPIC_API_KEY=your-gateway-api-key
|
||||
export NODE_TLS_REJECT_UNAUTHORIZED=0
|
||||
|
||||
claude
|
||||
```
|
||||
|
||||
::: tip
|
||||
`NODE_TLS_REJECT_UNAUTHORIZED=0` 用於跳過自簽憑證驗證。如果您使用了受信任的憑證,可以移除此設定。
|
||||
:::
|
||||
|
||||
### OpenAI Codex CLI
|
||||
|
||||
```bash
|
||||
export OPENAI_BASE_URL=http://127.0.0.1:8080/v1
|
||||
export OPENAI_API_KEY=your-gateway-api-key
|
||||
|
||||
codex
|
||||
```
|
||||
|
||||
### OpenCode
|
||||
|
||||
```bash
|
||||
export OPENAI_BASE_URL=http://127.0.0.1:8080/v1
|
||||
export OPENAI_API_KEY=your-gateway-api-key
|
||||
|
||||
opencode
|
||||
```
|
||||
|
||||
### Gemini CLI
|
||||
|
||||
```bash
|
||||
export GEMINI_API_KEY=your-gateway-api-key
|
||||
export GEMINI_BASE_URL=http://127.0.0.1:8080
|
||||
|
||||
gemini
|
||||
```
|
||||
|
||||
### 自訂客戶端
|
||||
|
||||
對於任何支援 OpenAI 相容 API 的客戶端,使用以下設定:
|
||||
|
||||
- **Base URL**: `http://127.0.0.1:8080/v1`
|
||||
- **API Key**: 您的閘道 API 金鑰
|
||||
- **模型**: 透過 `/v1/models` 介面查詢可用模型
|
||||
|
||||
## 接入外部工具
|
||||
|
||||
除 CLI 工具外,許多圖形化工具也支援自訂 API 端點。通用設定方式:
|
||||
|
||||
1. 在工具的設定中找到 API 設定或自訂端點選項
|
||||
2. 將 Base URL 設定為 BoosApi 閘道位址
|
||||
3. 將 API Key 設定為閘道金鑰
|
||||
4. 儲存後即可使用 BoosApi 設定的所有模型
|
||||
|
||||
::: tip 統一管理的優勢
|
||||
透過 API 閘道統一管理,您可以:
|
||||
- 在 BoosApi 中集中管理所有服務供應商金鑰,其他工具只需一個閘道金鑰
|
||||
- 在用量統計中查看所有工具的使用情況
|
||||
- 利用多金鑰輪詢提高可靠性
|
||||
:::
|
||||
@@ -0,0 +1,212 @@
|
||||
# 快速開始
|
||||
|
||||
本指南將幫助您在幾分鐘內完成 BoosApi 的安裝、設定和首次對話。
|
||||
|
||||
## 安裝
|
||||
|
||||
前往 [下載頁面](/zh-tw/download) 取得最新安裝套件,選擇與您系統相符的版本。
|
||||
|
||||
### macOS
|
||||
|
||||
BoosApi 提供兩種架構的 `.dmg` 安裝套件:
|
||||
|
||||
- **Apple Silicon**(M1/M2/M3/M4)— `BoosApi_x.x.x_aarch64.dmg`
|
||||
- **Intel** — `BoosApi_x.x.x_x64.dmg`
|
||||
|
||||
下載後雙擊 `.dmg` 檔案,將 BoosApi 拖入「應用程式」資料夾即可。
|
||||
|
||||
::: warning macOS 安全提示
|
||||
由於 BoosApi 尚未進行 Apple 公證簽名,首次開啟時系統可能彈出以下提示:
|
||||
|
||||
- **「BoosApi 已損毀,無法開啟」** 或 **「無法驗證開發者」**
|
||||
|
||||
請在終端機中執行以下指令後重新開啟:
|
||||
|
||||
```bash
|
||||
xattr -cr /Applications/BoosApi.app
|
||||
```
|
||||
|
||||
該指令會移除系統新增的隔離屬性,不會影響應用程式本身。
|
||||
:::
|
||||
|
||||
### Windows
|
||||
|
||||
- **x64** — `BoosApi_x.x.x_x64-setup.exe`
|
||||
- **ARM64** — `BoosApi_x.x.x_arm64-setup.exe`
|
||||
|
||||
雙擊安裝程式並依照精靈完成安裝。系統需求為 Windows 10(1803)或更高版本。
|
||||
|
||||
### Linux
|
||||
|
||||
根據您的發行版和架構選擇:
|
||||
|
||||
| 格式 | 架構 | 適用場景 |
|
||||
|------|------|---------|
|
||||
| `.deb` | amd64 / arm64 | Debian、Ubuntu 及其衍生版 |
|
||||
| `.rpm` | x86_64 / aarch64 | Fedora、openSUSE 等 |
|
||||
| `.AppImage` | x86_64 / aarch64 | 任意發行版,無需安裝 |
|
||||
|
||||
`.deb` 安裝範例:
|
||||
|
||||
```bash
|
||||
sudo dpkg -i BoosApi_x.x.x_amd64.deb
|
||||
```
|
||||
|
||||
`.AppImage` 需要先賦予執行權限:
|
||||
|
||||
```bash
|
||||
chmod +x BoosApi_x.x.x_amd64.AppImage
|
||||
./BoosApi_x.x.x_amd64.AppImage
|
||||
```
|
||||
|
||||
## 首次設定
|
||||
|
||||
安裝完成後,依照以下步驟完成初始設定。
|
||||
|
||||
### 1. 進入設定
|
||||
|
||||
啟動 BoosApi 後,點擊左側邊欄底部的齒輪圖示進入 **設定** 頁面。
|
||||
|
||||
### 2. 新增服務供應商
|
||||
|
||||
進入 **設定 → 服務供應商**,點擊左下角的 **+** 按鈕新增一個服務供應商。以 OpenAI 為例:
|
||||
|
||||
1. 輸入服務供應商名稱,如 `OpenAI`
|
||||
2. 選擇服務供應商類型為 **OpenAI**
|
||||
3. 填入您的 **API 金鑰**
|
||||
4. **Base URL** 保持預設 `https://api.openai.com`,若使用第三方中繼服務則填寫其位址
|
||||
|
||||
::: tip 取得 API 金鑰
|
||||
前往 [OpenAI API Keys](https://platform.openai.com/api-keys) 頁面建立金鑰。其他服務供應商的金鑰取得方式請參考各自官方文件。
|
||||
:::
|
||||
|
||||
### 3. 取得模型
|
||||
|
||||
服務供應商新增完成後,點擊 **取得模型** 按鈕,BoosApi 會自動從 API 拉取可用模型清單。您也可以在模型 ID 輸入框中手動新增模型。
|
||||
|
||||
### 4. 設定預設模型
|
||||
|
||||
進入 **設定 → 預設模型**,選擇您最常用的模型作為預設助手模型和話題命名模型。新建對話時將自動使用預設模型。
|
||||
|
||||
## 開始第一次對話
|
||||
|
||||
### 新建對話
|
||||
|
||||
點擊左側邊欄頂部的 **新建對話** 按鈕,或使用快捷鍵 `Cmd/Ctrl+N`。
|
||||
|
||||
### 選擇模型
|
||||
|
||||
在對話頂部的模型選擇器中選取您想使用的模型。如果您已設定了預設模型,會自動填充。
|
||||
|
||||
### 傳送訊息
|
||||
|
||||
在底部輸入框中輸入您的問題,按 `Enter` 傳送。BoosApi 使用串流輸出,您會看到模型的回答逐字呈現。
|
||||
|
||||
::: info 關於 Thinking 區塊
|
||||
部分模型(如 Claude、DeepSeek R1)支援輸出推理過程。當模型包含 thinking 區塊時,BoosApi 會將其折疊顯示,點擊即可展開查看完整推理鏈。
|
||||
:::
|
||||
|
||||
## 核心概念
|
||||
|
||||
### 對話分支
|
||||
|
||||
BoosApi 支援對話分支功能。當您在某條訊息基礎上重新生成或編輯提問時,系統會建立一個新的分支而非覆蓋原內容。您可以隨時在不同分支之間切換,比較不同的對話走向。
|
||||
|
||||
### 訊息版本
|
||||
|
||||
每條訊息可以擁有多個版本。重新生成助手回覆時,新版本會自動新增到同一訊息位置。透過訊息旁的左右箭頭可以在版本間快速切換。
|
||||
|
||||
### 上下文掛載
|
||||
|
||||
在對話中,您可以透過附件功能掛載額外的上下文資訊:
|
||||
|
||||
- **檔案** — 上傳圖片或文件作為對話上下文
|
||||
- **搜尋** — 關聯本機知識庫搜尋結果
|
||||
- **工具** — 啟用 MCP 工具讓模型呼叫外部能力
|
||||
|
||||
## 快捷鍵
|
||||
|
||||
BoosApi 內建了一套常用快捷鍵,提升操作效率:
|
||||
|
||||
| 快捷鍵 | 功能 |
|
||||
|-------|------|
|
||||
| `CmdOrCtrl+Shift+A` | 顯示/隱藏目前視窗 |
|
||||
| `CmdOrCtrl+Shift+Z` | 顯示/隱藏所有視窗 |
|
||||
| `Cmd/Ctrl+N` | 新建對話 |
|
||||
| `Cmd/Ctrl+,` | 開啟設定 |
|
||||
| `Cmd/Ctrl+F` | 搜尋對話 |
|
||||
|
||||
::: tip 自訂快捷鍵
|
||||
以上快捷鍵均可在 **設定 → 快捷鍵** 中自訂修改,包括全域快捷鍵和應用程式內快捷鍵。
|
||||
:::
|
||||
|
||||
## 桌面設定
|
||||
|
||||
在 **設定** 中可以調整各項桌面偏好:
|
||||
|
||||
### 外觀
|
||||
|
||||
- **主題** — 支援深色、淺色和跟隨系統三種模式
|
||||
- **主題色** — 從 12 種預設色中選擇,也支援自訂顏色
|
||||
- **字型** — 可調整字型大小(12–20px)、字重和字型家族
|
||||
|
||||
### 語言
|
||||
|
||||
支援繁體中文、簡體中文和英文介面切換,在 **設定 → 一般** 中修改。
|
||||
|
||||
### 系統行為
|
||||
|
||||
- **系統托盤** — 關閉視窗後保持在系統托盤執行
|
||||
- **開機自啟** — 設定系統登入時自動啟動 BoosApi
|
||||
- **視窗置頂** — 將 BoosApi 視窗始終置於最前
|
||||
|
||||
### 代理設定
|
||||
|
||||
如果您需要透過代理存取 API,在 **設定 → 代理** 中設定:
|
||||
|
||||
- **代理類型** — 支援 HTTP 和 SOCKS5
|
||||
- **代理位址** — 代理伺服器的 IP 或網域名稱
|
||||
- **代理連接埠** — 預設為 7890
|
||||
|
||||
設定完成後可以點擊 **測試** 按鈕驗證連通性,會顯示延遲結果。
|
||||
|
||||
## 資料與備份
|
||||
|
||||
### 資料目錄
|
||||
|
||||
BoosApi 使用兩個目錄分別儲存不同類型的資料:
|
||||
|
||||
| 目錄 | 用途 |
|
||||
|------|------|
|
||||
| `~/.boosapi/` | 應用狀態:資料庫、加密金鑰、向量資料庫、SSL 憑證 |
|
||||
| `~/Documents/boosapi/` | 使用者檔案:圖片、文件附件、備份 |
|
||||
|
||||
### 自動備份
|
||||
|
||||
在 **設定 → 備份** 中開啟自動備份。支援以下備份目標:
|
||||
|
||||
- **本機** — 預設儲存到 `~/Documents/boosapi/backups/`
|
||||
- **WebDAV** — 同步到支援 WebDAV 的網路磁碟機
|
||||
|
||||
可設定備份間隔(小時)和保留的最大備份數量。
|
||||
|
||||
### 手動備份與還原
|
||||
|
||||
隨時可以透過 **設定 → 備份** 手動觸發完整備份。還原時選擇備份檔案即可還原所有資料。
|
||||
|
||||
### 對話匯出
|
||||
|
||||
在對話頁面中,可以將目前對話匯出為多種格式:
|
||||
|
||||
- **PNG** — 長圖截圖,適合分享
|
||||
- **Markdown** — 結構化文字,方便二次編輯
|
||||
- **純文字** — 簡潔格式
|
||||
- **JSON** — 包含完整中繼資料,方便程式處理
|
||||
|
||||
## 下一步
|
||||
|
||||
基礎設定完成後,您可以繼續探索 BoosApi 的進階功能:
|
||||
|
||||
- [設定服務供應商](./providers) — 多服務供應商、多金鑰、自訂端點
|
||||
- [MCP 伺服器](./mcp) — 連接外部工具擴展 AI 能力
|
||||
- [API 閘道](./gateway) — 將 BoosApi 作為 API 代理伺服器
|
||||
@@ -0,0 +1,199 @@
|
||||
# MCP 伺服器
|
||||
|
||||
## 什麼是 MCP?
|
||||
|
||||
[Model Context Protocol(MCP)](https://modelcontextprotocol.io/)是一種開放協定,讓 AI 模型能夠與外部工具和資料來源互動。透過 MCP,模型可以在對話中呼叫檔案操作、網頁擷取、資料庫查詢等各種工具,大幅擴展 AI 的實際能力。
|
||||
|
||||
BoosApi 內建了 MCP 客戶端,您可以連接各種 MCP 伺服器來為 AI 對話增加工具呼叫能力。
|
||||
|
||||
## 傳輸協定
|
||||
|
||||
BoosApi 支援三種 MCP 傳輸協定,適用於不同的部署場景:
|
||||
|
||||
| 協定 | 連線方式 | 適用場景 | 設定參數 |
|
||||
|------|---------|---------|---------|
|
||||
| **Stdio** | 本機子程序 | 透過 `npx`、`uvx`、自訂指令啟動的本機工具 | `command` + `args` |
|
||||
| **SSE** | Server-Sent Events | 遠端託管的 MCP 伺服器 | `url` |
|
||||
| **StreamableHTTP** | HTTP 串流傳輸 | 遠端 HTTP 伺服器,支援雙向串流 | `url` |
|
||||
|
||||
::: info Stdio vs 遠端
|
||||
大部分 MCP 伺服器以 Stdio 模式執行——BoosApi 在本機啟動一個程序並透過標準輸入/輸出通訊。如果您連接的是遠端部署的伺服器,則使用 SSE 或 StreamableHTTP 協定。
|
||||
:::
|
||||
|
||||
## 新增 MCP 伺服器
|
||||
|
||||
### 表單建立
|
||||
|
||||
1. 進入 **設定 → MCP 伺服器**
|
||||
2. 點擊 **新增 MCP 伺服器**
|
||||
3. 填寫基本資訊:
|
||||
- **名稱** — 為伺服器取一個易識別的名稱
|
||||
- **傳輸協定** — 選擇 Stdio、SSE 或 StreamableHTTP
|
||||
4. 根據所選協定填寫相應設定:
|
||||
- **Stdio**:填寫啟動指令(如 `npx`、`uvx`)和參數
|
||||
- **SSE / StreamableHTTP**:填寫伺服器 URL
|
||||
5. 儲存後 BoosApi 會自動連接並取得可用工具清單
|
||||
|
||||
### JSON 匯入
|
||||
|
||||
如果您有現成的 MCP 設定(如從其他工具匯出),可以直接貼上 JSON 快速匯入。BoosApi 支援標準的 `mcpServers` 設定格式。
|
||||
|
||||
#### Stdio 協定格式
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"my-tool": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@some/mcp-server"],
|
||||
"env": {
|
||||
"API_KEY": "your-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### SSE 協定格式
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-server": {
|
||||
"type": "sse",
|
||||
"url": "https://example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### StreamableHTTP 協定格式
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"http-server": {
|
||||
"type": "streamablehttp",
|
||||
"url": "https://example.com/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
::: tip 批次匯入
|
||||
您可以在一個 JSON 中包含多個伺服器,BoosApi 會一次性全部匯入。
|
||||
:::
|
||||
|
||||
## 設定範例
|
||||
|
||||
以下是一些常用 MCP 伺服器的設定範例。
|
||||
|
||||
### 網頁擷取 — mcp-server-fetch
|
||||
|
||||
使用 `uvx` 啟動網頁擷取工具,讓 AI 能夠讀取網頁內容:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 檔案系統操作 — filesystem server
|
||||
|
||||
使用 `npx` 啟動檔案系統伺服器,允許 AI 讀寫指定目錄的檔案:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"filesystem": {
|
||||
"command": "npx",
|
||||
"args": [
|
||||
"-y",
|
||||
"@modelcontextprotocol/server-filesystem",
|
||||
"/Users/您的使用者名稱/Documents"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
::: warning 安全提示
|
||||
檔案系統伺服器會授予 AI 對指定目錄的讀寫權限。請只暴露必要的目錄路徑,避免將根目錄或敏感目錄暴露給模型。
|
||||
:::
|
||||
|
||||
### 遠端 SSE 伺服器
|
||||
|
||||
連接遠端部署的 MCP 伺服器:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-tools": {
|
||||
"type": "sse",
|
||||
"url": "https://mcp.example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 自訂 Stdio 伺服器(帶環境變數)
|
||||
|
||||
執行自訂的 MCP 伺服器,透過環境變數傳遞設定:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"custom-tool": {
|
||||
"command": "python",
|
||||
"args": ["/path/to/your/server.py"],
|
||||
"env": {
|
||||
"DATABASE_URL": "postgres://localhost:5432/mydb",
|
||||
"API_TOKEN": "your-token"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 內建工具
|
||||
|
||||
BoosApi 開箱即用地提供了一些內建 MCP 工具伺服器,無需額外安裝:
|
||||
|
||||
### @boosapi/fetch — 網頁擷取
|
||||
|
||||
| 工具 | 說明 |
|
||||
|------|------|
|
||||
| `fetch_url` | 擷取指定 URL 的頁面內容,提取文字 |
|
||||
| `fetch_markdown` | 擷取指定 URL 並轉換為 Markdown 格式 |
|
||||
|
||||
### @boosapi/search-file — 檔案操作
|
||||
|
||||
| 工具 | 說明 |
|
||||
|------|------|
|
||||
| `read_file` | 讀取指定路徑的檔案內容 |
|
||||
| `list_directory` | 列出指定目錄下的檔案和資料夾 |
|
||||
| `search_files` | 依模式搜尋相符的檔案 |
|
||||
|
||||
::: tip
|
||||
內建工具伺服器在 MCP 伺服器清單中預設顯示,可以直接在對話中啟用使用,無需任何額外設定。
|
||||
:::
|
||||
|
||||
## 工具循環上限
|
||||
|
||||
在 設定 -> 對話 中,MCP 工具呼叫最大輪次 用於限制單次回覆中模型連續呼叫工具的輪數。較低數值可減少耗時和成本,較高數值適合更長的自動化工具流程。
|
||||
|
||||
## 工具執行面板
|
||||
|
||||
當模型在對話中呼叫 MCP 工具時,BoosApi 會在訊息中顯示工具執行面板,其中包含:
|
||||
|
||||
- **工具名稱** — 被呼叫的工具和所屬伺服器
|
||||
- **輸入參數** — 模型傳給工具的參數
|
||||
- **執行狀態** — 等待確認、執行中、已完成或失敗
|
||||
- **回傳結果** — 工具執行後回傳的資料
|
||||
|
||||
點擊面板可以展開查看完整的輸入和輸出資訊,方便除錯和了解 AI 的工具使用行為。
|
||||
@@ -0,0 +1,243 @@
|
||||
# 設定服務供應商
|
||||
|
||||
BoosApi 支援接入多種 AI 服務供應商,您可以同時設定多個服務供應商並在對話中自由切換。
|
||||
|
||||
## 支援的服務供應商
|
||||
|
||||
BoosApi 內建以下服務供應商類型,並支援任何相容 OpenAI API 格式的自訂端點:
|
||||
|
||||
| 服務供應商 | 代表模型 | 說明 |
|
||||
|-----------|---------|------|
|
||||
| **OpenAI** | GPT-4o、GPT-4、o3、o4-mini | 最廣泛支援的 API 格式 |
|
||||
| **Anthropic** | Claude 4 Sonnet/Opus、Claude 3.5 Sonnet | 原生 Claude API |
|
||||
| **Google** | Gemini 2.5 Pro/Flash、Gemini 2.0 | Google AI Studio 或 Vertex |
|
||||
| **DeepSeek** | DeepSeek-V3、DeepSeek-R1 | 高性價比推理模型 |
|
||||
| **阿里雲通義千問** | Qwen-Max、Qwen-Plus、Qwen-Turbo | 相容 OpenAI 格式 |
|
||||
| **智譜 GLM** | GLM-4、GLM-4-Flash | 國產大模型 |
|
||||
| **xAI** | Grok-3、Grok-3-mini | xAI 出品 |
|
||||
| **OpenAI 相容** | 任意模型 | 適配所有相容 OpenAI 格式的第三方服務 |
|
||||
|
||||
## 新增服務供應商
|
||||
|
||||
### 基本步驟
|
||||
|
||||
1. 進入 **設定 → 服務供應商**
|
||||
2. 點擊左下角的 **+** 按鈕
|
||||
3. 填寫以下資訊:
|
||||
- **名稱** — 自訂名稱,用於在介面中區分不同服務供應商
|
||||
- **類型** — 選擇對應的服務供應商類型(如 OpenAI、Anthropic 等)
|
||||
- **圖示** — 可選,為服務供應商選擇一個顯示圖示
|
||||
4. 點擊確認建立
|
||||
|
||||
### 設定 API
|
||||
|
||||
建立服務供應商後,需要填寫 API 連線資訊:
|
||||
|
||||
#### API 金鑰
|
||||
|
||||
填入從服務供應商處取得的 API 金鑰。例如 OpenAI 的金鑰格式為 `sk-...`。
|
||||
|
||||
::: tip 金鑰安全
|
||||
BoosApi 使用 AES-256 加密儲存所有 API 金鑰,金鑰資料儲存在本機 `~/.boosapi/boosapi.db` 中,不會上傳到任何外部伺服器。
|
||||
:::
|
||||
|
||||
#### Base URL
|
||||
|
||||
API 的基礎位址。各服務供應商的官方位址:
|
||||
|
||||
| 服務供應商 | 官方 Base URL |
|
||||
|-----------|--------------|
|
||||
| OpenAI | `https://api.openai.com` |
|
||||
| Anthropic | `https://api.anthropic.com` |
|
||||
| Google | `https://generativelanguage.googleapis.com` |
|
||||
| DeepSeek | `https://api.deepseek.com` |
|
||||
| 阿里雲通義 | `https://dashscope.aliyuncs.com/compatible-mode` |
|
||||
| 智譜 GLM | `https://open.bigmodel.cn` |
|
||||
| xAI | `https://api.x.ai` |
|
||||
|
||||
如果您使用第三方中繼服務或自建代理,將 Base URL 替換為中繼位址即可。
|
||||
|
||||
#### API 路徑
|
||||
|
||||
API 請求的路徑部分,預設為 `/v1/chat/completions`。一般情況下無需修改,除非服務供應商使用了非標準路徑。
|
||||
|
||||
## 從網頁連結匯入服務供應商
|
||||
|
||||
服務供應商官網、中繼服務後台、私有模型平台或本機閘道頁面,可以提供一個 **在 BoosApi 中開啟** 的連結。使用者點擊後,瀏覽器會喚起 BoosApi 桌面端,BoosApi 會進入 **設定 → 服務供應商**,顯示確認視窗,並在使用者確認後匯入服務供應商設定。
|
||||
|
||||
### 使用流程
|
||||
|
||||
1. 安裝並開啟支援服務供應商連結匯入的 BoosApi 版本。
|
||||
2. 在瀏覽器中點擊服務頁面提供的 **在 BoosApi 中開啟** 連結。
|
||||
3. 在 BoosApi 確認視窗中檢查服務供應商名稱、Base URL、服務供應商類型和 API Key 前綴。
|
||||
4. 確認後,BoosApi 會按 **Base URL + 類型** 重用既有服務供應商;如果不存在則建立新服務供應商,並在金鑰不存在時追加 API Key。
|
||||
|
||||
BoosApi 不會自動驗證 API Key,也不會自動同步模型清單。匯入後可點擊 **取得模型**,或手動新增模型 ID。
|
||||
|
||||
### 連結格式
|
||||
|
||||
```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` | 是 | 服務供應商顯示名稱,例如 `OpenAI`、`我的中繼服務` |
|
||||
| `baseurl` | 是 | 服務供應商 Base URL,需 URL 編碼;僅允許 `http` / `https`,不允許 query 或 hash |
|
||||
| `apikey` | 是 | 要儲存到 BoosApi 的 API Key;確認視窗只顯示前綴,不顯示完整金鑰 |
|
||||
| `type` | 是 | 服務供應商類型;可選值:`openai`、`openai_responses`、`anthropic`、`gemini`、`custom` |
|
||||
|
||||
`baseurl` 支援 BoosApi 既有的強制後綴語義,例如 `https://example.com!`。透過連結匯入時不會設定 `api_path`,BoosApi 會繼續按所選服務供應商類型使用預設路徑邏輯。
|
||||
|
||||
### 官網/後台頁面如何設定連結
|
||||
|
||||
對所有動態值使用 `encodeURIComponent` 或 `URLSearchParams` 進行編碼:
|
||||
|
||||
```html
|
||||
<a id="open-boosapi" href="#">在 BoosApi 中開啟</a>
|
||||
|
||||
<script>
|
||||
const provider = {
|
||||
name: '我的中繼服務',
|
||||
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 Key,建議只在使用者登入後,且明確選擇或建立金鑰後再產生此連結。
|
||||
|
||||
::: warning 安全提醒
|
||||
URL 中攜帶 API Key 可能被瀏覽器歷史、日誌、瀏覽器擴充套件或統計腳本記錄。不要把真實金鑰寫在公開頁面、靜態 HTML 或第三方跳轉連結中;建議在使用者私有後台頁面中按需產生,並讓使用者主動點擊。
|
||||
:::
|
||||
|
||||
::: tip 測試提示
|
||||
`boosapi://` 是桌面應用註冊到系統的自訂協定。僅執行官網或 Vite 開發服務不會註冊協定;如果點擊後沒有喚起 BoosApi,請先安裝或重新建置最新 BoosApi 桌面端。
|
||||
:::
|
||||
|
||||
## 從 CC Switch 匯入
|
||||
|
||||
在 設定 -> 服務供應商 中,BoosApi 可以掃描 CC Switch 的服務供應商設定。你可以逐條檢查候選項,選擇可匯入記錄後,把服務供應商、Base URL、API Key 和模型列表匯入 BoosApi。OAuth-only 或沒有可復用金鑰的記錄會被跳過並顯示原因。
|
||||
|
||||
## 進階模型請求體
|
||||
|
||||
每個模型都可以設定 extra_body,這是一個 JSON 物件,會平鋪追加到 OpenAI 相容 Chat Completions 請求體中。它適合 enable_thinking 等廠商私有參數。BoosApi 會校驗 JSON,並阻止覆蓋 model、messages、stream、tools 和基礎採樣欄位。
|
||||
|
||||
## 多金鑰輪詢
|
||||
|
||||
BoosApi 支援為同一個服務供應商設定多個 API 金鑰,實現自動輪換:
|
||||
|
||||
### 新增多個金鑰
|
||||
|
||||
在服務供應商設定頁面的 API 金鑰區域,可以新增多個金鑰。所有金鑰共享同一個 Base URL 和設定。
|
||||
|
||||
### 自動輪換機制
|
||||
|
||||
當設定了多個金鑰時,BoosApi 會在每次請求時自動輪換使用不同的金鑰。
|
||||
|
||||
### 限流分散
|
||||
|
||||
多金鑰輪詢的一個重要用途是分散 API 限流。每個金鑰有獨立的速率配額,使用多個金鑰可以有效提高整體吞吐量,降低單個金鑰觸發限流的概率。
|
||||
|
||||
::: tip 適用場景
|
||||
如果您有團隊共享的多個 API 金鑰,或者單個金鑰的速率限制無法滿足需求,多金鑰輪詢是一個簡單高效的解決方案。
|
||||
:::
|
||||
|
||||
## 模型管理
|
||||
|
||||
### 遠端拉取模型清單
|
||||
|
||||
點擊 **取得模型** 按鈕,BoosApi 會呼叫服務供應商的模型清單 API,自動拉取目前可用的全部模型。拉取後的模型會顯示在清單中供您選擇。
|
||||
|
||||
### 手動新增模型
|
||||
|
||||
如果服務供應商的模型清單 API 不完整或您需要新增特定模型,可以手動輸入模型 ID 進行新增。例如:
|
||||
|
||||
- `gpt-4o`
|
||||
- `claude-sonnet-4-20250514`
|
||||
- `gemini-2.5-pro`
|
||||
|
||||
### 模型參數
|
||||
|
||||
每個模型可以獨立設定以下預設參數:
|
||||
|
||||
| 參數 | 說明 | 典型範圍 |
|
||||
|-----|------|---------|
|
||||
| **溫度 (Temperature)** | 控制輸出的隨機性,值越高越有創意 | 0 – 2 |
|
||||
| **最大 Token (Max Tokens)** | 限制單次回覆的最大長度 | 1 – 模型上限 |
|
||||
| **Top-P** | 核採樣概率閾值,與溫度配合使用 | 0 – 1 |
|
||||
| **頻率懲罰 (Frequency Penalty)** | 降低已出現詞彙的重複概率 | -2 – 2 |
|
||||
| **存在懲罰 (Presence Penalty)** | 鼓勵模型討論新話題 | -2 – 2 |
|
||||
|
||||
::: info 參數建議
|
||||
對於日常對話,保持預設參數即可。如果需要更有創意的輸出,可以適當提高溫度;需要精確回答時,降低溫度到 0–0.3。
|
||||
:::
|
||||
|
||||
## 自訂/本機端點
|
||||
|
||||
BoosApi 支援連接任何相容 OpenAI API 格式的服務,以下是常見場景的設定範例。
|
||||
|
||||
### Ollama
|
||||
|
||||
[Ollama](https://ollama.ai/) 可以在本機執行開源大模型。設定方法:
|
||||
|
||||
1. 新增服務供應商,類型選擇 **OpenAI**
|
||||
2. Base URL 填寫 `http://localhost:11434`
|
||||
3. API 金鑰留空或填寫任意值
|
||||
4. 點擊 **取得模型** 拉取本機已下載的模型
|
||||
|
||||
::: warning 注意
|
||||
請確保 Ollama 服務已啟動。部分 Ollama 版本可能需要設定 `OLLAMA_ORIGINS=*` 環境變數以允許跨域請求。
|
||||
:::
|
||||
|
||||
### vLLM / TGI
|
||||
|
||||
如果您使用 vLLM 或 Text Generation Inference 部署了自己的模型:
|
||||
|
||||
1. 新增服務供應商,類型選擇 **OpenAI**
|
||||
2. Base URL 填寫您的部署位址,如 `http://your-server:8000`
|
||||
3. API 金鑰根據您的服務設定填寫
|
||||
4. 手動新增您部署的模型 ID
|
||||
|
||||
### API 中繼服務
|
||||
|
||||
很多第三方提供 OpenAI 相容的 API 中繼服務,設定方法相同:
|
||||
|
||||
1. 新增服務供應商,類型選擇 **OpenAI**
|
||||
2. Base URL 填寫中繼服務提供的位址
|
||||
3. API 金鑰填寫中繼服務提供的金鑰
|
||||
4. 取得或手動新增模型
|
||||
|
||||
## 預設模型設定
|
||||
|
||||
BoosApi 支援為不同用途設定預設模型,在 **設定 → 預設模型** 中設定:
|
||||
|
||||
### 全域預設助手模型
|
||||
|
||||
新建對話時自動使用的模型。建議選擇您最常用的模型,例如 `gpt-4o` 或 `claude-sonnet-4-20250514`。
|
||||
|
||||
### 預設話題命名模型
|
||||
|
||||
用於自動為對話生成標題的模型。這個模型不需要很強大,選擇一個回應快且便宜的模型即可,如 `gpt-4o-mini` 或 `gemini-2.0-flash`。
|
||||
|
||||
::: tip
|
||||
預設模型設定是可選的。如果不設定,每次新建對話時需要手動選擇模型。
|
||||
:::
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — 開源 AI 桌面客戶端與閘道"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi 是免費開源的 AI 桌面客戶端,支援多模型對話、Agent、MCP、ChatGPT/Cherry Studio/Kelivo 匯入、本機知識庫、S3/WebDAV 備份和內建 AI 閘道。"
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "你的 AI 桌面工作台"
|
||||
tagline: "多模型對話、Agent、MCP 工具、API 閘道、資料匯入、知識庫和備份整合在一個本機優先客戶端裡"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "快速開始"
|
||||
link: /zh-tw/guide/getting-started
|
||||
- theme: alt
|
||||
text: "下載"
|
||||
link: /zh-tw/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "多模型對話"
|
||||
details: "OpenAI、Claude、Gemini、DeepSeek、Qwen 和相容 API,支援金鑰輪詢、分支、壓縮和多模型回答。"
|
||||
- icon: api
|
||||
title: "服務供應商快速設定"
|
||||
details: "boosapi:// 連結、CC Switch 匯入、自訂請求頭、代理、OpenAI Responses 和模型 extra_body。"
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "檔案編輯、命令執行和程式碼分析,帶權限分級、工作目錄沙箱、審批 UI 和成本統計。"
|
||||
- icon: edit
|
||||
title: "富內容渲染"
|
||||
details: "Markdown、LaTeX、Mermaid、D2、Monaco 程式碼區塊、HTML 片段和 Artifact 預覽。"
|
||||
- icon: search
|
||||
title: "搜尋與 RAG"
|
||||
details: "帶引用的網路搜尋、查詢生成、本機 sqlite-vec 知識庫、重排設定和檢索回饋。"
|
||||
- icon: cloud-server
|
||||
title: "API 閘道"
|
||||
details: "本機 OpenAI 相容、OpenAI Responses、Claude 和 Gemini 介面,服務 Claude Code、Codex、OpenCode 等工具。"
|
||||
- icon: book
|
||||
title: "資料匯入"
|
||||
details: "匯入 ChatGPT 官方匯出、Cherry Studio 與 Kelivo 備份,處理重複並可遷移服務供應商。"
|
||||
- icon: lock
|
||||
title: "備份與安全"
|
||||
details: "AES-256 本機加密、雙目錄資料布局、本機/WebDAV/S3 備份和還原流程。"
|
||||
- icon: desktop
|
||||
title: "桌面體驗"
|
||||
details: "11 種界面語言、系統匣、置頂、全域快捷鍵、開機自啟、代理和自動更新檢查。"
|
||||
---
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<DownloadHero />
|
||||
@@ -0,0 +1,52 @@
|
||||
# 功能特性
|
||||
|
||||
BoosApi 是本地优先的 AI 桌面工作台。本页已按 v0.0.85 更新,覆盖近期服务商导入、第三方数据导入、MCP、HTML 渲染、备份和网关能力。
|
||||
|
||||
## 对话与模型
|
||||
|
||||
- **多服务商对话** — 连接 OpenAI、Claude、Gemini、DeepSeek、Qwen 以及任意 OpenAI 兼容端点,支持自定义 Base URL、API Path、请求头和代理规则。
|
||||
- **服务商快速导入** — 通过 boosapi:// 服务商链接和 CC Switch 配置导入,在用户确认后把服务商资料带入 BoosApi。
|
||||
- **模型管理** — 同步远程模型列表、管理分组、测试延迟,并配置能力标签、上下文长度、采样默认值、推理档位和模型级 extra_body。
|
||||
- **对话工作流** — 流式回复、思考块、消息多版本、对话分支、标题生成状态、长对话压缩和多模型并行回答。
|
||||
|
||||
## AI Agent
|
||||
|
||||
- **Agent 模式** — 让模型在受控桌面工作流中读取/编辑文件、执行命令并分析代码。
|
||||
- **权限控制** — 可选择标准审核、自动接受编辑或完全访问模式,同时保留工作目录沙箱检查。
|
||||
- **审批与成本面板** — 实时查看工具调用、记住允许决策,并跟踪每个 Agent 会话的 token 与成本。
|
||||
|
||||
## 内容渲染
|
||||
|
||||
- **Markdown 与数学公式** — 在流式对话中渲染 Markdown、代码高亮、表格、任务列表和 LaTeX 公式。
|
||||
- **代码、图表与 Artifact** — 内置 Monaco 代码块、Mermaid、D2 图表和 Artifact 面板,用于代码、Markdown 笔记、报告和预览。
|
||||
- **HTML 片段渲染** — 安全预览模型生成的 HTML 片段,并包含近期版本加入的流式渲染稳定性修复。
|
||||
|
||||
## 搜索与知识
|
||||
|
||||
- **联网搜索** — 接入 Tavily、智谱 WebSearch、Bocha 等搜索服务,支持引用来源和搜索查询生成。
|
||||
- **本地知识库** — 用 sqlite-vec 索引私有文档,配置检索/重排选项并查看检索反馈。
|
||||
- **上下文管理** — 把文件、搜索结果、知识片段、记忆和工具输出附加到对话上下文。
|
||||
|
||||
## 工具与扩展
|
||||
|
||||
- **MCP 协议** — 运行 stdio、SSE 或 StreamableHTTP 传输的 Model Context Protocol 服务器。
|
||||
- **内置工具** — 直接使用 @boosapi/fetch、文件搜索等内置 MCP 工具,无需额外安装独立服务器。
|
||||
- **工具循环上限** — 可配置 MCP 工具调用最大循环次数,并更好地恢复中断或卡住的工具会话。
|
||||
|
||||
## API 网关
|
||||
|
||||
- **本地网关** — 从桌面应用暴露 OpenAI Chat Completions、OpenAI Responses、Claude 原生和 Gemini 原生接口。
|
||||
- **访问与观测** — 本地管理网关密钥、SSL/TLS 证书、请求日志和用量统计。
|
||||
- **客户端模板** — 提供 Claude Code、Codex CLI、OpenCode、Gemini CLI 和自定义客户端的配置模板。
|
||||
|
||||
## 数据导入与备份
|
||||
|
||||
- **第三方导入** — 导入 ChatGPT 官方导出、Cherry Studio 备份和 Kelivo 备份,带预览统计、警告和重复处理。
|
||||
- **服务商与文件迁移** — Cherry Studio/Kelivo 导入可选择迁移关联服务商、API Key 和文件附件。
|
||||
- **备份** — 通过本地目录、WebDAV 或 S3 兼容存储进行备份与恢复。
|
||||
|
||||
## 桌面体验与安全
|
||||
|
||||
- **本地加密** — 应用状态位于 ~/.boosapi/,用户文件位于 ~/Documents/boosapi/,API Key 使用 AES-256 和本地主密钥保护。
|
||||
- **桌面集成** — 支持托盘、窗口置顶、全局快捷键、开机自启、代理设置和自动更新检查。
|
||||
- **11 种界面语言** — 可在简体中文、繁体中文、英语、日语、韩语、法语、德语、西班牙语、俄语、印地语和阿拉伯语之间切换。
|
||||
@@ -0,0 +1,204 @@
|
||||
# API 网关
|
||||
|
||||
## 什么是 API 网关?
|
||||
|
||||
BoosApi 内置了一个本地 API 网关服务器,可以将你在 BoosApi 中配置的 AI 服务商统一暴露为标准 API 接口。其他工具和客户端(如 Claude Code、Codex CLI、Cursor 等)可以通过这个网关访问你的所有模型,无需为每个工具分别配置 API 密钥。
|
||||
|
||||
网关支持以下兼容格式:
|
||||
|
||||
- **OpenAI 兼容** — `/v1/chat/completions`
|
||||
- **Claude 原生** — Anthropic API 格式
|
||||
- **Gemini 原生** — Google AI API 格式
|
||||
|
||||
::: tip 使用场景
|
||||
如果你已经在 BoosApi 中配置了多个服务商和密钥,API 网关可以让其他开发工具直接复用这些配置,省去重复配置的麻烦。同时,网关提供统一的用量统计和访问控制。
|
||||
:::
|
||||
|
||||
## 快速上手
|
||||
|
||||
### 启用网关
|
||||
|
||||
1. 进入 **设置 → API 网关**
|
||||
2. 开启网关开关
|
||||
3. 配置监听参数:
|
||||
- **端口** — 网关监听的端口号,默认 `8080`
|
||||
- **主机** — 监听地址,默认 `127.0.0.1`(仅本机访问)
|
||||
|
||||
::: warning 网络安全
|
||||
如果将主机设置为 `0.0.0.0`,网关将对所有网络接口开放。请确保你了解其安全风险,并配合 API 密钥和防火墙使用。
|
||||
:::
|
||||
|
||||
### 测试连通性
|
||||
|
||||
网关启动后,可以用 `curl` 快速验证:
|
||||
|
||||
```bash
|
||||
curl http://127.0.0.1:8080/v1/models \
|
||||
-H "Authorization: Bearer your-gateway-api-key"
|
||||
```
|
||||
|
||||
如果返回了模型列表,说明网关运行正常。
|
||||
|
||||
## API 密钥管理
|
||||
|
||||
网关使用独立的 API 密钥体系来控制访问权限。
|
||||
|
||||
### 生成新密钥
|
||||
|
||||
1. 在 **API 网关** 页面中找到 **密钥管理** 区域
|
||||
2. 点击 **生成密钥**
|
||||
3. 为密钥添加描述备注(如 "Claude Code 专用"、"团队共享")
|
||||
4. 复制并妥善保存生成的密钥
|
||||
|
||||
::: danger 密钥安全
|
||||
密钥仅在创建时完整显示一次。请立即复制保存,之后只能看到密钥前缀。
|
||||
:::
|
||||
|
||||
### 撤销 / 停用密钥
|
||||
|
||||
- **停用** — 暂时禁用密钥,可随时重新启用
|
||||
- **删除** — 永久撤销密钥,使用该密钥的所有客户端将立即失去访问权限
|
||||
|
||||
### 描述备注
|
||||
|
||||
为每个密钥添加描述可以帮助你管理多个客户端的访问。例如区分不同工具或团队成员使用的密钥。
|
||||
|
||||
## SSL/TLS
|
||||
|
||||
网关支持 HTTPS 加密通信,部分工具(如 Claude Code)要求使用 HTTPS 连接。
|
||||
|
||||
### 自动自签名证书
|
||||
|
||||
启用 SSL 后,BoosApi 会自动生成自签名证书,无需手动操作。证书文件存储在:
|
||||
|
||||
```
|
||||
~/.boosapi/ssl/
|
||||
├── cert.pem # 自签名证书
|
||||
└── key.pem # 私钥(Unix 系统权限 0600)
|
||||
```
|
||||
|
||||
### 自定义证书
|
||||
|
||||
如果你有自己的 SSL 证书(如 Let's Encrypt 签发的证书),可以在网关设置中指定证书和私钥的路径。
|
||||
|
||||
### 配置选项
|
||||
|
||||
| 选项 | 说明 |
|
||||
|------|------|
|
||||
| 启用 SSL | 是否开启 HTTPS |
|
||||
| SSL 端口 | HTTPS 监听端口 |
|
||||
| 证书路径 | cert.pem 文件路径 |
|
||||
| 私钥路径 | key.pem 文件路径 |
|
||||
| 强制 SSL | 是否将所有 HTTP 请求重定向到 HTTPS |
|
||||
|
||||
::: info 自签名证书信任
|
||||
使用自签名证书时,客户端可能会报告证书不受信任的警告。大部分 CLI 工具可以通过设置环境变量来跳过证书验证(见下方配置模板)。
|
||||
:::
|
||||
|
||||
## 用量统计
|
||||
|
||||
网关提供详细的用量统计面板,帮助你了解 API 的使用情况。
|
||||
|
||||
### 请求量面板
|
||||
|
||||
实时显示网关处理的请求总量、成功率和错误率。
|
||||
|
||||
### Token 用量
|
||||
|
||||
按不同维度查看 Token 消耗:
|
||||
|
||||
- **按密钥** — 每个 API 密钥使用了多少 Token
|
||||
- **按服务商** — 每个后端服务商处理了多少请求和 Token
|
||||
- **按日期** — 每日的 Token 使用趋势
|
||||
|
||||
::: tip
|
||||
通过用量统计,你可以了解哪个工具消耗最多资源,合理分配 API 配额。
|
||||
:::
|
||||
|
||||
## 请求日志
|
||||
|
||||
网关记录所有经过它的 API 请求,方便调试和审计。
|
||||
|
||||
每条日志包含以下信息:
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| 时间 | 请求的时间戳 |
|
||||
| 方法 | HTTP 方法(GET、POST 等) |
|
||||
| 路径 | 请求路径 |
|
||||
| 模型 | 请求使用的模型 |
|
||||
| 服务商 | 转发到的后端服务商 |
|
||||
| 状态码 | HTTP 响应状态码 |
|
||||
| Token | 输入/输出 Token 数量 |
|
||||
| 延迟 | 请求处理耗时 |
|
||||
|
||||
支持按时间范围、状态码、模型等条件过滤日志。
|
||||
|
||||
## 配置模板
|
||||
|
||||
BoosApi 内置了常见开发工具的配置模板,帮助你快速接入。以下是一些常用工具的配置方式:
|
||||
|
||||
### Claude Code CLI
|
||||
|
||||
```bash
|
||||
export ANTHROPIC_BASE_URL=https://127.0.0.1:8443
|
||||
export ANTHROPIC_API_KEY=your-gateway-api-key
|
||||
export NODE_TLS_REJECT_UNAUTHORIZED=0
|
||||
|
||||
claude
|
||||
```
|
||||
|
||||
::: tip
|
||||
`NODE_TLS_REJECT_UNAUTHORIZED=0` 用于跳过自签名证书验证。如果你使用了受信任的证书,可以移除此设置。
|
||||
:::
|
||||
|
||||
### OpenAI Codex CLI
|
||||
|
||||
```bash
|
||||
export OPENAI_BASE_URL=http://127.0.0.1:8080/v1
|
||||
export OPENAI_API_KEY=your-gateway-api-key
|
||||
|
||||
codex
|
||||
```
|
||||
|
||||
### OpenCode
|
||||
|
||||
```bash
|
||||
export OPENAI_BASE_URL=http://127.0.0.1:8080/v1
|
||||
export OPENAI_API_KEY=your-gateway-api-key
|
||||
|
||||
opencode
|
||||
```
|
||||
|
||||
### Gemini CLI
|
||||
|
||||
```bash
|
||||
export GEMINI_API_KEY=your-gateway-api-key
|
||||
export GEMINI_BASE_URL=http://127.0.0.1:8080
|
||||
|
||||
gemini
|
||||
```
|
||||
|
||||
### 自定义客户端
|
||||
|
||||
对于任何支持 OpenAI 兼容 API 的客户端,使用以下配置:
|
||||
|
||||
- **Base URL**: `http://127.0.0.1:8080/v1`
|
||||
- **API Key**: 你的网关 API 密钥
|
||||
- **模型**: 通过 `/v1/models` 接口查询可用模型
|
||||
|
||||
## 接入外部工具
|
||||
|
||||
除 CLI 工具外,许多图形化工具也支持自定义 API 端点。通用配置方式:
|
||||
|
||||
1. 在工具的设置中找到 API 配置或自定义端点选项
|
||||
2. 将 Base URL 设置为 BoosApi 网关地址
|
||||
3. 将 API Key 设置为网关密钥
|
||||
4. 保存后即可使用 BoosApi 配置的所有模型
|
||||
|
||||
::: tip 统一管理的优势
|
||||
通过 API 网关统一管理,你可以:
|
||||
- 在 BoosApi 中集中管理所有服务商密钥,其他工具只需一个网关密钥
|
||||
- 在用量统计中查看所有工具的使用情况
|
||||
- 利用多密钥轮询提高可靠性
|
||||
:::
|
||||
@@ -0,0 +1,212 @@
|
||||
# 快速开始
|
||||
|
||||
本指南将帮助你在几分钟内完成 BoosApi 的安装、配置和首次对话。
|
||||
|
||||
## 安装
|
||||
|
||||
前往 [下载页面](/zh/download) 获取最新安装包,选择与你系统匹配的版本。
|
||||
|
||||
### macOS
|
||||
|
||||
BoosApi 提供两种架构的 `.dmg` 安装包:
|
||||
|
||||
- **Apple Silicon**(M1/M2/M3/M4)— `BoosApi_x.x.x_aarch64.dmg`
|
||||
- **Intel** — `BoosApi_x.x.x_x64.dmg`
|
||||
|
||||
下载后双击 `.dmg` 文件,将 BoosApi 拖入「应用程序」文件夹即可。
|
||||
|
||||
::: warning macOS 安全提示
|
||||
由于 BoosApi 尚未进行 Apple 公证签名,首次打开时系统可能弹出以下提示:
|
||||
|
||||
- **"BoosApi 已损坏,无法打开"** 或 **"无法验证开发者"**
|
||||
|
||||
请在终端中执行以下命令后重新打开:
|
||||
|
||||
```bash
|
||||
xattr -cr /Applications/BoosApi.app
|
||||
```
|
||||
|
||||
该命令会移除系统添加的隔离属性,不会影响应用本身。
|
||||
:::
|
||||
|
||||
### Windows
|
||||
|
||||
- **x64** — `BoosApi_x.x.x_x64-setup.exe`
|
||||
- **ARM64** — `BoosApi_x.x.x_arm64-setup.exe`
|
||||
|
||||
双击安装程序并按照向导完成安装。系统要求 Windows 10(1803)或更高版本。
|
||||
|
||||
### Linux
|
||||
|
||||
根据你的发行版和架构选择:
|
||||
|
||||
| 格式 | 架构 | 适用场景 |
|
||||
|------|------|---------|
|
||||
| `.deb` | amd64 / arm64 | Debian、Ubuntu 及其衍生版 |
|
||||
| `.rpm` | x86_64 / aarch64 | Fedora、openSUSE 等 |
|
||||
| `.AppImage` | x86_64 / aarch64 | 任意发行版,无需安装 |
|
||||
|
||||
`.deb` 安装示例:
|
||||
|
||||
```bash
|
||||
sudo dpkg -i BoosApi_x.x.x_amd64.deb
|
||||
```
|
||||
|
||||
`.AppImage` 需要先赋予执行权限:
|
||||
|
||||
```bash
|
||||
chmod +x BoosApi_x.x.x_amd64.AppImage
|
||||
./BoosApi_x.x.x_amd64.AppImage
|
||||
```
|
||||
|
||||
## 首次配置
|
||||
|
||||
安装完成后,按照以下步骤完成初始配置。
|
||||
|
||||
### 1. 进入设置
|
||||
|
||||
启动 BoosApi 后,点击左侧边栏底部的齿轮图标进入 **设置** 页面。
|
||||
|
||||
### 2. 添加服务商
|
||||
|
||||
进入 **设置 → 服务商**,点击左下角的 **+** 按钮添加一个服务商。以 OpenAI 为例:
|
||||
|
||||
1. 输入服务商名称,如 `OpenAI`
|
||||
2. 选择服务商类型为 **OpenAI**
|
||||
3. 填入你的 **API Key**
|
||||
4. **Base URL** 保持默认 `https://api.openai.com`,若使用第三方中转服务则填写其地址
|
||||
|
||||
::: tip 获取 API Key
|
||||
前往 [OpenAI API Keys](https://platform.openai.com/api-keys) 页面创建密钥。其他服务商的密钥获取方式请参考各自官方文档。
|
||||
:::
|
||||
|
||||
### 3. 获取模型
|
||||
|
||||
服务商添加完成后,点击 **获取模型** 按钮,BoosApi 会自动从 API 拉取可用模型列表。你也可以在模型 ID 输入框中手动添加模型。
|
||||
|
||||
### 4. 配置默认模型
|
||||
|
||||
进入 **设置 → 默认模型**,选择你最常用的模型作为默认助手模型和话题命名模型。新建对话时将自动使用默认模型。
|
||||
|
||||
## 开始第一次对话
|
||||
|
||||
### 新建对话
|
||||
|
||||
点击左侧边栏顶部的 **新建对话** 按钮,或使用快捷键 `Cmd/Ctrl+N`。
|
||||
|
||||
### 选择模型
|
||||
|
||||
在对话顶部的模型选择器中选取你想使用的模型。如果你已经设置了默认模型,会自动填充。
|
||||
|
||||
### 发送消息
|
||||
|
||||
在底部输入框中输入你的问题,按 `Enter` 发送。BoosApi 使用流式输出,你会看到模型的回答逐字呈现。
|
||||
|
||||
::: info 关于 Thinking 块
|
||||
部分模型(如 Claude、DeepSeek R1)支持输出推理过程。当模型包含 thinking 块时,BoosApi 会将其折叠显示,点击即可展开查看完整推理链。
|
||||
:::
|
||||
|
||||
## 核心概念
|
||||
|
||||
### 对话分支
|
||||
|
||||
BoosApi 支持对话分支功能。当你在某条消息基础上重新生成或编辑提问时,系统会创建一个新的分支而非覆盖原内容。你可以随时在不同分支之间切换,对比不同的对话走向。
|
||||
|
||||
### 消息版本
|
||||
|
||||
每条消息可以拥有多个版本。重新生成助手回复时,新版本会自动添加到同一消息位置。通过消息旁的左右箭头可以在版本间快速切换。
|
||||
|
||||
### 上下文挂载
|
||||
|
||||
在对话中,你可以通过附件功能挂载额外的上下文信息:
|
||||
|
||||
- **文件** — 上传图片或文档作为对话上下文
|
||||
- **搜索** — 关联本地知识库搜索结果
|
||||
- **工具** — 启用 MCP 工具让模型调用外部能力
|
||||
|
||||
## 快捷键
|
||||
|
||||
BoosApi 内置了一套常用快捷键,提升操作效率:
|
||||
|
||||
| 快捷键 | 功能 |
|
||||
|-------|------|
|
||||
| `CmdOrCtrl+Shift+A` | 显示/隐藏当前窗口 |
|
||||
| `CmdOrCtrl+Shift+Z` | 显示/隐藏所有窗口 |
|
||||
| `Cmd/Ctrl+N` | 新建对话 |
|
||||
| `Cmd/Ctrl+,` | 打开设置 |
|
||||
| `Cmd/Ctrl+F` | 搜索对话 |
|
||||
|
||||
::: tip 自定义快捷键
|
||||
以上快捷键均可在 **设置 → 快捷键** 中自定义修改,包括全局快捷键和应用内快捷键。
|
||||
:::
|
||||
|
||||
## 桌面设置
|
||||
|
||||
在 **设置** 中可以调整各项桌面偏好:
|
||||
|
||||
### 外观
|
||||
|
||||
- **主题** — 支持深色、浅色和跟随系统三种模式
|
||||
- **主题色** — 从 12 种预设色中选择,也支持自定义颜色
|
||||
- **字体** — 可调整字体大小(12–20px)、字重和字体家族
|
||||
|
||||
### 语言
|
||||
|
||||
支持简体中文和英文界面切换,在 **设置 → 通用** 中修改。
|
||||
|
||||
### 系统行为
|
||||
|
||||
- **系统托盘** — 关闭窗口后保持在系统托盘运行
|
||||
- **开机自启** — 设置系统登录时自动启动 BoosApi
|
||||
- **窗口置顶** — 将 BoosApi 窗口始终置于最前
|
||||
|
||||
### 代理配置
|
||||
|
||||
如果你需要通过代理访问 API,在 **设置 → 代理** 中配置:
|
||||
|
||||
- **代理类型** — 支持 HTTP 和 SOCKS5
|
||||
- **代理地址** — 代理服务器的 IP 或域名
|
||||
- **代理端口** — 默认为 7890
|
||||
|
||||
配置完成后可以点击 **测试** 按钮验证连通性,会显示延迟结果。
|
||||
|
||||
## 数据与备份
|
||||
|
||||
### 数据目录
|
||||
|
||||
BoosApi 使用两个目录分别存储不同类型的数据:
|
||||
|
||||
| 目录 | 用途 |
|
||||
|------|------|
|
||||
| `~/.boosapi/` | 应用状态:数据库、加密密钥、向量数据库、SSL 证书 |
|
||||
| `~/Documents/boosapi/` | 用户文件:图片、文档附件、备份 |
|
||||
|
||||
### 自动备份
|
||||
|
||||
在 **设置 → 备份** 中开启自动备份。支持三种备份目标:
|
||||
|
||||
- **本地** — 默认保存到 `~/Documents/boosapi/backups/`
|
||||
- **WebDAV** — 同步到支持 WebDAV 的网盘(如坚果云)
|
||||
|
||||
可配置备份间隔(小时)和保留的最大备份数量。
|
||||
|
||||
### 手动备份与恢复
|
||||
|
||||
随时可以通过 **设置 → 备份** 手动触发完整备份。恢复时选择备份文件即可还原所有数据。
|
||||
|
||||
### 对话导出
|
||||
|
||||
在对话页面中,可以将当前对话导出为多种格式:
|
||||
|
||||
- **PNG** — 长图截图,适合分享
|
||||
- **Markdown** — 结构化文本,方便二次编辑
|
||||
- **纯文本** — 简洁格式
|
||||
- **JSON** — 包含完整元数据,方便程序处理
|
||||
|
||||
## 下一步
|
||||
|
||||
基础配置完成后,你可以继续探索 BoosApi 的进阶功能:
|
||||
|
||||
- [配置服务商](./providers) — 多服务商、多密钥、自定义端点
|
||||
- [MCP 服务器](./mcp) — 连接外部工具扩展 AI 能力
|
||||
- [API 网关](./gateway) — 将 BoosApi 作为 API 代理服务器
|
||||
@@ -0,0 +1,199 @@
|
||||
# MCP 服务器
|
||||
|
||||
## 什么是 MCP?
|
||||
|
||||
[Model Context Protocol(MCP)](https://modelcontextprotocol.io/)是一种开放协议,让 AI 模型能够与外部工具和数据源交互。通过 MCP,模型可以在对话中调用文件操作、网页抓取、数据库查询等各种工具,大幅扩展 AI 的实际能力。
|
||||
|
||||
BoosApi 内置了 MCP 客户端,你可以连接各种 MCP 服务器来为 AI 对话增加工具调用能力。
|
||||
|
||||
## 传输协议
|
||||
|
||||
BoosApi 支持三种 MCP 传输协议,适用于不同的部署场景:
|
||||
|
||||
| 协议 | 连接方式 | 适用场景 | 配置参数 |
|
||||
|------|---------|---------|---------|
|
||||
| **Stdio** | 本地子进程 | 通过 `npx`、`uvx`、自定义命令启动的本地工具 | `command` + `args` |
|
||||
| **SSE** | Server-Sent Events | 远程托管的 MCP 服务器 | `url` |
|
||||
| **StreamableHTTP** | HTTP 流式传输 | 远程 HTTP 服务器,支持双向流 | `url` |
|
||||
|
||||
::: info Stdio vs 远程
|
||||
大部分 MCP 服务器以 Stdio 模式运行——BoosApi 在本地启动一个进程并通过标准输入/输出通信。如果你连接的是远程部署的服务器,则使用 SSE 或 StreamableHTTP 协议。
|
||||
:::
|
||||
|
||||
## 添加 MCP 服务器
|
||||
|
||||
### 表单创建
|
||||
|
||||
1. 进入 **设置 → MCP 服务器**
|
||||
2. 点击 **添加 MCP 服务器**
|
||||
3. 填写基本信息:
|
||||
- **名称** — 为服务器取一个易识别的名称
|
||||
- **传输协议** — 选择 Stdio、SSE 或 StreamableHTTP
|
||||
4. 根据所选协议填写相应配置:
|
||||
- **Stdio**:填写启动命令(如 `npx`、`uvx`)和参数
|
||||
- **SSE / StreamableHTTP**:填写服务器 URL
|
||||
5. 保存后 BoosApi 会自动连接并获取可用工具列表
|
||||
|
||||
### JSON 导入
|
||||
|
||||
如果你有现成的 MCP 配置(如从其他工具导出),可以直接粘贴 JSON 快速导入。BoosApi 支持标准的 `mcpServers` 配置格式。
|
||||
|
||||
#### Stdio 协议格式
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"my-tool": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@some/mcp-server"],
|
||||
"env": {
|
||||
"API_KEY": "your-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### SSE 协议格式
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-server": {
|
||||
"type": "sse",
|
||||
"url": "https://example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### StreamableHTTP 协议格式
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"http-server": {
|
||||
"type": "streamablehttp",
|
||||
"url": "https://example.com/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
::: tip 批量导入
|
||||
你可以在一个 JSON 中包含多个服务器,BoosApi 会一次性全部导入。
|
||||
:::
|
||||
|
||||
## 配置示例
|
||||
|
||||
以下是一些常用 MCP 服务器的配置示例。
|
||||
|
||||
### 网页抓取 — mcp-server-fetch
|
||||
|
||||
使用 `uvx` 启动网页抓取工具,让 AI 能够读取网页内容:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 文件系统操作 — filesystem server
|
||||
|
||||
使用 `npx` 启动文件系统服务器,允许 AI 读写指定目录的文件:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"filesystem": {
|
||||
"command": "npx",
|
||||
"args": [
|
||||
"-y",
|
||||
"@modelcontextprotocol/server-filesystem",
|
||||
"/Users/你的用户名/Documents"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
::: warning 安全提示
|
||||
文件系统服务器会授予 AI 对指定目录的读写权限。请只暴露必要的目录路径,避免将根目录或敏感目录暴露给模型。
|
||||
:::
|
||||
|
||||
### 远程 SSE 服务器
|
||||
|
||||
连接远程部署的 MCP 服务器:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-tools": {
|
||||
"type": "sse",
|
||||
"url": "https://mcp.example.com/sse"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 自定义 Stdio 服务器(带环境变量)
|
||||
|
||||
运行自定义的 MCP 服务器,通过环境变量传递配置:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"custom-tool": {
|
||||
"command": "python",
|
||||
"args": ["/path/to/your/server.py"],
|
||||
"env": {
|
||||
"DATABASE_URL": "postgres://localhost:5432/mydb",
|
||||
"API_TOKEN": "your-token"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 内置工具
|
||||
|
||||
BoosApi 开箱即用地提供了一些内置 MCP 工具服务器,无需额外安装:
|
||||
|
||||
### @boosapi/fetch — 网页抓取
|
||||
|
||||
| 工具 | 说明 |
|
||||
|------|------|
|
||||
| `fetch_url` | 抓取指定 URL 的页面内容,提取文本 |
|
||||
| `fetch_markdown` | 抓取指定 URL 并转换为 Markdown 格式 |
|
||||
|
||||
### @boosapi/search-file — 文件操作
|
||||
|
||||
| 工具 | 说明 |
|
||||
|------|------|
|
||||
| `read_file` | 读取指定路径的文件内容 |
|
||||
| `list_directory` | 列出指定目录下的文件和文件夹 |
|
||||
| `search_files` | 按模式搜索匹配的文件 |
|
||||
|
||||
::: tip
|
||||
内置工具服务器在 MCP 服务器列表中默认显示,可以直接在对话中启用使用,无需任何额外配置。
|
||||
:::
|
||||
|
||||
## 工具循环上限
|
||||
|
||||
在 设置 -> 对话 中,MCP 工具调用最大轮次 用于限制单次回复中模型连续调用工具的轮数。较低数值可减少耗时和成本,较高数值适合更长的自动化工具流程。
|
||||
|
||||
## 工具执行面板
|
||||
|
||||
当模型在对话中调用 MCP 工具时,BoosApi 会在消息中显示工具执行面板,其中包含:
|
||||
|
||||
- **工具名称** — 被调用的工具和所属服务器
|
||||
- **输入参数** — 模型传给工具的参数
|
||||
- **执行状态** — 等待确认、执行中、已完成或失败
|
||||
- **返回结果** — 工具执行后返回的数据
|
||||
|
||||
点击面板可以展开查看完整的输入和输出信息,方便调试和了解 AI 的工具使用行为。
|
||||
@@ -0,0 +1,243 @@
|
||||
# 配置服务商
|
||||
|
||||
BoosApi 支持接入多种 AI 服务商,你可以同时配置多个服务商并在对话中自由切换。
|
||||
|
||||
## 支持的服务商
|
||||
|
||||
BoosApi 内置以下服务商类型,并支持任何兼容 OpenAI API 格式的自定义端点:
|
||||
|
||||
| 服务商 | 代表模型 | 说明 |
|
||||
|-------|---------|------|
|
||||
| **OpenAI** | GPT-4o、GPT-4、o3、o4-mini | 最广泛支持的 API 格式 |
|
||||
| **Anthropic** | Claude 4 Sonnet/Opus、Claude 3.5 Sonnet | 原生 Claude API |
|
||||
| **Google** | Gemini 2.5 Pro/Flash、Gemini 2.0 | Google AI Studio 或 Vertex |
|
||||
| **DeepSeek** | DeepSeek-V3、DeepSeek-R1 | 高性价比推理模型 |
|
||||
| **阿里云通义千问** | Qwen-Max、Qwen-Plus、Qwen-Turbo | 兼容 OpenAI 格式 |
|
||||
| **智谱 GLM** | GLM-4、GLM-4-Flash | 国产大模型 |
|
||||
| **xAI** | Grok-3、Grok-3-mini | xAI 出品 |
|
||||
| **OpenAI 兼容** | 任意模型 | 适配所有兼容 OpenAI 格式的第三方服务 |
|
||||
|
||||
## 添加服务商
|
||||
|
||||
### 基本步骤
|
||||
|
||||
1. 进入 **设置 → 服务商**
|
||||
2. 点击左下角的 **+** 按钮
|
||||
3. 填写以下信息:
|
||||
- **名称** — 自定义名称,用于在界面中区分不同服务商
|
||||
- **类型** — 选择对应的服务商类型(如 OpenAI、Anthropic 等)
|
||||
- **图标** — 可选,为服务商选择一个显示图标
|
||||
4. 点击确认创建
|
||||
|
||||
### 配置 API
|
||||
|
||||
创建服务商后,需要填写 API 连接信息:
|
||||
|
||||
#### API 密钥
|
||||
|
||||
填入从服务商处获取的 API Key。例如 OpenAI 的密钥格式为 `sk-...`。
|
||||
|
||||
::: tip 密钥安全
|
||||
BoosApi 使用 AES-256 加密存储所有 API 密钥,密钥数据保存在本地 `~/.boosapi/boosapi.db` 中,不会上传到任何外部服务器。
|
||||
:::
|
||||
|
||||
#### Base URL
|
||||
|
||||
API 的基础地址。各服务商的官方地址:
|
||||
|
||||
| 服务商 | 官方 Base URL |
|
||||
|-------|--------------|
|
||||
| OpenAI | `https://api.openai.com` |
|
||||
| Anthropic | `https://api.anthropic.com` |
|
||||
| Google | `https://generativelanguage.googleapis.com` |
|
||||
| DeepSeek | `https://api.deepseek.com` |
|
||||
| 阿里云通义 | `https://dashscope.aliyuncs.com/compatible-mode` |
|
||||
| 智谱 GLM | `https://open.bigmodel.cn` |
|
||||
| xAI | `https://api.x.ai` |
|
||||
|
||||
如果你使用第三方中转服务或自建代理,将 Base URL 替换为中转地址即可。
|
||||
|
||||
#### API 路径
|
||||
|
||||
API 请求的路径部分,默认为 `/v1/chat/completions`。一般情况下无需修改,除非服务商使用了非标准路径。
|
||||
|
||||
## 从网页链接导入服务商
|
||||
|
||||
服务商官网、中转服务后台、私有模型平台或本地网关页面,可以提供一个 **在 BoosApi 中打开** 的链接。用户点击后,浏览器会拉起 BoosApi 桌面端,BoosApi 会进入 **设置 → 服务商**,弹出确认框,并在用户确认后导入服务商配置。
|
||||
|
||||
### 用户使用流程
|
||||
|
||||
1. 安装并打开支持服务商链接导入的 BoosApi 版本。
|
||||
2. 在浏览器中点击服务商页面提供的 **在 BoosApi 中打开** 链接。
|
||||
3. 在 BoosApi 确认框中检查服务商名称、Base URL、服务商类型和 API Key 前缀。
|
||||
4. 点击确认后,BoosApi 会按 **Base URL + 类型** 复用已有服务商;如果不存在则新建服务商,并在密钥不存在时追加 API Key。
|
||||
|
||||
BoosApi 不会自动验证 API Key,也不会自动同步模型列表。导入后你可以点击 **获取模型**,或手动添加模型 ID。
|
||||
|
||||
### 链接格式
|
||||
|
||||
```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` | 是 | 服务商显示名称,例如 `OpenAI`、`我的中转服务` |
|
||||
| `baseurl` | 是 | 服务商 Base URL,需要 URL 编码;仅允许 `http` / `https`,不允许 query 或 hash |
|
||||
| `apikey` | 是 | 要保存到 BoosApi 的 API Key;确认框只展示前缀,不展示完整密钥 |
|
||||
| `type` | 是 | 服务商类型;可选值:`openai`、`openai_responses`、`anthropic`、`gemini`、`custom` |
|
||||
|
||||
`baseurl` 支持 BoosApi 既有的强制后缀语义,例如 `https://example.com!`。通过链接导入时不会设置 `api_path`,BoosApi 会继续按所选服务商类型使用默认路径逻辑。
|
||||
|
||||
### 官网/后台页面如何配置链接
|
||||
|
||||
对所有动态值使用 `encodeURIComponent` 或 `URLSearchParams` 进行编码:
|
||||
|
||||
```html
|
||||
<a id="open-boosapi" href="#">在 BoosApi 中打开</a>
|
||||
|
||||
<script>
|
||||
const provider = {
|
||||
name: '我的中转服务',
|
||||
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 Key,建议只在用户登录后、并且明确选择或创建密钥后再生成这个链接。
|
||||
|
||||
::: warning 安全提醒
|
||||
URL 中携带 API Key 可能被浏览器历史、日志、浏览器扩展或统计脚本记录。不要把真实密钥写在公开页面、静态 HTML 或第三方跳转链接中;推荐在用户私有后台页面中按需生成,并让用户主动点击。
|
||||
:::
|
||||
|
||||
::: tip 测试提示
|
||||
`boosapi://` 是桌面应用注册到系统的自定义协议。仅运行官网或 Vite 开发服务不会注册协议;如果点击后没有拉起 BoosApi,请先安装或重新构建最新 BoosApi 桌面端。
|
||||
:::
|
||||
|
||||
## 从 CC Switch 导入
|
||||
|
||||
在 设置 -> 服务商 中,BoosApi 可以扫描 CC Switch 的服务商配置。你可以逐条检查候选项,选择可导入记录后,把服务商、Base URL、API Key 和模型列表导入 BoosApi。OAuth-only 或没有可复用密钥的记录会被跳过并显示原因。
|
||||
|
||||
## 高级模型请求体
|
||||
|
||||
每个模型都可以配置 extra_body,这是一个 JSON 对象,会平铺追加到 OpenAI 兼容 Chat Completions 请求体中。它适合 enable_thinking 等厂商私有参数。BoosApi 会校验 JSON,并阻止覆盖 model、messages、stream、tools 和基础采样字段。
|
||||
|
||||
## 多密钥轮询
|
||||
|
||||
BoosApi 支持为同一个服务商配置多个 API 密钥,实现自动轮换:
|
||||
|
||||
### 添加多个密钥
|
||||
|
||||
在服务商配置页面的 API 密钥区域,可以添加多个密钥。所有密钥共享同一个 Base URL 和配置。
|
||||
|
||||
### 自动轮换机制
|
||||
|
||||
当配置了多个密钥时,BoosApi 会在每次请求时自动轮换使用不同的密钥。
|
||||
|
||||
### 限流分散
|
||||
|
||||
多密钥轮询的一个重要用途是分散 API 限流。每个密钥有独立的速率配额,使用多个密钥可以有效提高整体吞吐量,降低单个密钥触发限流的概率。
|
||||
|
||||
::: tip 适用场景
|
||||
如果你有团队共享的多个 API 密钥,或者单个密钥的速率限制无法满足需求,多密钥轮询是一个简单高效的解决方案。
|
||||
:::
|
||||
|
||||
## 模型管理
|
||||
|
||||
### 远程拉取模型列表
|
||||
|
||||
点击 **获取模型** 按钮,BoosApi 会调用服务商的模型列表 API,自动拉取当前可用的全部模型。拉取后的模型会显示在列表中供你选择。
|
||||
|
||||
### 手动添加模型
|
||||
|
||||
如果服务商的模型列表 API 不完整或你需要添加特定模型,可以手动输入模型 ID 进行添加。例如:
|
||||
|
||||
- `gpt-4o`
|
||||
- `claude-sonnet-4-20250514`
|
||||
- `gemini-2.5-pro`
|
||||
|
||||
### 模型参数
|
||||
|
||||
每个模型可以独立配置以下默认参数:
|
||||
|
||||
| 参数 | 说明 | 典型范围 |
|
||||
|-----|------|---------|
|
||||
| **温度 (Temperature)** | 控制输出的随机性,值越高越有创意 | 0 – 2 |
|
||||
| **最大 Token (Max Tokens)** | 限制单次回复的最大长度 | 1 – 模型上限 |
|
||||
| **Top-P** | 核采样概率阈值,与温度配合使用 | 0 – 1 |
|
||||
| **频率惩罚 (Frequency Penalty)** | 降低已出现词汇的重复概率 | -2 – 2 |
|
||||
| **存在惩罚 (Presence Penalty)** | 鼓励模型讨论新话题 | -2 – 2 |
|
||||
|
||||
::: info 参数建议
|
||||
对于日常对话,保持默认参数即可。如果需要更有创意的输出,可以适当提高温度;需要精确回答时,降低温度到 0–0.3。
|
||||
:::
|
||||
|
||||
## 自定义/本地端点
|
||||
|
||||
BoosApi 支持连接任何兼容 OpenAI API 格式的服务,以下是常见场景的配置示例。
|
||||
|
||||
### Ollama
|
||||
|
||||
[Ollama](https://ollama.ai/) 可以在本地运行开源大模型。配置方法:
|
||||
|
||||
1. 添加服务商,类型选择 **OpenAI**
|
||||
2. Base URL 填写 `http://localhost:11434`
|
||||
3. API Key 留空或填写任意值
|
||||
4. 点击 **获取模型** 拉取本地已下载的模型
|
||||
|
||||
::: warning 注意
|
||||
请确保 Ollama 服务已启动。部分 Ollama 版本可能需要设置 `OLLAMA_ORIGINS=*` 环境变量以允许跨域请求。
|
||||
:::
|
||||
|
||||
### vLLM / TGI
|
||||
|
||||
如果你使用 vLLM 或 Text Generation Inference 部署了自己的模型:
|
||||
|
||||
1. 添加服务商,类型选择 **OpenAI**
|
||||
2. Base URL 填写你的部署地址,如 `http://your-server:8000`
|
||||
3. API Key 根据你的服务配置填写
|
||||
4. 手动添加你部署的模型 ID
|
||||
|
||||
### API 中转服务
|
||||
|
||||
很多第三方提供 OpenAI 兼容的 API 中转服务,配置方法相同:
|
||||
|
||||
1. 添加服务商,类型选择 **OpenAI**
|
||||
2. Base URL 填写中转服务提供的地址
|
||||
3. API Key 填写中转服务提供的密钥
|
||||
4. 获取或手动添加模型
|
||||
|
||||
## 默认模型设置
|
||||
|
||||
BoosApi 支持为不同用途设置默认模型,在 **设置 → 默认模型** 中配置:
|
||||
|
||||
### 全局默认助手模型
|
||||
|
||||
新建对话时自动使用的模型。建议选择你最常用的模型,例如 `gpt-4o` 或 `claude-sonnet-4-20250514`。
|
||||
|
||||
### 默认话题命名模型
|
||||
|
||||
用于自动为对话生成标题的模型。这个模型不需要很强大,选择一个响应快且便宜的模型即可,如 `gpt-4o-mini` 或 `gemini-2.0-flash`。
|
||||
|
||||
::: tip
|
||||
默认模型设置是可选的。如果不设置,每次新建对话时需要手动选择模型。
|
||||
:::
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
layout: home
|
||||
title: "BoosApi — 开源 AI 桌面客户端与网关"
|
||||
titleTemplate: false
|
||||
|
||||
head:
|
||||
- - meta
|
||||
- name: description
|
||||
content: "BoosApi 是免费开源的 AI 桌面客户端,支持多模型对话、Agent、MCP、ChatGPT/Cherry Studio/Kelivo 导入、本地知识库、S3/WebDAV 备份和内置 AI 网关。"
|
||||
|
||||
hero:
|
||||
name: BoosApi
|
||||
text: "你的 AI 桌面工作台"
|
||||
tagline: "多模型对话、Agent、MCP 工具、API 网关、数据导入、知识库和备份整合在一个本地优先客户端里"
|
||||
image:
|
||||
src: /logo.png
|
||||
alt: BoosApi
|
||||
actions:
|
||||
- theme: brand
|
||||
text: "快速开始"
|
||||
link: /zh/guide/getting-started
|
||||
- theme: alt
|
||||
text: "下载"
|
||||
link: /zh/download
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/BoosApi-Desktop/BoosApi
|
||||
|
||||
features:
|
||||
- icon: robot
|
||||
title: "多模型对话"
|
||||
details: "OpenAI、Claude、Gemini、DeepSeek、Qwen 和兼容 API,支持密钥轮询、分支、压缩和多模型回答。"
|
||||
- icon: api
|
||||
title: "服务商快速配置"
|
||||
details: "boosapi:// 链接、CC Switch 导入、自定义请求头、代理、OpenAI Responses 和模型 extra_body。"
|
||||
- icon: thunderbolt
|
||||
title: "AI Agent"
|
||||
details: "文件编辑、命令执行和代码分析,带权限分级、工作目录沙箱、审批 UI 和成本统计。"
|
||||
- icon: edit
|
||||
title: "富内容渲染"
|
||||
details: "Markdown、LaTeX、Mermaid、D2、Monaco 代码块、HTML 片段和 Artifact 预览。"
|
||||
- icon: search
|
||||
title: "搜索与 RAG"
|
||||
details: "带引用的联网搜索、查询生成、本地 sqlite-vec 知识库、重排设置和检索反馈。"
|
||||
- icon: cloud-server
|
||||
title: "API 网关"
|
||||
details: "本地 OpenAI 兼容、OpenAI Responses、Claude 和 Gemini 接口,服务 Claude Code、Codex、OpenCode 等工具。"
|
||||
- icon: book
|
||||
title: "数据导入"
|
||||
details: "导入 ChatGPT 官方导出、Cherry Studio 与 Kelivo 备份,处理重复并可迁移服务商。"
|
||||
- icon: lock
|
||||
title: "备份与安全"
|
||||
details: "AES-256 本地加密、双目录数据布局、本地/WebDAV/S3 备份和恢复流程。"
|
||||
- icon: desktop
|
||||
title: "桌面体验"
|
||||
details: "11 种界面语言、托盘、置顶、全局快捷键、开机自启、代理和自动更新检查。"
|
||||
---
|
||||