From 793357c61eb42d9625aa52a0cc17baad7090a3ab Mon Sep 17 00:00:00 2001 From: John Feng Date: Fri, 10 Apr 2026 23:37:51 +0800 Subject: [PATCH 01/19] Add ovms support --- cmd/picoclaw/internal/model/command.go | 5 +++-- pkg/audio/asr/asr.go | 4 ++-- pkg/config/defaults.go | 7 +++++++ pkg/providers/factory_provider.go | 3 ++- pkg/providers/factory_provider_test.go | 15 +++++++++++++++ web/README.md | 2 +- web/backend/api/model_status.go | 2 +- .../src/components/models/models-page.tsx | 7 ++++--- .../src/components/models/provider-icon.tsx | 1 + .../src/components/models/provider-label.ts | 1 + 10 files changed, 37 insertions(+), 10 deletions(-) diff --git a/cmd/picoclaw/internal/model/command.go b/cmd/picoclaw/internal/model/command.go index 330734b82..72200bbe5 100644 --- a/cmd/picoclaw/internal/model/command.go +++ b/cmd/picoclaw/internal/model/command.go @@ -25,10 +25,11 @@ Examples: picoclaw model # Show current default model picoclaw model gpt-5.2 # Set gpt-5.2 as default picoclaw model claude-sonnet-4.6 # Set claude-sonnet-4.6 as default - picoclaw model local-model # Set local VLLM server as default + picoclaw model local-model # Set local VLLM/OVMS server as default Note: 'local-model' is a special value for using a local VLLM server -(running at localhost:8000 by default) which does not require an API key.`, +(running at localhost:8000 by default) which does not require an API key. +You can also use OVMS (OpenVINO Model Server) or other OpenAI-compatible servers.`, Args: cobra.MaximumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { configPath := internal.GetConfigPath() diff --git a/pkg/audio/asr/asr.go b/pkg/audio/asr/asr.go index d15dc3f09..9ec3373be 100644 --- a/pkg/audio/asr/asr.go +++ b/pkg/audio/asr/asr.go @@ -26,7 +26,7 @@ func supportsAudioTranscription(model string) bool { case "openai", "azure", "azure-openai", "litellm", "openrouter", "groq", "zhipu", "gemini", "nvidia", "ollama", "moonshot", "shengsuanyun", "deepseek", "cerebras", - "vivgrid", "volcengine", "vllm", "qwen", "qwen-intl", "qwen-international", "dashscope-intl", + "vivgrid", "volcengine", "vllm", "ovms", "qwen", "qwen-intl", "qwen-international", "dashscope-intl", "qwen-us", "dashscope-us", "mistral", "avian", "minimax", "longcat", "modelscope", "novita", "coding-plan", "alibaba-coding", "qwen-coding": // These protocols all go through the OpenAI-compatible or Azure provider path in @@ -47,7 +47,7 @@ func supportsWhisperTranscription(model string) bool { switch protocol { case "openai", "litellm", "openrouter", "groq", "zhipu", "gemini", "nvidia", "ollama", "moonshot", "shengsuanyun", "deepseek", "cerebras", - "vivgrid", "volcengine", "vllm", "qwen", "qwen-intl", "qwen-international", "dashscope-intl", + "vivgrid", "volcengine", "vllm", "ovms", "qwen", "qwen-intl", "qwen-international", "dashscope-intl", "qwen-us", "dashscope-us", "mistral", "avian", "minimax", "longcat", "modelscope", "novita", "coding-plan", "alibaba-coding", "qwen-coding", "mimo": return true diff --git a/pkg/config/defaults.go b/pkg/config/defaults.go index bb073d436..f63c9efd2 100644 --- a/pkg/config/defaults.go +++ b/pkg/config/defaults.go @@ -347,6 +347,13 @@ func DefaultConfig() *Config { APIBase: "http://localhost:8000/v1", }, + // OVMS (local) - http://localhost:8000 + { + ModelName: "local-ovms", + Model: "ovms/custom-model", + APIBase: "http://localhost:8000/v3", + }, + // LM Studio (local) - http://localhost:1234 { ModelName: "lmstudio-local", diff --git a/pkg/providers/factory_provider.go b/pkg/providers/factory_provider.go index f13dc646c..862e8f5db 100644 --- a/pkg/providers/factory_provider.go +++ b/pkg/providers/factory_provider.go @@ -52,6 +52,7 @@ var protocolMetaByName = map[string]protocolMeta{ "coding-plan-anthropic": {defaultAPIBase: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic"}, "alibaba-coding-anthropic": {defaultAPIBase: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic"}, "vllm": {defaultAPIBase: "http://localhost:8000/v1", emptyAPIKeyAllowed: true}, + "ovms": {defaultAPIBase: "http://localhost:8000/v3", emptyAPIKeyAllowed: true}, "mistral": {defaultAPIBase: "https://api.mistral.ai/v1"}, "avian": {defaultAPIBase: "https://api.avian.io/v1"}, "minimax": {defaultAPIBase: "https://api.minimaxi.com/v1"}, @@ -220,7 +221,7 @@ func CreateProviderFromConfig(cfg *config.ModelConfig) (LLMProvider, string, err case "litellm", "lmstudio", "openrouter", "groq", "zhipu", "gemini", "nvidia", "venice", "ollama", "moonshot", "shengsuanyun", "deepseek", "cerebras", - "vivgrid", "volcengine", "vllm", "qwen", "qwen-intl", "qwen-international", "dashscope-intl", + "vivgrid", "volcengine", "vllm", "ovms", "qwen", "qwen-intl", "qwen-international", "dashscope-intl", "qwen-us", "dashscope-us", "mistral", "avian", "longcat", "modelscope", "novita", "coding-plan", "alibaba-coding", "qwen-coding", "mimo": // All other OpenAI-compatible HTTP providers diff --git a/pkg/providers/factory_provider_test.go b/pkg/providers/factory_provider_test.go index c362463ae..e22399a07 100644 --- a/pkg/providers/factory_provider_test.go +++ b/pkg/providers/factory_provider_test.go @@ -120,6 +120,7 @@ func TestCreateProviderFromConfig_DefaultAPIBase(t *testing.T) { {"vivgrid", "vivgrid"}, {"qwen", "qwen"}, {"vllm", "vllm"}, + {"ovms", "ovms"}, {"deepseek", "deepseek"}, {"ollama", "ollama"}, {"lmstudio", "lmstudio"}, @@ -237,6 +238,20 @@ func TestCreateProviderFromConfig_LocalProviders(t *testing.T) { apiKey: "", wantModelID: "Qwen/Qwen3-8B", }, + { + name: "OVMS with API key", + modelName: "test-ovms", + model: "ovms/llama3", + apiKey: "test-key", + wantModelID: "llama3", + }, + { + name: "OVMS without API key", + modelName: "test-ovms", + model: "ovms/llama3", + apiKey: "", + wantModelID: "llama3", + }, } for _, tt := range tests { diff --git a/web/README.md b/web/README.md index 9fc7007e9..dd2e1de3f 100644 --- a/web/README.md +++ b/web/README.md @@ -357,7 +357,7 @@ Check these in the dashboard: - a default model is selected - the model has credentials or OAuth state -- local models such as Ollama or vLLM are reachable +- local models such as Ollama, vLLM, or OVMS are reachable ### The launcher cannot find `picoclaw` diff --git a/web/backend/api/model_status.go b/web/backend/api/model_status.go index 98bd501f5..a34ff8ebd 100644 --- a/web/backend/api/model_status.go +++ b/web/backend/api/model_status.go @@ -176,7 +176,7 @@ func runLocalModelProbe(m *config.ModelConfig) bool { switch protocol { case "ollama": return probeOllamaModelFunc(apiBase, modelID) - case "vllm", "lmstudio": + case "vllm", "ovms", "lmstudio": return probeOpenAICompatibleModelFunc(apiBase, modelID, m.APIKey()) case "github-copilot", "copilot": return probeTCPServiceFunc(apiBase) diff --git a/web/frontend/src/components/models/models-page.tsx b/web/frontend/src/components/models/models-page.tsx index c08b3bdd6..3984cb7dd 100644 --- a/web/frontend/src/components/models/models-page.tsx +++ b/web/frontend/src/components/models/models-page.tsx @@ -30,9 +30,10 @@ const PROVIDER_PRIORITY: Record = { shengsuanyun: 14, ollama: 15, vllm: 16, - mistral: 17, - avian: 18, - mimo: 19, + ovms: 17, + mistral: 18, + avian: 19, + mimo: 20, } interface ProviderGroup { diff --git a/web/frontend/src/components/models/provider-icon.tsx b/web/frontend/src/components/models/provider-icon.tsx index 814a59834..860bb4b03 100644 --- a/web/frontend/src/components/models/provider-icon.tsx +++ b/web/frontend/src/components/models/provider-icon.tsx @@ -36,6 +36,7 @@ const PROVIDER_DOMAINS: Record = { mistral: "mistral.ai", avian: "avian.io", vllm: "vllm.ai", + ovms: "docs.openvino.ai", zhipu: "zhipuai.cn", mimo: "xiaomi.com", } diff --git a/web/frontend/src/components/models/provider-label.ts b/web/frontend/src/components/models/provider-label.ts index 82600a96f..28666b798 100644 --- a/web/frontend/src/components/models/provider-label.ts +++ b/web/frontend/src/components/models/provider-label.ts @@ -17,6 +17,7 @@ const PROVIDER_LABELS: Record = { mistral: "Mistral AI", avian: "Avian", vllm: "VLLM (local)", + ovms: "OVMS (local)", zhipu: "Zhipu AI (智谱)", mimo: "Xiaomi MiMo", } From 68d2b125d17b0506e867fe2d1c87ed50100e7d1c Mon Sep 17 00:00:00 2001 From: John Feng Date: Mon, 13 Apr 2026 10:52:33 +0800 Subject: [PATCH 02/19] Update Readme --- README.fr.md | 16 +++++++++++++++- README.id.md | 16 +++++++++++++++- README.it.md | 16 +++++++++++++++- README.ja.md | 16 +++++++++++++++- README.md | 16 +++++++++++++++- README.my.md | 16 +++++++++++++++- README.pt-br.md | 16 +++++++++++++++- README.vi.md | 16 +++++++++++++++- README.zh.md | 16 +++++++++++++++- ROADMAP.md | 2 +- docs/configuration.md | 3 ++- docs/fr/configuration.md | 2 +- docs/fr/providers.md | 5 +++-- docs/ja/configuration.md | 2 +- docs/ja/providers.md | 5 +++-- docs/providers.md | 5 +++-- docs/pt-br/configuration.md | 2 +- docs/pt-br/providers.md | 5 +++-- docs/vi/configuration.md | 2 +- docs/vi/providers.md | 5 +++-- docs/zh/configuration.md | 3 ++- docs/zh/providers.md | 5 +++-- 22 files changed, 162 insertions(+), 28 deletions(-) diff --git a/README.fr.md b/README.fr.md index a26c89f14..cabf49839 100644 --- a/README.fr.md +++ b/README.fr.md @@ -412,13 +412,14 @@ PicoClaw supporte plus de 30 providers LLM via la configuration `model_list`. Ut | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Requise | Modèles MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Non requise | Modèles locaux, auto-hébergé | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Non requise | Déploiement local, compatible OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Non requise | Intel OpenVINO Model Server, compatible OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Variable | Proxy pour 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Requise | Déploiement Azure entreprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Connexion par code appareil | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Déploiement local (Ollama, vLLM, etc.) +Déploiement local (Ollama, vLLM, OVMS, etc.) **Ollama :** ```json @@ -446,6 +447,19 @@ PicoClaw supporte plus de 30 providers LLM via la configuration `model_list`. Ut } ``` +**OVMS (OpenVINO Model Server) :** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Pour les détails complets de configuration des providers, voir [Providers & Models](docs/fr/providers.md).
diff --git a/README.id.md b/README.id.md index d3c556dde..571502c45 100644 --- a/README.id.md +++ b/README.id.md @@ -408,13 +408,14 @@ PicoClaw mendukung 30+ provider LLM melalui konfigurasi `model_list`. Gunakan fo | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Diperlukan | Model MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Tidak perlu | Model lokal, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Tidak perlu | Deploy lokal, kompatibel OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, kompatibel OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Bervariasi | Proxy untuk 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Diperlukan | Deploy Azure enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login dengan device code | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Deploy lokal (Ollama, vLLM, dll.) +Deploy lokal (Ollama, vLLM, OVMS, dll.) **Ollama:** ```json @@ -442,6 +443,19 @@ PicoClaw mendukung 30+ provider LLM melalui konfigurasi `model_list`. Gunakan fo } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Untuk detail konfigurasi provider lengkap, lihat [Providers & Models](docs/providers.md).
diff --git a/README.it.md b/README.it.md index 6fe6c5e17..918d505e3 100644 --- a/README.it.md +++ b/README.it.md @@ -408,13 +408,14 @@ PicoClaw supporta 30+ provider LLM tramite la configurazione `model_list`. Usa i | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Richiesta | Modelli MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Non necessaria | Modelli locali, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Non necessaria | Deploy locale, compatibile OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Non necessaria | Intel OpenVINO Model Server, compatibile OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Variabile | Proxy per 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Richiesta | Deploy Azure enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login con device code | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Deploy locale (Ollama, vLLM, ecc.) +Deploy locale (Ollama, vLLM, OVMS, ecc.) **Ollama:** ```json @@ -442,6 +443,19 @@ PicoClaw supporta 30+ provider LLM tramite la configurazione `model_list`. Usa i } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Per i dettagli completi sulla configurazione dei provider, vedi [Provider & Modelli](docs/providers.md).
diff --git a/README.ja.md b/README.ja.md index 793c41fcb..c5052612e 100644 --- a/README.ja.md +++ b/README.ja.md @@ -408,13 +408,14 @@ PicoClaw は `model_list` 設定を通じて 30 以上の LLM Provider をサポ | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | 必須 | MiMo モデル | | [Ollama](https://ollama.com/) | `ollama/` | 不要 | ローカルモデル、セルフホスト | | [vLLM](https://docs.vllm.ai/) | `vllm/` | 不要 | ローカルデプロイ、OpenAI 互換 | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | 不要 | Intel OpenVINO Model Server、OpenAI 互換 | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | 場合による | 100 以上の Provider のプロキシ | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | 必須 | エンタープライズ Azure デプロイ | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | デバイスコードログイン | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-ローカルデプロイ(Ollama、vLLM など) +ローカルデプロイ(Ollama、vLLM、OVMS など) **Ollama:** ```json @@ -442,6 +443,19 @@ PicoClaw は `model_list` 設定を通じて 30 以上の LLM Provider をサポ } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Provider の完全な設定詳細は [Provider とモデル](docs/ja/providers.md) を参照してください。
diff --git a/README.md b/README.md index a48a53d47..826bee991 100644 --- a/README.md +++ b/README.md @@ -411,6 +411,7 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Required | MiMo models | | [Ollama](https://ollama.com/) | `ollama/` | Not needed | Local models, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Not needed | Local deployment, OpenAI-compatible | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Not needed | Intel OpenVINO Model Server, OpenAI-compatible | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Varies | Proxy for 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Required | Enterprise Azure deployment | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Device code login | @@ -420,7 +421,7 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use > \* AWS Bedrock requires build tag: `go build -tags bedrock`. Set `api_base` to a region name (e.g., `us-east-1`) for automatic endpoint resolution across all AWS partitions (aws, aws-cn, aws-us-gov). When using a full endpoint URL instead, you must also configure `AWS_REGION` via environment variable or AWS config/profile.
-Local deployment (Ollama, vLLM, etc.) +Local deployment (Ollama, vLLM, OVMS, etc.) **Ollama:** ```json @@ -448,6 +449,19 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + For full provider configuration details, see [Providers & Models](docs/providers.md).
diff --git a/README.my.md b/README.my.md index f00fb438c..0db042c06 100644 --- a/README.my.md +++ b/README.my.md @@ -404,6 +404,7 @@ PicoClaw menyokong 30+ penyedia LLM melalui konfigurasi `model_list`. Gunakan fo | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Diperlukan | Model MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Tidak perlu | Model tempatan, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Tidak perlu | Deployment tempatan, serasi OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, serasi OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Berbeza | Proksi untuk 100+ penyedia | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Diperlukan | Deployment Azure perusahaan | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Log masuk kod peranti | @@ -413,7 +414,7 @@ PicoClaw menyokong 30+ penyedia LLM melalui konfigurasi `model_list`. Gunakan fo > \* AWS Bedrock memerlukan tag binaan: `go build -tags bedrock`. Tetapkan `api_base` kepada nama rantau (cth. `us-east-1`) untuk resolusi endpoint automatik merentasi semua partition AWS. Apabila menggunakan URL endpoint penuh, anda juga perlu mengkonfigurasi `AWS_REGION` melalui pemboleh ubah persekitaran.
-Deployment tempatan (Ollama, vLLM, dll.) +Deployment tempatan (Ollama, vLLM, OVMS, dll.) **Ollama:** ```json @@ -441,6 +442,19 @@ PicoClaw menyokong 30+ penyedia LLM melalui konfigurasi `model_list`. Gunakan fo } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Untuk butiran konfigurasi penyedia penuh, lihat [Penyedia & Model](docs/providers.md).
diff --git a/README.pt-br.md b/README.pt-br.md index db11d4d82..17612e333 100644 --- a/README.pt-br.md +++ b/README.pt-br.md @@ -408,13 +408,14 @@ O PicoClaw suporta mais de 30 providers de LLM através da configuração `model | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Obrigatória | Modelos MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Não necessária | Modelos locais, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Não necessária | Implantação local, compatível com OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Não necessária | Intel OpenVINO Model Server, compatível com OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Varia | Proxy para 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Obrigatória | Implantação Azure Enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login por código de dispositivo | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Implantação local (Ollama, vLLM, etc.) +Implantação local (Ollama, vLLM, OVMS, etc.) **Ollama:** ```json @@ -442,6 +443,19 @@ O PicoClaw suporta mais de 30 providers de LLM através da configuração `model } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Para detalhes completos de configuração de providers, veja [Providers & Models](docs/pt-br/providers.md).
diff --git a/README.vi.md b/README.vi.md index 78b8a9a59..3da1462ad 100644 --- a/README.vi.md +++ b/README.vi.md @@ -408,13 +408,14 @@ PicoClaw hỗ trợ 30+ Provider LLM thông qua cấu hình `model_list`. Sử d | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Bắt buộc | Mô hình MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Không cần | Mô hình cục bộ, tự lưu trữ | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Không cần | Triển khai cục bộ, tương thích OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Không cần | Intel OpenVINO Model Server, tương thích OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Tùy | Proxy cho 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Bắt buộc | Triển khai Azure doanh nghiệp | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Đăng nhập bằng device code | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Triển khai cục bộ (Ollama, vLLM, v.v.) +Triển khai cục bộ (Ollama, vLLM, OVMS, v.v.) **Ollama:** ```json @@ -442,6 +443,19 @@ PicoClaw hỗ trợ 30+ Provider LLM thông qua cấu hình `model_list`. Sử d } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Để biết chi tiết cấu hình provider đầy đủ, xem [Providers & Models](docs/vi/providers.md).
diff --git a/README.zh.md b/README.zh.md index 2ba0913fc..79c5dee2d 100644 --- a/README.zh.md +++ b/README.zh.md @@ -408,13 +408,14 @@ PicoClaw 通过 `model_list` 配置支持 30+ LLM Provider,使用 `协议/模 | [小米 MiMo](https://platform.xiaomimimo.com/) | `mimo/` | 必填 | MiMo 系列模型 | | [Ollama](https://ollama.com/) | `ollama/` | 无需 | 本地模型,自托管 | | [vLLM](https://docs.vllm.ai/) | `vllm/` | 无需 | 本地部署,兼容 OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | 无需 | Intel OpenVINO Model Server,兼容 OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | 视情况 | 100+ Provider 代理 | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | 必填 | 企业级 Azure 部署 | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | 设备码登录 | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-本地部署(Ollama、vLLM 等) +本地部署(Ollama、vLLM、OVMS 等) **Ollama:** ```json @@ -442,6 +443,19 @@ PicoClaw 通过 `model_list` 配置支持 30+ LLM Provider,使用 `协议/模 } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + 完整 Provider 配置详情请参阅 [Providers & Models](docs/zh/providers.md)。
diff --git a/ROADMAP.md b/ROADMAP.md index 8c5c0e252..4e34a62ab 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -43,7 +43,7 @@ * **Provider** * [**Architecture Upgrade**](https://github.com/sipeed/picoclaw/issues/283): Refactor from "Vendor-based" to "Protocol-based" classification (e.g., OpenAI-compatible, Ollama-compatible). *(Status: In progress by @Daming, ETA 5 days)* - * **Local Models**: Deep integration with **Ollama**, **vLLM**, **LM Studio**, and **Mistral** (local inference). + * **Local Models**: Deep integration with **Ollama**, **vLLM**, **OVMS**, **LM Studio**, and **Mistral** (local inference). * **Online Models**: Continued support for frontier closed-source models. diff --git a/docs/configuration.md b/docs/configuration.md index 7a5902f58..03f04a678 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -627,6 +627,7 @@ For complete documentation, see [`security_configuration.md`](security_configura | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | — | @@ -860,7 +861,7 @@ The old `providers` configuration is **deprecated** and has been removed in V2. PicoClaw routes providers by protocol family: -- **OpenAI-compatible**: OpenRouter, Groq, Zhipu, vLLM-style endpoints, and most others. +- **OpenAI-compatible**: OpenRouter, Groq, Zhipu, vLLM-style endpoints, OVMS, and most others. - **Anthropic**: Claude-native API behavior. - **Codex/OAuth**: OpenAI OAuth/token authentication route. diff --git a/docs/fr/configuration.md b/docs/fr/configuration.md index 7a57cceae..d21a35730 100644 --- a/docs/fr/configuration.md +++ b/docs/fr/configuration.md @@ -348,7 +348,7 @@ L'ancienne configuration `providers` est **dépréciée** et a été supprimée PicoClaw route les providers par famille de protocole : -- **Compatible OpenAI** : OpenRouter, Groq, Zhipu, endpoints vLLM et la plupart des autres. +- **Compatible OpenAI** : OpenRouter, Groq, Zhipu, endpoints vLLM, OVMS et la plupart des autres. - **Anthropic** : Comportement natif de l'API Claude. - **Codex/OAuth** : Route d'authentification OAuth/token OpenAI. diff --git a/docs/fr/providers.md b/docs/fr/providers.md index 3305ec5ee..6f98e7c98 100644 --- a/docs/fr/providers.md +++ b/docs/fr/providers.md @@ -55,6 +55,7 @@ Cette conception permet également le **support multi-agents** avec une sélecti | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -105,7 +106,7 @@ Cette conception permet également le **support multi-agents** avec une sélecti |-------|------|--------|-------------| | `model_name` | string | Oui | Nom unique pour référencer ce modèle dans la config agent | | `model` | string | Oui | Identifiant fournisseur/modèle (ex : `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | Oui* | Clé(s) API pour l'authentification. Plusieurs clés permettent la rotation par requête. Non requis pour les fournisseurs locaux (Ollama, LM Studio, VLLM) | +| `api_keys` | string[] | Oui* | Clé(s) API pour l'authentification. Plusieurs clés permettent la rotation par requête. Non requis pour les fournisseurs locaux (Ollama, LM Studio, VLLM, OVMS) | | `api_base` | string | Non | Remplace l'URL de base API par défaut | | `proxy` | string | Non | URL du proxy HTTP pour cette entrée de modèle | | `user_agent` | string | Non | En-tête `User-Agent` personnalisé pour les requêtes API (supporté par les providers OpenAI-compatible, Anthropic et Azure) | @@ -298,7 +299,7 @@ Pour un guide de migration détaillé, voir [migration/model-list-migration.md]( PicoClaw route les fournisseurs par famille de protocoles : -- Protocole compatible OpenAI : OpenRouter, passerelles compatibles OpenAI, Groq, Zhipu et endpoints de type vLLM. +- Protocole compatible OpenAI : OpenRouter, passerelles compatibles OpenAI, Groq, Zhipu, endpoints de type vLLM et OVMS. - Protocole Anthropic : Comportement natif de l'API Claude. - Chemin Codex/OAuth : Route d'authentification OAuth/token OpenAI. diff --git a/docs/ja/configuration.md b/docs/ja/configuration.md index 6d6290e8a..5ec8f507b 100644 --- a/docs/ja/configuration.md +++ b/docs/ja/configuration.md @@ -349,7 +349,7 @@ HEARTBEAT_OK を返信 ユーザーが直接結果を受信 PicoClaw はプロトコルファミリーで Provider をルーティングします: -- **OpenAI 互換**:OpenRouter、Groq、Zhipu、vLLM スタイルのエンドポイントなど。 +- **OpenAI 互換**:OpenRouter、Groq、Zhipu、vLLM スタイルのエンドポイント、OVMS など。 - **Anthropic**:Claude ネイティブ API の動作。 - **Codex/OAuth**:OpenAI OAuth/トークン認証ルート。 diff --git a/docs/ja/providers.md b/docs/ja/providers.md index 878530966..90b3bff28 100644 --- a/docs/ja/providers.md +++ b/docs/ja/providers.md @@ -55,6 +55,7 @@ | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [キーを取得](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | LiteLLM プロキシキー | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | ローカル | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | ローカル(キー不要) | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [キーを取得](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [キーを取得](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -105,7 +106,7 @@ |-----------|------|------|------| | `model_name` | string | はい | agent 設定でこのモデルを参照するための一意の名前 | | `model` | string | はい | ベンダー/モデル識別子(例:`openai/gpt-5.4`、`azure/gpt-5.4`、`anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | はい* | 認証キー。複数キーでリクエストごとのローテーションが可能。ローカル provider(Ollama、LM Studio、VLLM)には不要 | +| `api_keys` | string[] | はい* | 認証キー。複数キーでリクエストごとのローテーションが可能。ローカル provider(Ollama、LM Studio、VLLM、OVMS)には不要 | | `api_base` | string | いいえ | デフォルトの API エンドポイント URL を上書き | | `proxy` | string | いいえ | このモデルエントリの HTTP プロキシ URL | | `user_agent` | string | いいえ | カスタム `User-Agent` リクエストヘッダー(OpenAI 互換、Anthropic、Azure provider で対応) | @@ -309,7 +310,7 @@ PicoClaw はリクエスト送信前に外側の `litellm/` プレフィック PicoClaw はプロトコルファミリーごとに Provider をルーティングします: -- OpenAI 互換プロトコル:OpenRouter、OpenAI 互換ゲートウェイ、Groq、Zhipu、vLLM スタイルのエンドポイント。 +- OpenAI 互換プロトコル:OpenRouter、OpenAI 互換ゲートウェイ、Groq、Zhipu、vLLM スタイルのエンドポイント、OVMS。 - Anthropic プロトコル:Claude ネイティブ API 動作。 - Codex/OAuth パス:OpenAI OAuth/Token 認証ルート。 diff --git a/docs/providers.md b/docs/providers.md index d03fbab3e..e3b475fff 100644 --- a/docs/providers.md +++ b/docs/providers.md @@ -62,6 +62,7 @@ This design also enables **multi-agent support** with flexible provider selectio | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -114,7 +115,7 @@ This design also enables **multi-agent support** with flexible provider selectio |-------|------|----------|-------------| | `model_name` | string | Yes | Unique name used to reference this model in agent config | | `model` | string | Yes | Vendor/model identifier (e.g., `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | Yes* | API key(s) for authentication. Multiple keys enable per-request rotation. Not required for local providers (Ollama, LM Studio, VLLM) | +| `api_keys` | string[] | Yes* | API key(s) for authentication. Multiple keys enable per-request rotation. Not required for local providers (Ollama, LM Studio, VLLM, OVMS) | | `api_base` | string | No | Override the default API endpoint URL | | `proxy` | string | No | HTTP proxy URL for this model entry | | `user_agent` | string | No | Custom `User-Agent` header sent with API requests (supported by OpenAI-compatible, Anthropic, and Azure providers) | @@ -412,7 +413,7 @@ For detailed migration guide, see [migration/model-list-migration.md](migration/ PicoClaw routes providers by protocol family: -- OpenAI-compatible protocol: OpenRouter, OpenAI-compatible gateways, Groq, Zhipu, and vLLM-style endpoints. +- OpenAI-compatible protocol: OpenRouter, OpenAI-compatible gateways, Groq, Zhipu, vLLM-style and OVMS endpoints. - Anthropic protocol: Claude-native API behavior. - Codex/OAuth path: OpenAI OAuth/token authentication route. diff --git a/docs/pt-br/configuration.md b/docs/pt-br/configuration.md index 27cd6d21f..97e048be3 100644 --- a/docs/pt-br/configuration.md +++ b/docs/pt-br/configuration.md @@ -349,7 +349,7 @@ A configuração antiga `providers` está **depreciada** e foi removida no V2. C PicoClaw roteia providers por família de protocolo: -- **Compatível com OpenAI**: OpenRouter, Groq, Zhipu, endpoints vLLM e a maioria dos outros. +- **Compatível com OpenAI**: OpenRouter, Groq, Zhipu, endpoints vLLM, OVMS e a maioria dos outros. - **Anthropic**: Comportamento nativo da API Claude. - **Codex/OAuth**: Rota de autenticação OAuth/token OpenAI. diff --git a/docs/pt-br/providers.md b/docs/pt-br/providers.md index 103490dc7..6b04bd376 100644 --- a/docs/pt-br/providers.md +++ b/docs/pt-br/providers.md @@ -55,6 +55,7 @@ Este design também permite **suporte multi-agente** com seleção flexível de | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -105,7 +106,7 @@ Este design também permite **suporte multi-agente** com seleção flexível de |-------|------|-------------|-----------| | `model_name` | string | Sim | Nome único para referenciar este modelo na config do agent | | `model` | string | Sim | Identificador fornecedor/modelo (ex: `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | Sim* | Chave(s) API para autenticação. Múltiplas chaves permitem rotação por requisição. Não necessário para providers locais (Ollama, LM Studio, VLLM) | +| `api_keys` | string[] | Sim* | Chave(s) API para autenticação. Múltiplas chaves permitem rotação por requisição. Não necessário para providers locais (Ollama, LM Studio, VLLM, OVMS) | | `api_base` | string | Não | Substitui a URL base da API padrão | | `proxy` | string | Não | URL do proxy HTTP para esta entrada de modelo | | `user_agent` | string | Não | Cabeçalho `User-Agent` personalizado enviado com requisições API (suportado por providers OpenAI-compatible, Anthropic e Azure) | @@ -298,7 +299,7 @@ Para guia de migração detalhado, veja [migration/model-list-migration.md](../m O PicoClaw roteia provedores por família de protocolo: -- Protocolo compatível com OpenAI: OpenRouter, gateways compatíveis com OpenAI, Groq, Zhipu e endpoints estilo vLLM. +- Protocolo compatível com OpenAI: OpenRouter, gateways compatíveis com OpenAI, Groq, Zhipu, endpoints estilo vLLM e OVMS. - Protocolo Anthropic: Comportamento nativo da API Claude. - Caminho Codex/OAuth: Rota de autenticação OAuth/token da OpenAI. diff --git a/docs/vi/configuration.md b/docs/vi/configuration.md index 56eb8f557..701970691 100644 --- a/docs/vi/configuration.md +++ b/docs/vi/configuration.md @@ -349,7 +349,7 @@ Cấu hình `providers` cũ đã **bị deprecated** và đã được loại b PicoClaw định tuyến provider theo họ giao thức: -- **Tương thích OpenAI**: OpenRouter, Groq, Zhipu, endpoint kiểu vLLM và hầu hết các provider khác. +- **Tương thích OpenAI**: OpenRouter, Groq, Zhipu, endpoint kiểu vLLM, OVMS và hầu hết các provider khác. - **Anthropic**: Hành vi API Claude gốc. - **Codex/OAuth**: Tuyến xác thực OAuth/token OpenAI. diff --git a/docs/vi/providers.md b/docs/vi/providers.md index 46c9de663..8d1643a7d 100644 --- a/docs/vi/providers.md +++ b/docs/vi/providers.md @@ -55,6 +55,7 @@ Thiết kế này cũng cho phép **hỗ trợ đa agent** với lựa chọn pr | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -105,7 +106,7 @@ Thiết kế này cũng cho phép **hỗ trợ đa agent** với lựa chọn pr |--------|------|----------|------| | `model_name` | string | Có | Tên duy nhất để tham chiếu model này trong cấu hình agent | | `model` | string | Có | Định danh nhà cung cấp/model (ví dụ: `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | Có* | Khóa API xác thực. Nhiều khóa cho phép xoay vòng theo yêu cầu. Không cần thiết cho provider nội bộ (Ollama, LM Studio, VLLM) | +| `api_keys` | string[] | Có* | Khóa API xác thực. Nhiều khóa cho phép xoay vòng theo yêu cầu. Không cần thiết cho provider nội bộ (Ollama, LM Studio, VLLM, OVMS) | | `api_base` | string | Không | Ghi đè URL endpoint API mặc định | | `proxy` | string | Không | URL proxy HTTP cho entry model này | | `user_agent` | string | Không | Header `User-Agent` tùy chỉnh gửi với yêu cầu API (được hỗ trợ bởi provider OpenAI-compatible, Anthropic và Azure) | @@ -298,7 +299,7 @@ Cấu hình `providers` cũ đã **bị deprecated** và đã được loại b PicoClaw định tuyến provider theo họ giao thức: -- Giao thức tương thích OpenAI: OpenRouter, gateway tương thích OpenAI, Groq, Zhipu, và endpoint kiểu vLLM. +- Giao thức tương thích OpenAI: OpenRouter, gateway tương thích OpenAI, Groq, Zhipu, endpoint kiểu vLLM và OVMS. - Giao thức Anthropic: Hành vi API native của Claude. - Đường dẫn Codex/OAuth: Tuyến xác thực OAuth/token của OpenAI. diff --git a/docs/zh/configuration.md b/docs/zh/configuration.md index a405df09c..89e8fa0f0 100644 --- a/docs/zh/configuration.md +++ b/docs/zh/configuration.md @@ -369,6 +369,7 @@ Agent 读取 HEARTBEAT.md | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [获取](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | 你的 LiteLLM 代理 Key | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | 本地 | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | 本地(无需密钥) | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [获取](https://cerebras.ai) | | **火山引擎 (豆包)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [获取](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | — | @@ -569,7 +570,7 @@ PicoClaw 只剥离最外层的 `litellm/` 前缀再发送请求,因此 `litell PicoClaw 按协议族路由提供商: -- **OpenAI 兼容**:OpenRouter、Groq、智谱、vLLM 风格端点及大多数其他提供商。 +- **OpenAI 兼容**:OpenRouter、Groq、智谱、vLLM 风格端点、OVMS 及大多数其他提供商。 - **Anthropic**:Claude 原生 API 行为。 - **Codex/OAuth**:OpenAI OAuth/Token 认证路由。 diff --git a/docs/zh/providers.md b/docs/zh/providers.md index 7b3930f6f..c000d592e 100644 --- a/docs/zh/providers.md +++ b/docs/zh/providers.md @@ -59,6 +59,7 @@ | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [获取密钥](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | 你的 LiteLLM 代理密钥 | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | 本地 | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | 本地(无需密钥) | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [获取密钥](https://cerebras.ai) | | **火山引擎(Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [获取密钥](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -110,7 +111,7 @@ |------|------|------|------| | `model_name` | string | 是 | 在 agent 配置中引用此模型的唯一名称 | | `model` | string | 是 | 厂商/模型标识符(如 `openai/gpt-5.4`、`azure/gpt-5.4`、`anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | 是* | 认证密钥。多个密钥可按请求轮换。本地 provider(Ollama、LM Studio、VLLM)不需要 | +| `api_keys` | string[] | 是* | 认证密钥。多个密钥可按请求轮换。本地 provider(Ollama、LM Studio、VLLM、OVMS)不需要 | | `api_base` | string | 否 | 覆盖默认的 API 端点 URL | | `proxy` | string | 否 | 此模型条目的 HTTP 代理 URL | | `user_agent` | string | 否 | 自定义 `User-Agent` 请求头(支持 OpenAI 兼容、Anthropic 和 Azure provider) | @@ -382,7 +383,7 @@ PicoClaw 在发送请求前仅去除外层 `litellm/` 前缀,因此 `litellm/l PicoClaw 按协议族路由 Provider: -- OpenAI 兼容协议:OpenRouter、OpenAI 兼容网关、Groq、智谱、vLLM 风格端点。 +- OpenAI 兼容协议:OpenRouter、OpenAI 兼容网关、Groq、智谱、vLLM 风格端点和 OVMS。 - Anthropic 协议:Claude 原生 API 行为。 - Codex/OAuth 路径:OpenAI OAuth/Token 认证路由。 From 8caf00670f1f0c32d92e81afa50a422a35cf08fa Mon Sep 17 00:00:00 2001 From: John Feng Date: Mon, 13 Apr 2026 10:58:24 +0800 Subject: [PATCH 03/19] Update link --- README.fr.md | 2 +- README.id.md | 2 +- README.it.md | 2 +- README.ja.md | 2 +- README.md | 2 +- README.my.md | 2 +- README.pt-br.md | 2 +- README.vi.md | 2 +- README.zh.md | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.fr.md b/README.fr.md index cabf49839..921a8e0c2 100644 --- a/README.fr.md +++ b/README.fr.md @@ -412,7 +412,7 @@ PicoClaw supporte plus de 30 providers LLM via la configuration `model_list`. Ut | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Requise | Modèles MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Non requise | Modèles locaux, auto-hébergé | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Non requise | Déploiement local, compatible OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Non requise | Intel OpenVINO Model Server, compatible OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Non requise | Intel OpenVINO Model Server, compatible OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Variable | Proxy pour 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Requise | Déploiement Azure entreprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Connexion par code appareil | diff --git a/README.id.md b/README.id.md index 571502c45..687a0e16b 100644 --- a/README.id.md +++ b/README.id.md @@ -408,7 +408,7 @@ PicoClaw mendukung 30+ provider LLM melalui konfigurasi `model_list`. Gunakan fo | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Diperlukan | Model MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Tidak perlu | Model lokal, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Tidak perlu | Deploy lokal, kompatibel OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, kompatibel OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, kompatibel OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Bervariasi | Proxy untuk 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Diperlukan | Deploy Azure enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login dengan device code | diff --git a/README.it.md b/README.it.md index 918d505e3..7ec77dfb3 100644 --- a/README.it.md +++ b/README.it.md @@ -408,7 +408,7 @@ PicoClaw supporta 30+ provider LLM tramite la configurazione `model_list`. Usa i | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Richiesta | Modelli MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Non necessaria | Modelli locali, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Non necessaria | Deploy locale, compatibile OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Non necessaria | Intel OpenVINO Model Server, compatibile OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Non necessaria | Intel OpenVINO Model Server, compatibile OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Variabile | Proxy per 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Richiesta | Deploy Azure enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login con device code | diff --git a/README.ja.md b/README.ja.md index c5052612e..b49e40cc3 100644 --- a/README.ja.md +++ b/README.ja.md @@ -408,7 +408,7 @@ PicoClaw は `model_list` 設定を通じて 30 以上の LLM Provider をサポ | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | 必須 | MiMo モデル | | [Ollama](https://ollama.com/) | `ollama/` | 不要 | ローカルモデル、セルフホスト | | [vLLM](https://docs.vllm.ai/) | `vllm/` | 不要 | ローカルデプロイ、OpenAI 互換 | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | 不要 | Intel OpenVINO Model Server、OpenAI 互換 | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | 不要 | Intel OpenVINO Model Server、OpenAI 互換 | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | 場合による | 100 以上の Provider のプロキシ | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | 必須 | エンタープライズ Azure デプロイ | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | デバイスコードログイン | diff --git a/README.md b/README.md index 826bee991..6f27a1fdb 100644 --- a/README.md +++ b/README.md @@ -411,7 +411,7 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Required | MiMo models | | [Ollama](https://ollama.com/) | `ollama/` | Not needed | Local models, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Not needed | Local deployment, OpenAI-compatible | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Not needed | Intel OpenVINO Model Server, OpenAI-compatible | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Not needed | Intel OpenVINO Model Server, OpenAI-compatible | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Varies | Proxy for 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Required | Enterprise Azure deployment | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Device code login | diff --git a/README.my.md b/README.my.md index 0db042c06..0870a0264 100644 --- a/README.my.md +++ b/README.my.md @@ -404,7 +404,7 @@ PicoClaw menyokong 30+ penyedia LLM melalui konfigurasi `model_list`. Gunakan fo | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Diperlukan | Model MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Tidak perlu | Model tempatan, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Tidak perlu | Deployment tempatan, serasi OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, serasi OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, serasi OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Berbeza | Proksi untuk 100+ penyedia | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Diperlukan | Deployment Azure perusahaan | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Log masuk kod peranti | diff --git a/README.pt-br.md b/README.pt-br.md index 17612e333..66a5e74a2 100644 --- a/README.pt-br.md +++ b/README.pt-br.md @@ -408,7 +408,7 @@ O PicoClaw suporta mais de 30 providers de LLM através da configuração `model | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Obrigatória | Modelos MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Não necessária | Modelos locais, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Não necessária | Implantação local, compatível com OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Não necessária | Intel OpenVINO Model Server, compatível com OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Não necessária | Intel OpenVINO Model Server, compatível com OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Varia | Proxy para 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Obrigatória | Implantação Azure Enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login por código de dispositivo | diff --git a/README.vi.md b/README.vi.md index 3da1462ad..93679152c 100644 --- a/README.vi.md +++ b/README.vi.md @@ -408,7 +408,7 @@ PicoClaw hỗ trợ 30+ Provider LLM thông qua cấu hình `model_list`. Sử d | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Bắt buộc | Mô hình MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Không cần | Mô hình cục bộ, tự lưu trữ | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Không cần | Triển khai cục bộ, tương thích OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Không cần | Intel OpenVINO Model Server, tương thích OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Không cần | Intel OpenVINO Model Server, tương thích OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Tùy | Proxy cho 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Bắt buộc | Triển khai Azure doanh nghiệp | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Đăng nhập bằng device code | diff --git a/README.zh.md b/README.zh.md index 79c5dee2d..c6b68a103 100644 --- a/README.zh.md +++ b/README.zh.md @@ -408,7 +408,7 @@ PicoClaw 通过 `model_list` 配置支持 30+ LLM Provider,使用 `协议/模 | [小米 MiMo](https://platform.xiaomimimo.com/) | `mimo/` | 必填 | MiMo 系列模型 | | [Ollama](https://ollama.com/) | `ollama/` | 无需 | 本地模型,自托管 | | [vLLM](https://docs.vllm.ai/) | `vllm/` | 无需 | 本地部署,兼容 OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | 无需 | Intel OpenVINO Model Server,兼容 OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | 无需 | Intel OpenVINO Model Server,兼容 OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | 视情况 | 100+ Provider 代理 | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | 必填 | 企业级 Azure 部署 | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | 设备码登录 | From 318ff4c07955a2b856bd573b238fc1c899b822c8 Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 14 Apr 2026 12:41:37 +0800 Subject: [PATCH 04/19] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- cmd/picoclaw/internal/model/command.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/picoclaw/internal/model/command.go b/cmd/picoclaw/internal/model/command.go index 72200bbe5..083f089b8 100644 --- a/cmd/picoclaw/internal/model/command.go +++ b/cmd/picoclaw/internal/model/command.go @@ -27,9 +27,9 @@ Examples: picoclaw model claude-sonnet-4.6 # Set claude-sonnet-4.6 as default picoclaw model local-model # Set local VLLM/OVMS server as default -Note: 'local-model' is a special value for using a local VLLM server +Note: 'local-model' is a special value for using a local OpenAI-compatible server (running at localhost:8000 by default) which does not require an API key. -You can also use OVMS (OpenVINO Model Server) or other OpenAI-compatible servers.`, +It can be configured to point to vLLM, OVMS (OpenVINO Model Server), or other OpenAI-compatible servers.`, Args: cobra.MaximumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { configPath := internal.GetConfigPath() From 017d3d44ff24e5d504f2d4076f052ee25748e639 Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 14 Apr 2026 13:11:45 +0800 Subject: [PATCH 05/19] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6f27a1fdb..8d404c104 100644 --- a/README.md +++ b/README.md @@ -455,6 +455,7 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use "model_list": [ { "model_name": "local-ovms", + "enabled": true, "model": "ovms/your-model", "api_base": "http://localhost:8000/v3" } From 8af4e98a9d02deb93989aaac2dd04bd5ace5fd16 Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 28 Apr 2026 23:24:18 +0800 Subject: [PATCH 06/19] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- cmd/picoclaw/internal/model/command.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/picoclaw/internal/model/command.go b/cmd/picoclaw/internal/model/command.go index 083f089b8..6676d17ce 100644 --- a/cmd/picoclaw/internal/model/command.go +++ b/cmd/picoclaw/internal/model/command.go @@ -25,7 +25,7 @@ Examples: picoclaw model # Show current default model picoclaw model gpt-5.2 # Set gpt-5.2 as default picoclaw model claude-sonnet-4.6 # Set claude-sonnet-4.6 as default - picoclaw model local-model # Set local VLLM/OVMS server as default + picoclaw model local-model # Set local vLLM/OVMS server as default Note: 'local-model' is a special value for using a local OpenAI-compatible server (running at localhost:8000 by default) which does not require an API key. From 1cbec748785c37593377bc6b74bde7100dcce5a4 Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 28 Apr 2026 23:29:45 +0800 Subject: [PATCH 07/19] update --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8d404c104..6f27a1fdb 100644 --- a/README.md +++ b/README.md @@ -455,7 +455,6 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use "model_list": [ { "model_name": "local-ovms", - "enabled": true, "model": "ovms/your-model", "api_base": "http://localhost:8000/v3" } From 903e90afcfe21a0558110a5727d29dbc9a473304 Mon Sep 17 00:00:00 2001 From: John Feng Date: Fri, 10 Apr 2026 23:37:51 +0800 Subject: [PATCH 08/19] Add ovms support --- cmd/picoclaw/internal/model/command.go | 5 +++-- pkg/audio/asr/asr.go | 6 +++++- pkg/config/defaults.go | 7 +++++++ pkg/providers/factory_provider.go | 3 ++- pkg/providers/factory_provider_test.go | 15 +++++++++++++++ web/README.md | 2 +- web/backend/api/model_status.go | 2 +- .../src/components/models/models-page.tsx | 7 ++++--- .../src/components/models/provider-icon.tsx | 1 + .../src/components/models/provider-label.ts | 1 + 10 files changed, 40 insertions(+), 9 deletions(-) diff --git a/cmd/picoclaw/internal/model/command.go b/cmd/picoclaw/internal/model/command.go index 330734b82..72200bbe5 100644 --- a/cmd/picoclaw/internal/model/command.go +++ b/cmd/picoclaw/internal/model/command.go @@ -25,10 +25,11 @@ Examples: picoclaw model # Show current default model picoclaw model gpt-5.2 # Set gpt-5.2 as default picoclaw model claude-sonnet-4.6 # Set claude-sonnet-4.6 as default - picoclaw model local-model # Set local VLLM server as default + picoclaw model local-model # Set local VLLM/OVMS server as default Note: 'local-model' is a special value for using a local VLLM server -(running at localhost:8000 by default) which does not require an API key.`, +(running at localhost:8000 by default) which does not require an API key. +You can also use OVMS (OpenVINO Model Server) or other OpenAI-compatible servers.`, Args: cobra.MaximumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { configPath := internal.GetConfigPath() diff --git a/pkg/audio/asr/asr.go b/pkg/audio/asr/asr.go index 1482f40bb..0837d4b55 100644 --- a/pkg/audio/asr/asr.go +++ b/pkg/audio/asr/asr.go @@ -26,7 +26,7 @@ func supportsAudioTranscription(modelCfg *config.ModelConfig) bool { case "openai", "azure", "azure-openai", "litellm", "openrouter", "groq", "zhipu", "gemini", "nvidia", "ollama", "moonshot", "shengsuanyun", "deepseek", "cerebras", - "vivgrid", "volcengine", "vllm", "qwen", "qwen-portal", "qwen-intl", "qwen-international", "dashscope-intl", + "vivgrid", "volcengine", "vllm", "ovms", "qwen", "qwen-portal", "qwen-intl", "qwen-international", "dashscope-intl", "qwen-us", "dashscope-us", "mistral", "avian", "minimax", "longcat", "modelscope", "novita", "coding-plan", "alibaba-coding", "qwen-coding", "zai": // These protocols all go through the OpenAI-compatible or Azure provider path in @@ -47,7 +47,11 @@ func supportsWhisperTranscription(modelCfg *config.ModelConfig) bool { switch protocol { case "openai", "litellm", "openrouter", "groq", "zhipu", "gemini", "nvidia", "ollama", "moonshot", "shengsuanyun", "deepseek", "cerebras", +<<<<<<< HEAD "vivgrid", "volcengine", "vllm", "qwen", "qwen-portal", "qwen-intl", "qwen-international", "dashscope-intl", +======= + "vivgrid", "volcengine", "vllm", "ovms", "qwen", "qwen-intl", "qwen-international", "dashscope-intl", +>>>>>>> 793357c6 (Add ovms support) "qwen-us", "dashscope-us", "mistral", "avian", "minimax", "longcat", "modelscope", "novita", "coding-plan", "alibaba-coding", "qwen-coding", "zai", "mimo": return true diff --git a/pkg/config/defaults.go b/pkg/config/defaults.go index be8c32495..d461ac447 100644 --- a/pkg/config/defaults.go +++ b/pkg/config/defaults.go @@ -271,6 +271,13 @@ func DefaultConfig() *Config { APIBase: "http://localhost:8000/v1", }, + // OVMS (local) - http://localhost:8000 + { + ModelName: "local-ovms", + Model: "ovms/custom-model", + APIBase: "http://localhost:8000/v3", + }, + // LM Studio (local) - http://localhost:1234 { ModelName: "lmstudio-local", diff --git a/pkg/providers/factory_provider.go b/pkg/providers/factory_provider.go index ce83c6c54..0b398d797 100644 --- a/pkg/providers/factory_provider.go +++ b/pkg/providers/factory_provider.go @@ -54,6 +54,7 @@ var protocolMetaByName = map[string]protocolMeta{ "alibaba-coding-anthropic": {defaultAPIBase: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic"}, "zai": {defaultAPIBase: "https://api.z.ai/api/coding/paas/v4"}, "vllm": {defaultAPIBase: "http://localhost:8000/v1", emptyAPIKeyAllowed: true}, + "ovms": {defaultAPIBase: "http://localhost:8000/v3", emptyAPIKeyAllowed: true}, "mistral": {defaultAPIBase: "https://api.mistral.ai/v1"}, "avian": {defaultAPIBase: "https://api.avian.io/v1"}, "minimax": {defaultAPIBase: "https://api.minimaxi.com/v1"}, @@ -248,7 +249,7 @@ func CreateProviderFromConfig(cfg *config.ModelConfig) (LLMProvider, string, err case "litellm", "lmstudio", "openrouter", "groq", "zhipu", "nvidia", "venice", "ollama", "moonshot", "shengsuanyun", "deepseek", "cerebras", - "vivgrid", "volcengine", "vllm", "qwen", "qwen-portal", "qwen-intl", "qwen-international", "dashscope-intl", + "vivgrid", "volcengine", "vllm", "ovms", "qwen", "qwen-portal", "qwen-intl", "qwen-international", "dashscope-intl", "qwen-us", "dashscope-us", "mistral", "avian", "longcat", "modelscope", "novita", "coding-plan", "alibaba-coding", "qwen-coding", "zai", "mimo": // All other OpenAI-compatible HTTP providers diff --git a/pkg/providers/factory_provider_test.go b/pkg/providers/factory_provider_test.go index 3dd1eefb3..4b014ab36 100644 --- a/pkg/providers/factory_provider_test.go +++ b/pkg/providers/factory_provider_test.go @@ -199,6 +199,7 @@ func TestCreateProviderFromConfig_DefaultAPIBase(t *testing.T) { {"vivgrid", "vivgrid"}, {"qwen", "qwen"}, {"vllm", "vllm"}, + {"ovms", "ovms"}, {"deepseek", "deepseek"}, {"ollama", "ollama"}, {"lmstudio", "lmstudio"}, @@ -316,6 +317,20 @@ func TestCreateProviderFromConfig_LocalProviders(t *testing.T) { apiKey: "", wantModelID: "Qwen/Qwen3-8B", }, + { + name: "OVMS with API key", + modelName: "test-ovms", + model: "ovms/llama3", + apiKey: "test-key", + wantModelID: "llama3", + }, + { + name: "OVMS without API key", + modelName: "test-ovms", + model: "ovms/llama3", + apiKey: "", + wantModelID: "llama3", + }, } for _, tt := range tests { diff --git a/web/README.md b/web/README.md index 2a57524e0..b584794ca 100644 --- a/web/README.md +++ b/web/README.md @@ -341,7 +341,7 @@ Check these in the dashboard: - a default model is selected - the model has credentials or OAuth state -- local models such as Ollama or vLLM are reachable +- local models such as Ollama, vLLM, or OVMS are reachable ### The launcher cannot find `picoclaw` diff --git a/web/backend/api/model_status.go b/web/backend/api/model_status.go index d262cf124..da8110466 100644 --- a/web/backend/api/model_status.go +++ b/web/backend/api/model_status.go @@ -176,7 +176,7 @@ func runLocalModelProbe(m *config.ModelConfig) bool { switch protocol { case "ollama": return probeOllamaModelFunc(apiBase, modelID) - case "vllm", "lmstudio": + case "vllm", "ovms", "lmstudio": return probeOpenAICompatibleModelFunc(apiBase, modelID, m.APIKey()) case "github-copilot", "copilot": return probeTCPServiceFunc(apiBase) diff --git a/web/frontend/src/components/models/models-page.tsx b/web/frontend/src/components/models/models-page.tsx index 152c47585..df1655320 100644 --- a/web/frontend/src/components/models/models-page.tsx +++ b/web/frontend/src/components/models/models-page.tsx @@ -42,9 +42,10 @@ const PROVIDER_PRIORITY: Record = { azure: 23, ollama: 24, vllm: 25, - lmstudio: 26, - zai: 27, - mimo: 28, + ovms: 26, + lmstudio: 27, + zai: 28, + mimo: 29, } interface ProviderGroup { diff --git a/web/frontend/src/components/models/provider-icon.tsx b/web/frontend/src/components/models/provider-icon.tsx index 8d1cfe2c9..1e5250855 100644 --- a/web/frontend/src/components/models/provider-icon.tsx +++ b/web/frontend/src/components/models/provider-icon.tsx @@ -41,6 +41,7 @@ const PROVIDER_DOMAINS: Record = { mistral: "mistral.ai", avian: "avian.io", vllm: "vllm.ai", + ovms: "docs.openvino.ai", zhipu: "zhipuai.cn", zai: "z.ai", mimo: "xiaomi.com", diff --git a/web/frontend/src/components/models/provider-label.ts b/web/frontend/src/components/models/provider-label.ts index 123640fe5..d72eebfc0 100644 --- a/web/frontend/src/components/models/provider-label.ts +++ b/web/frontend/src/components/models/provider-label.ts @@ -20,6 +20,7 @@ const PROVIDER_LABELS: Record = { mistral: "Mistral AI", avian: "Avian", vllm: "VLLM (local)", + ovms: "OVMS (local)", zhipu: "Zhipu AI (智谱)", zai: "Z.ai", mimo: "Xiaomi MiMo", From a4b41821904c1daafa689104ad164b95156d5279 Mon Sep 17 00:00:00 2001 From: John Feng Date: Mon, 13 Apr 2026 10:52:33 +0800 Subject: [PATCH 09/19] Update Readme --- README.md | 16 +++++++++++++++- ROADMAP.md | 2 +- docs/guides/configuration.fr.md | 2 +- docs/guides/configuration.ja.md | 2 +- docs/guides/configuration.md | 3 ++- docs/guides/configuration.pt-br.md | 2 +- docs/guides/configuration.vi.md | 2 +- docs/guides/configuration.zh.md | 3 ++- docs/guides/providers.fr.md | 5 +++-- docs/guides/providers.ja.md | 5 +++-- docs/guides/providers.md | 5 +++-- docs/guides/providers.pt-br.md | 5 +++-- docs/guides/providers.vi.md | 5 +++-- docs/guides/providers.zh.md | 5 +++-- docs/project/README.fr.md | 16 +++++++++++++++- docs/project/README.id.md | 16 +++++++++++++++- docs/project/README.it.md | 16 +++++++++++++++- docs/project/README.ja.md | 18 ++++++++++++++++-- docs/project/README.ms.md | 16 +++++++++++++++- docs/project/README.pt-br.md | 16 +++++++++++++++- docs/project/README.vi.md | 16 +++++++++++++++- docs/project/README.zh.md | 16 +++++++++++++++- 22 files changed, 163 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 73cc877fa..37b528b95 100644 --- a/README.md +++ b/README.md @@ -422,6 +422,7 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Required | MiMo models | | [Ollama](https://ollama.com/) | `ollama/` | Not needed | Local models, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Not needed | Local deployment, OpenAI-compatible | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Not needed | Intel OpenVINO Model Server, OpenAI-compatible | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Varies | Proxy for 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Required | Enterprise Azure deployment | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Device code login | @@ -431,7 +432,7 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use > \* AWS Bedrock requires build tag: `go build -tags bedrock`. Set `api_base` to a region name (e.g., `us-east-1`) for automatic endpoint resolution across all AWS partitions (aws, aws-cn, aws-us-gov). When using a full endpoint URL instead, you must also configure `AWS_REGION` via environment variable or AWS config/profile.
-Local deployment (Ollama, vLLM, etc.) +Local deployment (Ollama, vLLM, OVMS, etc.) **Ollama:** ```json @@ -459,6 +460,19 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + For full provider configuration details, see [Providers & Models](docs/guides/providers.md).
diff --git a/ROADMAP.md b/ROADMAP.md index 8c5c0e252..4e34a62ab 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -43,7 +43,7 @@ * **Provider** * [**Architecture Upgrade**](https://github.com/sipeed/picoclaw/issues/283): Refactor from "Vendor-based" to "Protocol-based" classification (e.g., OpenAI-compatible, Ollama-compatible). *(Status: In progress by @Daming, ETA 5 days)* - * **Local Models**: Deep integration with **Ollama**, **vLLM**, **LM Studio**, and **Mistral** (local inference). + * **Local Models**: Deep integration with **Ollama**, **vLLM**, **OVMS**, **LM Studio**, and **Mistral** (local inference). * **Online Models**: Continued support for frontier closed-source models. diff --git a/docs/guides/configuration.fr.md b/docs/guides/configuration.fr.md index 786a0c28f..5923a82ed 100644 --- a/docs/guides/configuration.fr.md +++ b/docs/guides/configuration.fr.md @@ -368,7 +368,7 @@ L'ancienne configuration `providers` est **dépréciée** et a été supprimée PicoClaw route les providers par famille de protocole : -- **Compatible OpenAI** : OpenRouter, Groq, Zhipu, endpoints vLLM et la plupart des autres. +- **Compatible OpenAI** : OpenRouter, Groq, Zhipu, endpoints vLLM, OVMS et la plupart des autres. - **Gemini natif** : Google Gemini via les endpoints natifs `models/*:generateContent` et `models/*:streamGenerateContent`. - **Anthropic** : Comportement natif de l'API Claude. - **Codex/OAuth** : Route d'authentification OAuth/token OpenAI. diff --git a/docs/guides/configuration.ja.md b/docs/guides/configuration.ja.md index 0234edbd7..decd2f0c5 100644 --- a/docs/guides/configuration.ja.md +++ b/docs/guides/configuration.ja.md @@ -369,7 +369,7 @@ HEARTBEAT_OK を返信 ユーザーが直接結果を受信 PicoClaw はプロトコルファミリーで Provider をルーティングします: -- **OpenAI 互換**:OpenRouter、Groq、Zhipu、vLLM スタイルのエンドポイントなど。 +- **OpenAI 互換**:OpenRouter、Groq、Zhipu、vLLM スタイルのエンドポイント、OVMSなど。 - **Gemini ネイティブ**:Google Gemini のネイティブ `models/*:generateContent` / `models/*:streamGenerateContent` エンドポイント。 - **Anthropic**:Claude ネイティブ API の動作。 - **Codex/OAuth**:OpenAI OAuth/トークン認証ルート。 diff --git a/docs/guides/configuration.md b/docs/guides/configuration.md index 28fc7b775..7efa9c69d 100644 --- a/docs/guides/configuration.md +++ b/docs/guides/configuration.md @@ -592,6 +592,7 @@ For complete documentation, see [`../security/security_configuration.md`](../sec | **OpenRouter** | `openrouter` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | | **Cerebras** | `cerebras` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun` | `https://router.shengsuanyun.com/api/v1` | OpenAI | — | @@ -848,7 +849,7 @@ The old `providers` configuration is **deprecated** and has been removed in V2. PicoClaw routes providers by protocol family: -- **OpenAI-compatible**: OpenRouter, Groq, Zhipu, vLLM-style endpoints, and most others. +- **OpenAI-compatible**: OpenRouter, Groq, Zhipu, vLLM-style endpoints, OVMS, and most others. - **Gemini native**: Google Gemini via the native `models/*:generateContent` and `models/*:streamGenerateContent` endpoints. - **Anthropic**: Claude-native API behavior. - **Codex/OAuth**: OpenAI OAuth/token authentication route. diff --git a/docs/guides/configuration.pt-br.md b/docs/guides/configuration.pt-br.md index e5d904e29..6450d2298 100644 --- a/docs/guides/configuration.pt-br.md +++ b/docs/guides/configuration.pt-br.md @@ -369,7 +369,7 @@ A configuração antiga `providers` está **depreciada** e foi removida no V2. C PicoClaw roteia providers por família de protocolo: -- **Compatível com OpenAI**: OpenRouter, Groq, Zhipu, endpoints vLLM e a maioria dos outros. +- **Compatível com OpenAI**: OpenRouter, Groq, Zhipu, endpoints vLLM, OVMS e a maioria dos outros. - **Gemini nativo**: Google Gemini via endpoints nativos `models/*:generateContent` e `models/*:streamGenerateContent`. - **Anthropic**: Comportamento nativo da API Claude. - **Codex/OAuth**: Rota de autenticação OAuth/token OpenAI. diff --git a/docs/guides/configuration.vi.md b/docs/guides/configuration.vi.md index d905b6d2b..89d0bd34a 100644 --- a/docs/guides/configuration.vi.md +++ b/docs/guides/configuration.vi.md @@ -369,7 +369,7 @@ Cấu hình `providers` cũ đã **bị deprecated** và đã được loại b PicoClaw định tuyến provider theo họ giao thức: -- **Tương thích OpenAI**: OpenRouter, Groq, Zhipu, endpoint kiểu vLLM và hầu hết các provider khác. +- **Tương thích OpenAI**: OpenRouter, Groq, Zhipu, endpoint kiểu vLLM, OVMS và hầu hết các provider khác. - **Gemini native**: Google Gemini qua các endpoint native `models/*:generateContent` và `models/*:streamGenerateContent`. - **Anthropic**: Hành vi API Claude gốc. - **Codex/OAuth**: Tuyến xác thực OAuth/token OpenAI. diff --git a/docs/guides/configuration.zh.md b/docs/guides/configuration.zh.md index dbc853d98..6f2d886cf 100644 --- a/docs/guides/configuration.zh.md +++ b/docs/guides/configuration.zh.md @@ -452,6 +452,7 @@ Agent 读取 HEARTBEAT.md | **OpenRouter** | `openrouter` | `https://openrouter.ai/api/v1` | OpenAI | [获取](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm` | `http://localhost:4000/v1` | OpenAI | 你的 LiteLLM 代理 Key | | **VLLM** | `vllm` | `http://localhost:8000/v1` | OpenAI | 本地 | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | 本地(无需密钥) | | **Cerebras** | `cerebras` | `https://api.cerebras.ai/v1` | OpenAI | [获取](https://cerebras.ai) | | **火山引擎 (豆包)** | `volcengine` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [获取](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun` | `https://router.shengsuanyun.com/api/v1` | OpenAI | — | @@ -674,7 +675,7 @@ Agent 读取 HEARTBEAT.md PicoClaw 按协议族路由提供商: -- **OpenAI 兼容**:OpenRouter、Groq、智谱、vLLM 风格端点及大多数其他提供商。 +- **OpenAI 兼容**:OpenRouter、Groq、智谱、vLLM 风格端点、OVMS及大多数其他提供商。 - **Gemini 原生**:Google Gemini 通过原生 `models/*:generateContent` 和 `models/*:streamGenerateContent` 端点接入。 - **Anthropic**:Claude 原生 API 行为。 - **Codex/OAuth**:OpenAI OAuth/Token 认证路由。 diff --git a/docs/guides/providers.fr.md b/docs/guides/providers.fr.md index aff600351..3ff122a1f 100644 --- a/docs/guides/providers.fr.md +++ b/docs/guides/providers.fr.md @@ -55,6 +55,7 @@ Cette conception permet également le **support multi-agents** avec une sélecti | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -105,7 +106,7 @@ Cette conception permet également le **support multi-agents** avec une sélecti |-------|------|--------|-------------| | `model_name` | string | Oui | Nom unique pour référencer ce modèle dans la config agent | | `model` | string | Oui | Identifiant fournisseur/modèle (ex : `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | Oui* | Clé(s) API pour l'authentification. Plusieurs clés permettent la rotation par requête. Non requis pour les fournisseurs locaux (Ollama, LM Studio, VLLM) | +| `api_keys` | string[] | Oui* | Clé(s) API pour l'authentification. Plusieurs clés permettent la rotation par requête. Non requis pour les fournisseurs locaux (Ollama, LM Studio, VLLM, OVMS) | | `api_base` | string | Non | Remplace l'URL de base API par défaut | | `proxy` | string | Non | URL du proxy HTTP pour cette entrée de modèle | | `user_agent` | string | Non | En-tête `User-Agent` personnalisé pour les requêtes API (supporté par les providers compatibles OpenAI, Gemini, Anthropic et Azure) | @@ -298,7 +299,7 @@ Pour un guide de migration détaillé, voir [migration/model-list-migration.md]( PicoClaw route les fournisseurs par famille de protocoles : -- Protocole compatible OpenAI : OpenRouter, passerelles compatibles OpenAI, Groq, Zhipu et endpoints de type vLLM. +- Protocole compatible OpenAI : OpenRouter, passerelles compatibles OpenAI, Groq, Zhipu et endpoints de type vLLM et OVMS. - Protocole Gemini natif : Google Gemini via les endpoints natifs `models/*:generateContent` et `models/*:streamGenerateContent`. - Protocole Anthropic : Comportement natif de l'API Claude. - Chemin Codex/OAuth : Route d'authentification OAuth/token OpenAI. diff --git a/docs/guides/providers.ja.md b/docs/guides/providers.ja.md index fecc74519..1e6bbe346 100644 --- a/docs/guides/providers.ja.md +++ b/docs/guides/providers.ja.md @@ -56,6 +56,7 @@ | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [キーを取得](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | LiteLLM プロキシキー | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | ローカル | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | ローカル(キー不要) | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [キーを取得](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [キーを取得](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -106,7 +107,7 @@ |-----------|------|------|------| | `model_name` | string | はい | agent 設定でこのモデルを参照するための一意の名前 | | `model` | string | はい | ベンダー/モデル識別子(例:`openai/gpt-5.4`、`azure/gpt-5.4`、`anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | はい* | 認証キー。複数キーでリクエストごとのローテーションが可能。ローカル provider(Ollama、LM Studio、VLLM)には不要 | +| `api_keys` | string[] | はい* | 認証キー。複数キーでリクエストごとのローテーションが可能。ローカル provider(Ollama、LM Studio、VLLM、OVMS)には不要 | | `api_base` | string | いいえ | デフォルトの API エンドポイント URL を上書き | | `proxy` | string | いいえ | このモデルエントリの HTTP プロキシ URL | | `user_agent` | string | いいえ | カスタム `User-Agent` リクエストヘッダー(OpenAI 互換、Gemini、Anthropic、Azure provider で対応) | @@ -310,7 +311,7 @@ PicoClaw はリクエスト送信前に外側の `litellm/` プレフィック PicoClaw はプロトコルファミリーごとに Provider をルーティングします: -- OpenAI 互換プロトコル:OpenRouter、OpenAI 互換ゲートウェイ、Groq、Zhipu、vLLM スタイルのエンドポイント。 +- OpenAI 互換プロトコル:OpenRouter、OpenAI 互換ゲートウェイ、Groq、Zhipu、vLLM スタイルのエンドポイント、OVMS。 - Gemini ネイティブプロトコル:Google Gemini のネイティブ `models/*:generateContent` / `models/*:streamGenerateContent` エンドポイント。 - Anthropic プロトコル:Claude ネイティブ API 動作。 - Codex/OAuth パス:OpenAI OAuth/Token 認証ルート。 diff --git a/docs/guides/providers.md b/docs/guides/providers.md index d99d8c016..c4d8eeb8a 100644 --- a/docs/guides/providers.md +++ b/docs/guides/providers.md @@ -64,6 +64,7 @@ This design also enables **multi-agent support** with flexible provider selectio | **OpenRouter** | `openrouter` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | | **Cerebras** | `cerebras` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -121,7 +122,7 @@ This design also enables **multi-agent support** with flexible provider selectio | `model_name` | string | Yes | Unique name used to reference this model in agent config | | `provider` | string | No | Preferred provider identifier. When present, PicoClaw sends `model` unchanged to that provider | | `model` | string | Yes | Native model ID when `provider` is set. If `provider` is omitted, the legacy `provider/model` form is still supported | -| `api_keys` | string[] | Yes* | API key(s) for authentication. Multiple keys enable per-request rotation. Not required for local providers (Ollama, LM Studio, VLLM) | +| `api_keys` | string[] | Yes* | API key(s) for authentication. Multiple keys enable per-request rotation. Not required for local providers (Ollama, LM Studio, VLLM, OVMS) | | `api_base` | string | No | Override the default API endpoint URL | | `proxy` | string | No | HTTP proxy URL for this model entry | | `user_agent` | string | No | Custom `User-Agent` header sent with API requests (supported by OpenAI-compatible, Gemini, Anthropic, and Azure providers) | @@ -454,7 +455,7 @@ For detailed migration guide, see [migration/model-list-migration.md](../migrati PicoClaw routes providers by protocol family: -- OpenAI-compatible protocol: OpenRouter, OpenAI-compatible gateways, Groq, Zhipu, and vLLM-style endpoints. +- OpenAI-compatible protocol: OpenRouter, OpenAI-compatible gateways, Groq, Zhipu, OVMS, and vLLM-style endpoints. - Gemini native protocol: Google Gemini via the native `models/*:generateContent` and `models/*:streamGenerateContent` endpoints. - Anthropic protocol: Claude-native API behavior. - Codex/OAuth path: OpenAI OAuth/token authentication route. diff --git a/docs/guides/providers.pt-br.md b/docs/guides/providers.pt-br.md index 0d45dc309..3294e0a9c 100644 --- a/docs/guides/providers.pt-br.md +++ b/docs/guides/providers.pt-br.md @@ -55,6 +55,7 @@ Este design também permite **suporte multi-agente** com seleção flexível de | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -105,7 +106,7 @@ Este design também permite **suporte multi-agente** com seleção flexível de |-------|------|-------------|-----------| | `model_name` | string | Sim | Nome único para referenciar este modelo na config do agent | | `model` | string | Sim | Identificador fornecedor/modelo (ex: `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | Sim* | Chave(s) API para autenticação. Múltiplas chaves permitem rotação por requisição. Não necessário para providers locais (Ollama, LM Studio, VLLM) | +| `api_keys` | string[] | Sim* | Chave(s) API para autenticação. Múltiplas chaves permitem rotação por requisição. Não necessário para providers locais (Ollama, LM Studio, VLLM, OVMS) | | `api_base` | string | Não | Substitui a URL base da API padrão | | `proxy` | string | Não | URL do proxy HTTP para esta entrada de modelo | | `user_agent` | string | Não | Cabeçalho `User-Agent` personalizado enviado com requisições API (suportado por providers OpenAI-compatible, Gemini, Anthropic e Azure) | @@ -298,7 +299,7 @@ Para guia de migração detalhado, veja [migration/model-list-migration.md](../m O PicoClaw roteia provedores por família de protocolo: -- Protocolo compatível com OpenAI: OpenRouter, gateways compatíveis com OpenAI, Groq, Zhipu e endpoints estilo vLLM. +- Protocolo compatível com OpenAI: OpenRouter, gateways compatíveis com OpenAI, Groq, Zhipu, endpoints estilo vLLM e OVMS. - Protocolo Gemini nativo: Google Gemini via endpoints nativos `models/*:generateContent` e `models/*:streamGenerateContent`. - Protocolo Anthropic: Comportamento nativo da API Claude. - Caminho Codex/OAuth: Rota de autenticação OAuth/token da OpenAI. diff --git a/docs/guides/providers.vi.md b/docs/guides/providers.vi.md index c354461cf..2881b7b9a 100644 --- a/docs/guides/providers.vi.md +++ b/docs/guides/providers.vi.md @@ -55,6 +55,7 @@ Thiết kế này cũng cho phép **hỗ trợ đa agent** với lựa chọn pr | **OpenRouter** | `openrouter/` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm/` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm/` | `http://localhost:8000/v1` | OpenAI | Local | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local | | **Cerebras** | `cerebras/` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine/` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun/` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -105,7 +106,7 @@ Thiết kế này cũng cho phép **hỗ trợ đa agent** với lựa chọn pr |--------|------|----------|------| | `model_name` | string | Có | Tên duy nhất để tham chiếu model này trong cấu hình agent | | `model` | string | Có | Định danh nhà cung cấp/model (ví dụ: `openai/gpt-5.4`, `azure/gpt-5.4`, `anthropic/claude-sonnet-4.6`) | -| `api_keys` | string[] | Có* | Khóa API xác thực. Nhiều khóa cho phép xoay vòng theo yêu cầu. Không cần thiết cho provider nội bộ (Ollama, LM Studio, VLLM) | +| `api_keys` | string[] | Có* | Khóa API xác thực. Nhiều khóa cho phép xoay vòng theo yêu cầu. Không cần thiết cho provider nội bộ (Ollama, LM Studio, VLLM, OVMS) | | `api_base` | string | Không | Ghi đè URL endpoint API mặc định | | `proxy` | string | Không | URL proxy HTTP cho entry model này | | `user_agent` | string | Không | Header `User-Agent` tùy chỉnh gửi với yêu cầu API (được hỗ trợ bởi provider OpenAI-compatible, Gemini, Anthropic và Azure) | @@ -298,7 +299,7 @@ Cấu hình `providers` cũ đã **bị deprecated** và đã được loại b PicoClaw định tuyến provider theo họ giao thức: -- Giao thức tương thích OpenAI: OpenRouter, gateway tương thích OpenAI, Groq, Zhipu, và endpoint kiểu vLLM. +- Giao thức tương thích OpenAI: OpenRouter, gateway tương thích OpenAI, Groq, Zhipu, endpoint kiểu vLLM và OVMS. - Giao thức Gemini native: Google Gemini qua các endpoint native `models/*:generateContent` và `models/*:streamGenerateContent`. - Giao thức Anthropic: Hành vi API native của Claude. - Đường dẫn Codex/OAuth: Tuyến xác thực OAuth/token của OpenAI. diff --git a/docs/guides/providers.zh.md b/docs/guides/providers.zh.md index 1302407a3..e8e69f569 100644 --- a/docs/guides/providers.zh.md +++ b/docs/guides/providers.zh.md @@ -62,6 +62,7 @@ | **OpenRouter** | `openrouter` | `https://openrouter.ai/api/v1` | OpenAI | [获取密钥](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm` | `http://localhost:4000/v1` | OpenAI | 你的 LiteLLM 代理密钥 | | **VLLM** | `vllm` | `http://localhost:8000/v1` | OpenAI | 本地 | +| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | 本地(无需密钥) | | **Cerebras** | `cerebras` | `https://api.cerebras.ai/v1` | OpenAI | [获取密钥](https://cerebras.ai) | | **火山引擎(Doubao)** | `volcengine` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [获取密钥](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -118,7 +119,7 @@ | `model_name` | string | 是 | 在 agent 配置中引用此模型的唯一名称 | | `provider` | string | 否 | 推荐的 provider 标识。设置后,PicoClaw 会将 `model` 原样发送给该 provider | | `model` | string | 是 | 当设置 `provider` 时,这里填写 provider 原生模型 ID。若未设置 `provider`,仍兼容旧的 `provider/model` 写法 | -| `api_keys` | string[] | 是* | 认证密钥。多个密钥可按请求轮换。本地 provider(Ollama、LM Studio、VLLM)不需要 | +| `api_keys` | string[] | 是* | 认证密钥。多个密钥可按请求轮换。本地 provider(Ollama、LM Studio、VLLM、OVMS)不需要 | | `api_base` | string | 否 | 覆盖默认的 API 端点 URL | | `proxy` | string | 否 | 此模型条目的 HTTP 代理 URL | | `user_agent` | string | 否 | 自定义 `User-Agent` 请求头(支持 OpenAI 兼容、Gemini、Anthropic 和 Azure provider) | @@ -423,7 +424,7 @@ PicoClaw 按下面的规则解析 `provider` 和最终发给上游的模型 ID PicoClaw 按协议族路由 Provider: -- OpenAI 兼容协议:OpenRouter、OpenAI 兼容网关、Groq、智谱、vLLM 风格端点。 +- OpenAI 兼容协议:OpenRouter、OpenAI 兼容网关、Groq、智谱、vLLM 风格端点和OVMS。 - Gemini 原生协议:Google Gemini 通过原生 `models/*:generateContent` 和 `models/*:streamGenerateContent` 端点接入。 - Anthropic 协议:Claude 原生 API 行为。 - Codex/OAuth 路径:OpenAI OAuth/Token 认证路由。 diff --git a/docs/project/README.fr.md b/docs/project/README.fr.md index 1e2f59bee..cb062c61d 100644 --- a/docs/project/README.fr.md +++ b/docs/project/README.fr.md @@ -421,13 +421,14 @@ PicoClaw supporte plus de 30 providers LLM via la configuration `model_list`. Ut | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Requise | Modèles MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Non requise | Modèles locaux, auto-hébergé | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Non requise | Déploiement local, compatible OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Non requise | Intel OpenVINO Model Server, compatible OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Variable | Proxy pour 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Requise | Déploiement Azure entreprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Connexion par code appareil | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Déploiement local (Ollama, vLLM, etc.) +Déploiement local (Ollama, vLLM, OVMS, etc.) **Ollama :** ```json @@ -455,6 +456,19 @@ PicoClaw supporte plus de 30 providers LLM via la configuration `model_list`. Ut } ``` +**OVMS (OpenVINO Model Server) :** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Pour les détails complets de configuration des providers, voir [Providers & Models](../guides/providers.fr.md).
diff --git a/docs/project/README.id.md b/docs/project/README.id.md index 244e6e49a..35f7292e1 100644 --- a/docs/project/README.id.md +++ b/docs/project/README.id.md @@ -416,13 +416,14 @@ PicoClaw mendukung 30+ provider LLM melalui konfigurasi `model_list`. Gunakan fo | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Diperlukan | Model MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Tidak perlu | Model lokal, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Tidak perlu | Deploy lokal, kompatibel OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, kompatibel OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Bervariasi | Proxy untuk 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Diperlukan | Deploy Azure enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login dengan device code | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Deploy lokal (Ollama, vLLM, dll.) +Deploy lokal (Ollama, vLLM, OVMS, dll.) **Ollama:** ```json @@ -450,6 +451,19 @@ PicoClaw mendukung 30+ provider LLM melalui konfigurasi `model_list`. Gunakan fo } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Untuk detail konfigurasi provider lengkap, lihat [Providers & Models](../guides/providers.md).
diff --git a/docs/project/README.it.md b/docs/project/README.it.md index b3db6fece..3dc90de91 100644 --- a/docs/project/README.it.md +++ b/docs/project/README.it.md @@ -416,13 +416,14 @@ PicoClaw supporta 30+ provider LLM tramite la configurazione `model_list`. Usa i | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Richiesta | Modelli MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Non necessaria | Modelli locali, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Non necessaria | Deploy locale, compatibile OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Non necessaria | Intel OpenVINO Model Server, compatibile OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Variabile | Proxy per 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Richiesta | Deploy Azure enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login con device code | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Deploy locale (Ollama, vLLM, ecc.) +Deploy locale (Ollama, vLLM, OVMS, ecc.) **Ollama:** ```json @@ -450,6 +451,19 @@ PicoClaw supporta 30+ provider LLM tramite la configurazione `model_list`. Usa i } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Per i dettagli completi sulla configurazione dei provider, vedi [Provider & Modelli](../guides/providers.md).
diff --git a/docs/project/README.ja.md b/docs/project/README.ja.md index 66d06ba5e..44efd1e64 100644 --- a/docs/project/README.ja.md +++ b/docs/project/README.ja.md @@ -417,13 +417,14 @@ PicoClaw は `model_list` 設定を通じて 30 以上の LLM Provider をサポ | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | 必須 | MiMo モデル | | [Ollama](https://ollama.com/) | `ollama/` | 不要 | ローカルモデル、セルフホスト | | [vLLM](https://docs.vllm.ai/) | `vllm/` | 不要 | ローカルデプロイ、OpenAI 互換 | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | 不要 | Intel OpenVINO Model Server、OpenAI 互換 | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | 場合による | 100 以上の Provider のプロキシ | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | 必須 | エンタープライズ Azure デプロイ | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | デバイスコードログイン | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-ローカルデプロイ(Ollama、vLLM など) +ローカルデプロイ(Ollama、vLLM、OVMS など) **Ollama:** ```json @@ -451,7 +452,20 @@ PicoClaw は `model_list` 設定を通じて 30 以上の LLM Provider をサポ } ``` -Provider の完全な設定詳細は [Provider とモデル](../guides/providers.ja.md) を参照してください。 +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + +Provider の完全な設定詳細は [Provider とモデル](../guides/providers.ja.md) を参照してください。。
diff --git a/docs/project/README.ms.md b/docs/project/README.ms.md index f8c9e95e7..0bce767c2 100644 --- a/docs/project/README.ms.md +++ b/docs/project/README.ms.md @@ -412,6 +412,7 @@ PicoClaw menyokong 30+ penyedia LLM melalui konfigurasi `model_list`. Gunakan fo | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Diperlukan | Model MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Tidak perlu | Model tempatan, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Tidak perlu | Deployment tempatan, serasi OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, serasi OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Berbeza | Proksi untuk 100+ penyedia | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Diperlukan | Deployment Azure perusahaan | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Log masuk kod peranti | @@ -421,7 +422,7 @@ PicoClaw menyokong 30+ penyedia LLM melalui konfigurasi `model_list`. Gunakan fo > \* AWS Bedrock memerlukan tag binaan: `go build -tags bedrock`. Tetapkan `api_base` kepada nama rantau (cth. `us-east-1`) untuk resolusi endpoint automatik merentasi semua partition AWS. Apabila menggunakan URL endpoint penuh, anda juga perlu mengkonfigurasi `AWS_REGION` melalui pemboleh ubah persekitaran.
-Deployment tempatan (Ollama, vLLM, dll.) +Deployment tempatan (Ollama, vLLM, OVMS, dll.) **Ollama:** ```json @@ -449,6 +450,19 @@ PicoClaw menyokong 30+ penyedia LLM melalui konfigurasi `model_list`. Gunakan fo } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Untuk butiran konfigurasi penyedia penuh, lihat [Penyedia & Model](../guides/providers.md).
diff --git a/docs/project/README.pt-br.md b/docs/project/README.pt-br.md index 56d4ddd63..7f54705aa 100644 --- a/docs/project/README.pt-br.md +++ b/docs/project/README.pt-br.md @@ -417,13 +417,14 @@ O PicoClaw suporta mais de 30 providers de LLM através da configuração `model | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Obrigatória | Modelos MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Não necessária | Modelos locais, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Não necessária | Implantação local, compatível com OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Não necessária | Intel OpenVINO Model Server, compatível com OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Varia | Proxy para 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Obrigatória | Implantação Azure Enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login por código de dispositivo | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Implantação local (Ollama, vLLM, etc.) +Implantação local (Ollama, vLLM, OVMS, etc.) **Ollama:** ```json @@ -451,6 +452,19 @@ O PicoClaw suporta mais de 30 providers de LLM através da configuração `model } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Para detalhes completos de configuração de providers, veja [Providers & Models](../guides/providers.pt-br.md).
diff --git a/docs/project/README.vi.md b/docs/project/README.vi.md index 52a56796b..cfe9b900d 100644 --- a/docs/project/README.vi.md +++ b/docs/project/README.vi.md @@ -417,13 +417,14 @@ PicoClaw hỗ trợ 30+ Provider LLM thông qua cấu hình `model_list`. Sử d | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Bắt buộc | Mô hình MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Không cần | Mô hình cục bộ, tự lưu trữ | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Không cần | Triển khai cục bộ, tương thích OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Không cần | Intel OpenVINO Model Server, tương thích OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Tùy | Proxy cho 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Bắt buộc | Triển khai Azure doanh nghiệp | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Đăng nhập bằng device code | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-Triển khai cục bộ (Ollama, vLLM, v.v.) +Triển khai cục bộ (Ollama, vLLM, OVMS, v.v.) **Ollama:** ```json @@ -451,6 +452,19 @@ PicoClaw hỗ trợ 30+ Provider LLM thông qua cấu hình `model_list`. Sử d } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + Để biết chi tiết cấu hình provider đầy đủ, xem [Providers & Models](../guides/providers.vi.md).
diff --git a/docs/project/README.zh.md b/docs/project/README.zh.md index a4fc892bd..f945e91b0 100644 --- a/docs/project/README.zh.md +++ b/docs/project/README.zh.md @@ -417,13 +417,14 @@ PicoClaw 通过 `model_list` 配置支持 30+ LLM Provider,使用 `协议/模 | [小米 MiMo](https://platform.xiaomimimo.com/) | `mimo/` | 必填 | MiMo 系列模型 | | [Ollama](https://ollama.com/) | `ollama/` | 无需 | 本地模型,自托管 | | [vLLM](https://docs.vllm.ai/) | `vllm/` | 无需 | 本地部署,兼容 OpenAI | +| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | 无需 | Intel OpenVINO Model Server,兼容 OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | 视情况 | 100+ Provider 代理 | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | 必填 | 企业级 Azure 部署 | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | 设备码登录 | | [Antigravity](https://console.cloud.google.com/) | `antigravity/` | OAuth | Google Cloud AI |
-本地部署(Ollama、vLLM 等) +本地部署(Ollama、vLLM、OVMS 等) **Ollama:** ```json @@ -451,6 +452,19 @@ PicoClaw 通过 `model_list` 配置支持 30+ LLM Provider,使用 `协议/模 } ``` +**OVMS (OpenVINO Model Server):** +```json +{ + "model_list": [ + { + "model_name": "local-ovms", + "model": "ovms/your-model", + "api_base": "http://localhost:8000/v3" + } + ] +} +``` + 完整 Provider 配置详情请参阅 [Providers & Models](../guides/providers.zh.md)。
From b10e0233617a60806b22e4225db6e876d27ba1db Mon Sep 17 00:00:00 2001 From: John Feng Date: Mon, 13 Apr 2026 10:58:24 +0800 Subject: [PATCH 10/19] Update link --- README.md | 2 +- docs/project/README.fr.md | 2 +- docs/project/README.id.md | 2 +- docs/project/README.it.md | 2 +- docs/project/README.ja.md | 2 +- docs/project/README.ms.md | 2 +- docs/project/README.pt-br.md | 2 +- docs/project/README.vi.md | 2 +- docs/project/README.zh.md | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 37b528b95..8514a1c3d 100644 --- a/README.md +++ b/README.md @@ -422,7 +422,7 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Required | MiMo models | | [Ollama](https://ollama.com/) | `ollama/` | Not needed | Local models, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Not needed | Local deployment, OpenAI-compatible | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Not needed | Intel OpenVINO Model Server, OpenAI-compatible | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Not needed | Intel OpenVINO Model Server, OpenAI-compatible | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Varies | Proxy for 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Required | Enterprise Azure deployment | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Device code login | diff --git a/docs/project/README.fr.md b/docs/project/README.fr.md index cb062c61d..5c74a3c8d 100644 --- a/docs/project/README.fr.md +++ b/docs/project/README.fr.md @@ -421,7 +421,7 @@ PicoClaw supporte plus de 30 providers LLM via la configuration `model_list`. Ut | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Requise | Modèles MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Non requise | Modèles locaux, auto-hébergé | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Non requise | Déploiement local, compatible OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Non requise | Intel OpenVINO Model Server, compatible OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Non requise | Intel OpenVINO Model Server, compatible OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Variable | Proxy pour 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Requise | Déploiement Azure entreprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Connexion par code appareil | diff --git a/docs/project/README.id.md b/docs/project/README.id.md index 35f7292e1..b2cebdab4 100644 --- a/docs/project/README.id.md +++ b/docs/project/README.id.md @@ -416,7 +416,7 @@ PicoClaw mendukung 30+ provider LLM melalui konfigurasi `model_list`. Gunakan fo | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Diperlukan | Model MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Tidak perlu | Model lokal, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Tidak perlu | Deploy lokal, kompatibel OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, kompatibel OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, kompatibel OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Bervariasi | Proxy untuk 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Diperlukan | Deploy Azure enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login dengan device code | diff --git a/docs/project/README.it.md b/docs/project/README.it.md index 3dc90de91..f6a11ef7a 100644 --- a/docs/project/README.it.md +++ b/docs/project/README.it.md @@ -416,7 +416,7 @@ PicoClaw supporta 30+ provider LLM tramite la configurazione `model_list`. Usa i | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Richiesta | Modelli MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Non necessaria | Modelli locali, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Non necessaria | Deploy locale, compatibile OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Non necessaria | Intel OpenVINO Model Server, compatibile OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Non necessaria | Intel OpenVINO Model Server, compatibile OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Variabile | Proxy per 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Richiesta | Deploy Azure enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login con device code | diff --git a/docs/project/README.ja.md b/docs/project/README.ja.md index 44efd1e64..e5f3865fb 100644 --- a/docs/project/README.ja.md +++ b/docs/project/README.ja.md @@ -417,7 +417,7 @@ PicoClaw は `model_list` 設定を通じて 30 以上の LLM Provider をサポ | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | 必須 | MiMo モデル | | [Ollama](https://ollama.com/) | `ollama/` | 不要 | ローカルモデル、セルフホスト | | [vLLM](https://docs.vllm.ai/) | `vllm/` | 不要 | ローカルデプロイ、OpenAI 互換 | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | 不要 | Intel OpenVINO Model Server、OpenAI 互換 | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | 不要 | Intel OpenVINO Model Server、OpenAI 互換 | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | 場合による | 100 以上の Provider のプロキシ | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | 必須 | エンタープライズ Azure デプロイ | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | デバイスコードログイン | diff --git a/docs/project/README.ms.md b/docs/project/README.ms.md index 0bce767c2..878c18a05 100644 --- a/docs/project/README.ms.md +++ b/docs/project/README.ms.md @@ -412,7 +412,7 @@ PicoClaw menyokong 30+ penyedia LLM melalui konfigurasi `model_list`. Gunakan fo | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Diperlukan | Model MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Tidak perlu | Model tempatan, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Tidak perlu | Deployment tempatan, serasi OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, serasi OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Tidak perlu | Intel OpenVINO Model Server, serasi OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Berbeza | Proksi untuk 100+ penyedia | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Diperlukan | Deployment Azure perusahaan | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Log masuk kod peranti | diff --git a/docs/project/README.pt-br.md b/docs/project/README.pt-br.md index 7f54705aa..698d7862e 100644 --- a/docs/project/README.pt-br.md +++ b/docs/project/README.pt-br.md @@ -417,7 +417,7 @@ O PicoClaw suporta mais de 30 providers de LLM através da configuração `model | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Obrigatória | Modelos MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Não necessária | Modelos locais, self-hosted | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Não necessária | Implantação local, compatível com OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Não necessária | Intel OpenVINO Model Server, compatível com OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Não necessária | Intel OpenVINO Model Server, compatível com OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Varia | Proxy para 100+ providers | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Obrigatória | Implantação Azure Enterprise | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Login por código de dispositivo | diff --git a/docs/project/README.vi.md b/docs/project/README.vi.md index cfe9b900d..14a4b38ba 100644 --- a/docs/project/README.vi.md +++ b/docs/project/README.vi.md @@ -417,7 +417,7 @@ PicoClaw hỗ trợ 30+ Provider LLM thông qua cấu hình `model_list`. Sử d | [Xiaomi MiMo](https://platform.xiaomimimo.com/) | `mimo/` | Bắt buộc | Mô hình MiMo | | [Ollama](https://ollama.com/) | `ollama/` | Không cần | Mô hình cục bộ, tự lưu trữ | | [vLLM](https://docs.vllm.ai/) | `vllm/` | Không cần | Triển khai cục bộ, tương thích OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | Không cần | Intel OpenVINO Model Server, tương thích OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | Không cần | Intel OpenVINO Model Server, tương thích OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | Tùy | Proxy cho 100+ provider | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | Bắt buộc | Triển khai Azure doanh nghiệp | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | Đăng nhập bằng device code | diff --git a/docs/project/README.zh.md b/docs/project/README.zh.md index f945e91b0..cfb50ab8f 100644 --- a/docs/project/README.zh.md +++ b/docs/project/README.zh.md @@ -417,7 +417,7 @@ PicoClaw 通过 `model_list` 配置支持 30+ LLM Provider,使用 `协议/模 | [小米 MiMo](https://platform.xiaomimimo.com/) | `mimo/` | 必填 | MiMo 系列模型 | | [Ollama](https://ollama.com/) | `ollama/` | 无需 | 本地模型,自托管 | | [vLLM](https://docs.vllm.ai/) | `vllm/` | 无需 | 本地部署,兼容 OpenAI | -| [OVMS](https://docs.openvino.ai/2024/openvino-workflow/model-server.html) | `ovms/` | 无需 | Intel OpenVINO Model Server,兼容 OpenAI | +| [OVMS](https://docs.openvino.ai/2026/model-server/ovms_docs_llm_quickstart.html) | `ovms/` | 无需 | Intel OpenVINO Model Server,兼容 OpenAI | | [LiteLLM](https://docs.litellm.ai/) | `litellm/` | 视情况 | 100+ Provider 代理 | | [Azure OpenAI](https://portal.azure.com/) | `azure/` | 必填 | 企业级 Azure 部署 | | [GitHub Copilot](https://github.com/features/copilot) | `github-copilot/` | OAuth | 设备码登录 | From e4cb0a123624bacbcd9b2d04b1ba0833590c652b Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 14 Apr 2026 12:41:37 +0800 Subject: [PATCH 11/19] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- cmd/picoclaw/internal/model/command.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/picoclaw/internal/model/command.go b/cmd/picoclaw/internal/model/command.go index 72200bbe5..083f089b8 100644 --- a/cmd/picoclaw/internal/model/command.go +++ b/cmd/picoclaw/internal/model/command.go @@ -27,9 +27,9 @@ Examples: picoclaw model claude-sonnet-4.6 # Set claude-sonnet-4.6 as default picoclaw model local-model # Set local VLLM/OVMS server as default -Note: 'local-model' is a special value for using a local VLLM server +Note: 'local-model' is a special value for using a local OpenAI-compatible server (running at localhost:8000 by default) which does not require an API key. -You can also use OVMS (OpenVINO Model Server) or other OpenAI-compatible servers.`, +It can be configured to point to vLLM, OVMS (OpenVINO Model Server), or other OpenAI-compatible servers.`, Args: cobra.MaximumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { configPath := internal.GetConfigPath() From f3cd194e84875609db7a50ac3a37b49c9cbb2bb3 Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 14 Apr 2026 13:11:45 +0800 Subject: [PATCH 12/19] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8514a1c3d..70f28d5f1 100644 --- a/README.md +++ b/README.md @@ -466,6 +466,7 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use "model_list": [ { "model_name": "local-ovms", + "enabled": true, "model": "ovms/your-model", "api_base": "http://localhost:8000/v3" } From 907ec75fd4f048facdd11b158a177c7b7f932472 Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 28 Apr 2026 23:24:18 +0800 Subject: [PATCH 13/19] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- cmd/picoclaw/internal/model/command.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/picoclaw/internal/model/command.go b/cmd/picoclaw/internal/model/command.go index 083f089b8..6676d17ce 100644 --- a/cmd/picoclaw/internal/model/command.go +++ b/cmd/picoclaw/internal/model/command.go @@ -25,7 +25,7 @@ Examples: picoclaw model # Show current default model picoclaw model gpt-5.2 # Set gpt-5.2 as default picoclaw model claude-sonnet-4.6 # Set claude-sonnet-4.6 as default - picoclaw model local-model # Set local VLLM/OVMS server as default + picoclaw model local-model # Set local vLLM/OVMS server as default Note: 'local-model' is a special value for using a local OpenAI-compatible server (running at localhost:8000 by default) which does not require an API key. From 5bf4d531dbbbdea12979ced3146a0e54c5784b53 Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 28 Apr 2026 23:29:45 +0800 Subject: [PATCH 14/19] update --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 70f28d5f1..8514a1c3d 100644 --- a/README.md +++ b/README.md @@ -466,7 +466,6 @@ PicoClaw supports 30+ LLM providers through the `model_list` configuration. Use "model_list": [ { "model_name": "local-ovms", - "enabled": true, "model": "ovms/your-model", "api_base": "http://localhost:8000/v3" } From 1ab8396c750538641e6b604235cb018de45c4649 Mon Sep 17 00:00:00 2001 From: John Feng Date: Wed, 29 Apr 2026 02:05:34 +0800 Subject: [PATCH 15/19] update and remove conflict content --- pkg/audio/asr/asr.go | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/pkg/audio/asr/asr.go b/pkg/audio/asr/asr.go index d94bcf334..ae0a94c37 100644 --- a/pkg/audio/asr/asr.go +++ b/pkg/audio/asr/asr.go @@ -47,15 +47,7 @@ func supportsWhisperTranscription(modelCfg *config.ModelConfig) bool { switch protocol { case "openai", "litellm", "openrouter", "groq", "zhipu", "gemini", "nvidia", "ollama", "moonshot", "shengsuanyun", "deepseek", "cerebras", -<<<<<<< HEAD -<<<<<<< HEAD - "vivgrid", "volcengine", "vllm", "qwen", "qwen-portal", "qwen-intl", "qwen-international", "dashscope-intl", -======= - "vivgrid", "volcengine", "vllm", "ovms", "qwen", "qwen-intl", "qwen-international", "dashscope-intl", ->>>>>>> 793357c6 (Add ovms support) -======= - "vivgrid", "volcengine", "vllm", "ovms", "qwen", "qwen-intl", "qwen-international", "dashscope-intl", ->>>>>>> 1cbec748785c37593377bc6b74bde7100dcce5a4 + "vivgrid", "volcengine", "vllm", "ovms", "qwen", "qwen-portal", "qwen-intl", "qwen-international", "dashscope-intl", "qwen-us", "dashscope-us", "mistral", "avian", "minimax", "longcat", "modelscope", "novita", "coding-plan", "alibaba-coding", "qwen-coding", "zai", "mimo": return true From b71fae2dce634322e1de73511b625c028856b629 Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 28 Apr 2026 21:40:37 -0800 Subject: [PATCH 16/19] update based on Copilot review --- docs/guides/configuration.md | 2 +- docs/guides/configuration.zh.md | 4 ++-- docs/guides/providers.md | 2 +- docs/guides/providers.zh.md | 4 ++-- docs/project/README.ja.md | 2 +- pkg/config/defaults.go | 3 ++- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/guides/configuration.md b/docs/guides/configuration.md index 7efa9c69d..5722feb8d 100644 --- a/docs/guides/configuration.md +++ b/docs/guides/configuration.md @@ -592,7 +592,7 @@ For complete documentation, see [`../security/security_configuration.md`](../sec | **OpenRouter** | `openrouter` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm` | `http://localhost:8000/v1` | OpenAI | Local | -| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | +| **OVMS** | `ovms` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | | **Cerebras** | `cerebras` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun` | `https://router.shengsuanyun.com/api/v1` | OpenAI | — | diff --git a/docs/guides/configuration.zh.md b/docs/guides/configuration.zh.md index 6f2d886cf..5a101ec6a 100644 --- a/docs/guides/configuration.zh.md +++ b/docs/guides/configuration.zh.md @@ -452,7 +452,7 @@ Agent 读取 HEARTBEAT.md | **OpenRouter** | `openrouter` | `https://openrouter.ai/api/v1` | OpenAI | [获取](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm` | `http://localhost:4000/v1` | OpenAI | 你的 LiteLLM 代理 Key | | **VLLM** | `vllm` | `http://localhost:8000/v1` | OpenAI | 本地 | -| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | 本地(无需密钥) | +| **OVMS** | `ovms` | `http://localhost:8000/v3` | OpenAI | 本地(无需密钥) | | **Cerebras** | `cerebras` | `https://api.cerebras.ai/v1` | OpenAI | [获取](https://cerebras.ai) | | **火山引擎 (豆包)** | `volcengine` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [获取](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun` | `https://router.shengsuanyun.com/api/v1` | OpenAI | — | @@ -675,7 +675,7 @@ Agent 读取 HEARTBEAT.md PicoClaw 按协议族路由提供商: -- **OpenAI 兼容**:OpenRouter、Groq、智谱、vLLM 风格端点、OVMS及大多数其他提供商。 +- **OpenAI 兼容**:OpenRouter、Groq、智谱、vLLM 风格端点、OVMS 及大多数其他提供商。 - **Gemini 原生**:Google Gemini 通过原生 `models/*:generateContent` 和 `models/*:streamGenerateContent` 端点接入。 - **Anthropic**:Claude 原生 API 行为。 - **Codex/OAuth**:OpenAI OAuth/Token 认证路由。 diff --git a/docs/guides/providers.md b/docs/guides/providers.md index c4d8eeb8a..0f9d2aa1c 100644 --- a/docs/guides/providers.md +++ b/docs/guides/providers.md @@ -64,7 +64,7 @@ This design also enables **multi-agent support** with flexible provider selectio | **OpenRouter** | `openrouter` | `https://openrouter.ai/api/v1` | OpenAI | [Get Key](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm` | `http://localhost:4000/v1` | OpenAI | Your LiteLLM proxy key | | **VLLM** | `vllm` | `http://localhost:8000/v1` | OpenAI | Local | -| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | +| **OVMS** | `ovms` | `http://localhost:8000/v3` | OpenAI | Local (no key needed) | | **Cerebras** | `cerebras` | `https://api.cerebras.ai/v1` | OpenAI | [Get Key](https://cerebras.ai) | | **VolcEngine (Doubao)** | `volcengine` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [Get Key](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | diff --git a/docs/guides/providers.zh.md b/docs/guides/providers.zh.md index e8e69f569..da7946944 100644 --- a/docs/guides/providers.zh.md +++ b/docs/guides/providers.zh.md @@ -62,7 +62,7 @@ | **OpenRouter** | `openrouter` | `https://openrouter.ai/api/v1` | OpenAI | [获取密钥](https://openrouter.ai/keys) | | **LiteLLM Proxy** | `litellm` | `http://localhost:4000/v1` | OpenAI | 你的 LiteLLM 代理密钥 | | **VLLM** | `vllm` | `http://localhost:8000/v1` | OpenAI | 本地 | -| **OVMS** | `ovms/` | `http://localhost:8000/v3` | OpenAI | 本地(无需密钥) | +| **OVMS** | `ovms` | `http://localhost:8000/v3` | OpenAI | 本地(无需密钥) | | **Cerebras** | `cerebras` | `https://api.cerebras.ai/v1` | OpenAI | [获取密钥](https://cerebras.ai) | | **火山引擎(Doubao)** | `volcengine` | `https://ark.cn-beijing.volces.com/api/v3` | OpenAI | [获取密钥](https://www.volcengine.com/activity/codingplan?utm_campaign=PicoClaw&utm_content=PicoClaw&utm_medium=devrel&utm_source=OWO&utm_term=PicoClaw) | | **神算云** | `shengsuanyun` | `https://router.shengsuanyun.com/api/v1` | OpenAI | - | @@ -424,7 +424,7 @@ PicoClaw 按下面的规则解析 `provider` 和最终发给上游的模型 ID PicoClaw 按协议族路由 Provider: -- OpenAI 兼容协议:OpenRouter、OpenAI 兼容网关、Groq、智谱、vLLM 风格端点和OVMS。 +- OpenAI 兼容协议:OpenRouter、OpenAI 兼容网关、Groq、智谱、vLLM 风格端点和 OVMS。 - Gemini 原生协议:Google Gemini 通过原生 `models/*:generateContent` 和 `models/*:streamGenerateContent` 端点接入。 - Anthropic 协议:Claude 原生 API 行为。 - Codex/OAuth 路径:OpenAI OAuth/Token 认证路由。 diff --git a/docs/project/README.ja.md b/docs/project/README.ja.md index e5f3865fb..75cb4e38f 100644 --- a/docs/project/README.ja.md +++ b/docs/project/README.ja.md @@ -465,7 +465,7 @@ PicoClaw は `model_list` 設定を通じて 30 以上の LLM Provider をサポ } ``` -Provider の完全な設定詳細は [Provider とモデル](../guides/providers.ja.md) を参照してください。。 +Provider の完全な設定詳細は [Provider とモデル](../guides/providers.ja.md) を参照してください。 diff --git a/pkg/config/defaults.go b/pkg/config/defaults.go index d461ac447..288834dcb 100644 --- a/pkg/config/defaults.go +++ b/pkg/config/defaults.go @@ -274,7 +274,8 @@ func DefaultConfig() *Config { // OVMS (local) - http://localhost:8000 { ModelName: "local-ovms", - Model: "ovms/custom-model", + Provider: "ovms", + Model: "custom-model", APIBase: "http://localhost:8000/v3", }, From 4afa1a1b0f1426b49781a60f37ff882f3b3e1c1c Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 5 May 2026 12:12:23 +0800 Subject: [PATCH 17/19] add test for ovms --- web/backend/api/model_status_test.go | 50 ++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/web/backend/api/model_status_test.go b/web/backend/api/model_status_test.go index d5463a856..2c1056657 100644 --- a/web/backend/api/model_status_test.go +++ b/web/backend/api/model_status_test.go @@ -89,6 +89,56 @@ func TestProbeLocalModelAvailability_LMStudioUsesOpenAICompatibleProbe(t *testin } } +func TestRequiresRuntimeProbe_OVMS(t *testing.T) { + if !requiresRuntimeProbe(&config.ModelConfig{ + Model: "ovms/llama3", + }) { + t.Fatal("requiresRuntimeProbe(ovms with default base) = false, want true") + } + + if requiresRuntimeProbe(&config.ModelConfig{ + Model: "ovms/llama3", + APIBase: "https://api.example.com/v3", + }) { + t.Fatal("requiresRuntimeProbe(ovms with remote base) = true, want false") + } +} + +func TestModelProbeAPIBase_OVMSDefault(t *testing.T) { + got := modelProbeAPIBase(&config.ModelConfig{Model: "ovms/llama3"}) + if got != "http://localhost:8000/v3" { + t.Fatalf("modelProbeAPIBase(ovms) = %q, want %q", got, "http://localhost:8000/v3") + } +} + +func TestProbeLocalModelAvailability_OVMSUsesOpenAICompatibleProbe(t *testing.T) { + originalProbe := probeOpenAICompatibleModelFunc + defer func() { probeOpenAICompatibleModelFunc = originalProbe }() + + called := false + probeOpenAICompatibleModelFunc = func(apiBase, modelID, apiKey string) bool { + called = true + if apiBase != "http://localhost:8000/v3" { + t.Fatalf("apiBase = %q, want %q", apiBase, "http://localhost:8000/v3") + } + if modelID != "llama3" { + t.Fatalf("modelID = %q, want %q", modelID, "llama3") + } + if apiKey != "" { + t.Fatalf("apiKey = %q, want empty", apiKey) + } + return true + } + + model := &config.ModelConfig{Model: "ovms/llama3"} + if !probeLocalModelAvailability(model) { + t.Fatal("probeLocalModelAvailability(ovms) = false, want true") + } + if !called { + t.Fatal("probeOpenAICompatibleModelFunc was not called for ovms") + } +} + func TestModelProbeCacheKey_DifferentAPIKeysProduceDifferentKeys(t *testing.T) { base := &config.ModelConfig{ ModelName: "local-vllm", From 03b45056e4b5f5e9697f68c91470cfdb0876d448 Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 5 May 2026 12:29:28 +0800 Subject: [PATCH 18/19] add header back --- docs/guides/providers.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guides/providers.md b/docs/guides/providers.md index e2b9b37b3..678fd32fb 100644 --- a/docs/guides/providers.md +++ b/docs/guides/providers.md @@ -117,6 +117,8 @@ This design also enables **multi-agent support** with flexible provider selectio #### `model_list` Entry Fields +| Field | Type | Required | Description | +|-------|------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `model_name` | string | Yes | Unique name used to reference this model in agent config | | `provider` | string | No | Preferred provider identifier. When present, PicoClaw sends `model` unchanged to that provider | | `model` | string | Yes | Native model ID when `provider` is set. If `provider` is omitted, the legacy `provider/model` form is still supported | From d0e0eea7b856f1e5b751a7446c2b6021b592ff5c Mon Sep 17 00:00:00 2001 From: John Feng Date: Tue, 5 May 2026 12:39:36 +0800 Subject: [PATCH 19/19] update based on copilot review --- cmd/picoclaw/internal/model/command.go | 9 ++++---- pkg/audio/asr/asr_test.go | 29 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/cmd/picoclaw/internal/model/command.go b/cmd/picoclaw/internal/model/command.go index c06fd31e3..4de76951b 100644 --- a/cmd/picoclaw/internal/model/command.go +++ b/cmd/picoclaw/internal/model/command.go @@ -30,12 +30,13 @@ Examples: picoclaw model # Show current default model picoclaw model gpt-5.2 # Set gpt-5.2 as default picoclaw model claude-sonnet-4.6 # Set claude-sonnet-4.6 as default - picoclaw model local-model # Set local vLLM/OVMS server as default + picoclaw model local-model # Set local vLLM server as default + picoclaw model local-ovms # Set local OVMS server as default picoclaw model add -b URL -k KEY # Add a model from a custom endpoint -Note: 'local-model' is a special value for using a local OpenAI-compatible server -(running at localhost:8000 by default) which does not require an API key. -It can be configured to point to vLLM, OVMS (OpenVINO Model Server), or other OpenAI-compatible servers.`, +Note: 'local-model' is a built-in entry for a local vLLM server (localhost:8000/v1). + 'local-ovms' is a built-in entry for a local OVMS server (localhost:8000/v3). + Neither requires an API key.`, Args: cobra.MaximumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { configPath := internal.GetConfigPath() diff --git a/pkg/audio/asr/asr_test.go b/pkg/audio/asr/asr_test.go index 0970d69f4..42e150e4e 100644 --- a/pkg/audio/asr/asr_test.go +++ b/pkg/audio/asr/asr_test.go @@ -206,6 +206,35 @@ func TestDetectTranscriber(t *testing.T) { }, wantName: "audio-model", }, + { + name: "ovms voice model name selects audio model transcriber", + cfg: &config.Config{ + Voice: config.VoiceConfig{ModelName: "local-ovms"}, + ModelList: []*config.ModelConfig{ + { + ModelName: "local-ovms", + Model: "ovms/custom-model", + APIBase: "http://localhost:8000/v3", + }, + }, + }, + wantName: "audio-model", + }, + { + name: "ovms voice model name with whisper model selects whisper transcriber", + cfg: &config.Config{ + Voice: config.VoiceConfig{ModelName: "local-ovms"}, + ModelList: []*config.ModelConfig{ + { + ModelName: "local-ovms", + Model: "ovms/whisper-large-v3", + APIBase: "http://localhost:8000/v3", + APIKeys: config.SimpleSecureStrings("sk-ovms-test"), + }, + }, + }, + wantName: "whisper", + }, } for _, tc := range tests {