新增 Anthropic Compatible provider 支援本機 LLM endpoint#2
Conversation
There was a problem hiding this comment.
Pull request overview
新增 anthropic-compatible 翻譯 provider,讓擴充套件可連到實作 Anthropic Messages API(/v1/messages)的本機/雲端端點,並將其視為「local compatible provider」以套用本機併發限制與免填 API key 的行為。
Changes:
- 新增
anthropic-compatibleprovider(Bearer 認證;本機可不帶 key),並註冊到 provider registry。 - 新增 local provider 判斷(
isLocalTranslationProvider),套用到 content orchestrator queue 與 service worker 的 API key gate。 - Options UI/ i18n/測試更新:provider 下拉新增選項、endpoint 欄位在 local providers 間共用、補齊對應單元測試。
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| apps/extension/src/shared/types.ts | 擴充 TranslationProviderId union,加入 anthropic-compatible。 |
| apps/extension/src/shared/migrations/versions/v0.ts | v0 設定解析允許的 provider 清單加入 anthropic-compatible(見 PR comment:不應修改 frozen snapshot)。 |
| apps/extension/src/shared/localProviders.ts | 新增 local compatible providers 列表與 type guard。 |
| apps/extension/src/shared/defaults.ts | 新增 anthropic-compatible 預設 endpoint/model。 |
| apps/extension/src/shared/defaults.test.ts | 補齊新 provider 的 defaults 覆蓋測試。 |
| apps/extension/src/options/providerSettings.ts | data-provider-section 支援多 provider 值;切換 provider 時套用對應 defaults。 |
| apps/extension/src/options/providerSettings.test.ts | 測試 endpoint 欄位在 openai/anthropic compatible 間的切換與預設值行為。 |
| apps/extension/src/options/optionsLayout.test.ts | 驗證 endpoint 欄位被 scope 到 local compatible provider sections。 |
| apps/extension/src/options/i18n/zh-TW.ts | 新增 Anthropic-compatible 本機 endpoint 相關字串;更新 apiKey hint。 |
| apps/extension/src/options/i18n/zh-CN.ts | 同上(簡中)。 |
| apps/extension/src/options/i18n/ko.ts | 同上(韓文)。 |
| apps/extension/src/options/i18n/ja.ts | 同上(日文)。 |
| apps/extension/src/options/i18n/fr.ts | 同上(法文)。 |
| apps/extension/src/options/i18n/es.ts | 同上(西文)。 |
| apps/extension/src/options/i18n/en.ts | 同上(英文)。 |
| apps/extension/src/options/i18n/de.ts | 同上(德文)。 |
| apps/extension/src/options/i18n/types.ts | MESSAGE_KEYS 增加新 i18n key。 |
| apps/extension/src/content/orchestrator.ts | 以 isLocalTranslationProvider 決定本機 queue 的 batch/concurrency。 |
| apps/extension/src/content/orchestrator.test.ts | 將本機 queue 行為測試擴充到兩種 local compatible providers。 |
| apps/extension/src/background/serviceWorker.ts | local providers 免 API key 檢查(翻譯與 list models)。 |
| apps/extension/src/background/serviceWorker.test.ts | 擴充免 key 行為測試到 anthropic-compatible(含 stub response)。 |
| apps/extension/src/background/providers/index.ts | 註冊 anthropic-compatible 到 provider registry。 |
| apps/extension/src/background/providers/index.test.ts | provider registry 覆蓋測試加入 anthropic-compatible。 |
| apps/extension/src/background/providers/anthropic.ts | 新增 anthropicCompatibleProvider;依 provider 決定 header(anthropic: x-api-key + browser-access;compatible: Bearer 可選)。 |
| apps/extension/src/background/providers/anthropic.test.ts | 新增 anthropicCompatibleProvider 的 translate/listModels header 行為測試。 |
| apps/extension/public/options.html | Options UI 新增 provider 選項、Anthropic-compatible 區塊與共用 endpoint 欄位。 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| } | ||
|
|
||
| const PROVIDERS: readonly TranslationProviderId[] = ["openai", "anthropic", "google", "openai-compatible"]; | ||
| const PROVIDERS: readonly TranslationProviderId[] = ["openai", "anthropic", "google", "openai-compatible", "anthropic-compatible"]; |
Support local runtimes (oMLX, LM Studio) and cloud services (Ollama Cloud) that implement the Anthropic Messages API format. Uses Bearer auth instead of x-api-key to align with openai-compatible and work across services. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
e873165 to
4f2eccf
Compare
|
Thanks again for the contribution. We've taken over the final integration pass, rebased this PR onto the latest We're preparing to merge this PR. The feature will ship together with the next Margin Read release. 再次感謝這次的貢獻。 我們已經接手完成最後整合,將這個 PR rebase 到最新的 我們準備合併這個 PR。這個功能會在下一次 Margin Read 發新版時一併上線。 |
|
@Mapleeeeeeeeeee 感謝參與,我們預計下次發 patch 版本就會一併推出 |
摘要
anthropic-compatibleprovider,支援實作 Anthropic Messages API(/v1/messages)的本機 runtime(oMLX、LM Studio)與雲端服務(Ollama Cloud)Authorization: Bearer(非x-api-key),與openai-compatible對齊,相容 Ollama Cloud 等服務openai-compatible共用,orchestrator 套用本機 concurrency 限制測試計畫
gemma4:31b翻譯(tool_use 路徑)gemma-4-e4b-it-4bit翻譯(tool_use)、Qwen3.5-9B(text fallback)anthropicprovider 行為不變(維持x-api-key+anthropic-dangerous-direct-browser-access)🤖 Generated with Claude Code