From 3803fdc8b958c90352d2e7d996e19d6e978ccb18 Mon Sep 17 00:00:00 2001 From: wu21-web Date: Fri, 7 Aug 2026 21:20:02 +0900 Subject: [PATCH 01/10] outline siliconflow provider structure --- internal/llm/providers.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/llm/providers.go b/internal/llm/providers.go index 1f097dfe..111f1589 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -338,6 +338,16 @@ var registry = []Provider{ "deepseek/deepseek-chat", }, }, + { + Name: "siliconflow", + DisplayName: "SiliconFlow API", + Protocol: ProtocolOpenAIChatCompletions, + BaseURL: "https://api.siliconflow.com/v1", + EnvVar: "SILICONFLOW_API_KEY", + Models: []string{ + // PLACEHOLDER + }, + }, } var registryMap map[string]Provider From 4157ad330c4d9791f4a445ea677c9334c849b65f Mon Sep 17 00:00:00 2001 From: wu21-web Date: Fri, 7 Aug 2026 21:21:27 +0900 Subject: [PATCH 02/10] tests: add siliconflow to expected providers --- internal/llm/providers_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/llm/providers_test.go b/internal/llm/providers_test.go index 1e3113c1..59ee6a0e 100644 --- a/internal/llm/providers_test.go +++ b/internal/llm/providers_test.go @@ -75,7 +75,7 @@ func TestListProviders_Order(t *testing.T) { if len(providers) < 3 { t.Fatalf("expected at least 3 providers, got %d", len(providers)) } - expected := []string{"anthropic", "baidu-qianfan", "dashscope", "dashscope-tokenplan", "deepseek", "edenai", "hy-tokenplan", "iflytek", "kimi", "litellm", "mimo", "minimax", "minimax-cn", "ollama-cloud", "openai", "tencent-tokenhub", "volcengine", "z-ai", "z-ai-coding"} + expected := []string{"anthropic", "baidu-qianfan", "dashscope", "dashscope-tokenplan", "deepseek", "edenai", "hy-tokenplan", "iflytek", "kimi", "litellm", "mimo", "minimax", "minimax-cn", "ollama-cloud", "openai", "tencent-tokenhub", "volcengine", "z-ai", "z-ai-coding", "siliconflow"} if len(providers) != len(expected) { t.Fatalf("expected %d providers, got %d", len(expected), len(providers)) } From a7268be49b26ed376dea64349b8d7e96c45dbe70 Mon Sep 17 00:00:00 2001 From: wu21-web Date: Fri, 7 Aug 2026 21:53:57 +0900 Subject: [PATCH 03/10] docs: update --- pages/src/content/docs/en/configuration.md | 1 + pages/src/content/docs/ja/configuration.md | 1 + pages/src/content/docs/ru/configuration.md | 1 + pages/src/content/docs/zh/configuration.md | 1 + 4 files changed, 4 insertions(+) diff --git a/pages/src/content/docs/en/configuration.md b/pages/src/content/docs/en/configuration.md index cbb310fb..39e5021a 100644 --- a/pages/src/content/docs/en/configuration.md +++ b/pages/src/content/docs/en/configuration.md @@ -59,6 +59,7 @@ environment variable. | `minimax` | openai | `https://api.minimax.io/v1` | `MINIMAX_GLOBAL_API_KEY` | | `minimax-cn` | openai | `https://api.minimaxi.com/v1` | `MINIMAX_API_KEY` | | `baidu-qianfan` | openai | `https://qianfan.baidubce.com/v2` | `QIANFAN_API_KEY` | +| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_API_KEY` | ### Custom providers diff --git a/pages/src/content/docs/ja/configuration.md b/pages/src/content/docs/ja/configuration.md index ffb26f61..ce1354c9 100644 --- a/pages/src/content/docs/ja/configuration.md +++ b/pages/src/content/docs/ja/configuration.md @@ -57,6 +57,7 @@ ocr config set providers.anthropic.api_key sk-ant-xxxxxxxxxx | `minimax` | openai | `https://api.minimax.io/v1` | `MINIMAX_GLOBAL_API_KEY` | | `minimax-cn` | openai | `https://api.minimaxi.com/v1` | `MINIMAX_API_KEY` | | `baidu-qianfan` | openai | `https://qianfan.baidubce.com/v2` | `QIANFAN_API_KEY` | +| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_API_KEY` | ### カスタム provider diff --git a/pages/src/content/docs/ru/configuration.md b/pages/src/content/docs/ru/configuration.md index dc0c0159..c8ec4fce 100644 --- a/pages/src/content/docs/ru/configuration.md +++ b/pages/src/content/docs/ru/configuration.md @@ -62,6 +62,7 @@ API-ключ. Если `providers..api_key` не задан, OCR испо | `minimax` | openai | `https://api.minimax.io/v1` | `MINIMAX_GLOBAL_API_KEY` | | `minimax-cn` | openai | `https://api.minimaxi.com/v1` | `MINIMAX_API_KEY` | | `baidu-qianfan` | openai | `https://qianfan.baidubce.com/v2` | `QIANFAN_API_KEY` | +| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_API_KEY` | ### Пользовательские провайдеры diff --git a/pages/src/content/docs/zh/configuration.md b/pages/src/content/docs/zh/configuration.md index 586c4a44..b0979e7b 100644 --- a/pages/src/content/docs/zh/configuration.md +++ b/pages/src/content/docs/zh/configuration.md @@ -56,6 +56,7 @@ ocr config set providers.anthropic.api_key sk-ant-xxxxxxxxxx | `minimax` | openai | `https://api.minimax.io/v1` | `MINIMAX_GLOBAL_API_KEY` | | `minimax-cn` | openai | `https://api.minimaxi.com/v1` | `MINIMAX_API_KEY` | | `baidu-qianfan` | openai | `https://qianfan.baidubce.com/v2` | `QIANFAN_API_KEY` | +| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_API_KEY` | ### 自定义 provider From 3d5c44ecc6e5502676d26ab88b1fe8a2166f0336 Mon Sep 17 00:00:00 2001 From: wu21-web Date: Fri, 7 Aug 2026 22:22:52 +0900 Subject: [PATCH 04/10] add models --- internal/llm/providers.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/llm/providers.go b/internal/llm/providers.go index 111f1589..cf5ba26a 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -345,7 +345,15 @@ var registry = []Provider{ BaseURL: "https://api.siliconflow.com/v1", EnvVar: "SILICONFLOW_API_KEY", Models: []string{ - // PLACEHOLDER + "deepseek-ai/DeepSeek-V3.2", + "deepseek-ai/Deepseek-v4-pro", + "deepseek-ai/DeepSeek-V3", + "deepseek-ai/DeepSeek-R1", + "Qwen/Qwen3-32B", + "Qwen/Qwen3-14B", + "moonshotai/Kimi-K2.5", + "zai-org/GLM-5", + "baidu/ERNIE-4.5-300B-A47B", }, }, } From 27251535fa9148c39146426efa89d29d9a8964fb Mon Sep 17 00:00:00 2001 From: wu21-web Date: Fri, 7 Aug 2026 22:23:02 +0900 Subject: [PATCH 05/10] fix alphabet order --- internal/llm/providers_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/llm/providers_test.go b/internal/llm/providers_test.go index 59ee6a0e..bf70fb4a 100644 --- a/internal/llm/providers_test.go +++ b/internal/llm/providers_test.go @@ -75,7 +75,7 @@ func TestListProviders_Order(t *testing.T) { if len(providers) < 3 { t.Fatalf("expected at least 3 providers, got %d", len(providers)) } - expected := []string{"anthropic", "baidu-qianfan", "dashscope", "dashscope-tokenplan", "deepseek", "edenai", "hy-tokenplan", "iflytek", "kimi", "litellm", "mimo", "minimax", "minimax-cn", "ollama-cloud", "openai", "tencent-tokenhub", "volcengine", "z-ai", "z-ai-coding", "siliconflow"} + expected := []string{"anthropic", "baidu-qianfan", "dashscope", "dashscope-tokenplan", "deepseek", "edenai", "hy-tokenplan", "iflytek", "kimi", "litellm", "mimo", "minimax", "minimax-cn", "ollama-cloud", "openai", "siliconflow", "tencent-tokenhub", "volcengine", "z-ai", "z-ai-coding"} if len(providers) != len(expected) { t.Fatalf("expected %d providers, got %d", len(expected), len(providers)) } From de1ba0d8fbb677b3810ec5934bc9a90509697479 Mon Sep 17 00:00:00 2001 From: Tao Xin Date: Fri, 7 Aug 2026 22:39:25 +0900 Subject: [PATCH 06/10] Update internal/llm/providers.go Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- internal/llm/providers.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/llm/providers.go b/internal/llm/providers.go index cf5ba26a..7f459ce2 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -346,7 +346,7 @@ var registry = []Provider{ EnvVar: "SILICONFLOW_API_KEY", Models: []string{ "deepseek-ai/DeepSeek-V3.2", - "deepseek-ai/Deepseek-v4-pro", + "deepseek-ai/DeepSeek-V4-Pro", "deepseek-ai/DeepSeek-V3", "deepseek-ai/DeepSeek-R1", "Qwen/Qwen3-32B", From dd048f0fec59e37e08d0230ba6126625b000e6e6 Mon Sep 17 00:00:00 2001 From: wu21-web Date: Fri, 7 Aug 2026 23:03:07 +0900 Subject: [PATCH 07/10] fix: naming to avoid clashing with cn version --- internal/llm/providers.go | 2 +- pages/src/content/docs/en/configuration.md | 2 +- pages/src/content/docs/ja/configuration.md | 2 +- pages/src/content/docs/ru/configuration.md | 2 +- pages/src/content/docs/zh/configuration.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/llm/providers.go b/internal/llm/providers.go index 7f459ce2..68eae9a1 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -343,7 +343,7 @@ var registry = []Provider{ DisplayName: "SiliconFlow API", Protocol: ProtocolOpenAIChatCompletions, BaseURL: "https://api.siliconflow.com/v1", - EnvVar: "SILICONFLOW_API_KEY", + EnvVar: "SILICONFLOW_GLOBAL_API_KEY", Models: []string{ "deepseek-ai/DeepSeek-V3.2", "deepseek-ai/DeepSeek-V4-Pro", diff --git a/pages/src/content/docs/en/configuration.md b/pages/src/content/docs/en/configuration.md index 39e5021a..43c14f20 100644 --- a/pages/src/content/docs/en/configuration.md +++ b/pages/src/content/docs/en/configuration.md @@ -59,7 +59,7 @@ environment variable. | `minimax` | openai | `https://api.minimax.io/v1` | `MINIMAX_GLOBAL_API_KEY` | | `minimax-cn` | openai | `https://api.minimaxi.com/v1` | `MINIMAX_API_KEY` | | `baidu-qianfan` | openai | `https://qianfan.baidubce.com/v2` | `QIANFAN_API_KEY` | -| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_API_KEY` | +| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_GLOBAL_API_KEY` | ### Custom providers diff --git a/pages/src/content/docs/ja/configuration.md b/pages/src/content/docs/ja/configuration.md index ce1354c9..a339d1db 100644 --- a/pages/src/content/docs/ja/configuration.md +++ b/pages/src/content/docs/ja/configuration.md @@ -57,7 +57,7 @@ ocr config set providers.anthropic.api_key sk-ant-xxxxxxxxxx | `minimax` | openai | `https://api.minimax.io/v1` | `MINIMAX_GLOBAL_API_KEY` | | `minimax-cn` | openai | `https://api.minimaxi.com/v1` | `MINIMAX_API_KEY` | | `baidu-qianfan` | openai | `https://qianfan.baidubce.com/v2` | `QIANFAN_API_KEY` | -| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_API_KEY` | +| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_GLOBAL_API_KEY` | ### カスタム provider diff --git a/pages/src/content/docs/ru/configuration.md b/pages/src/content/docs/ru/configuration.md index c8ec4fce..34427568 100644 --- a/pages/src/content/docs/ru/configuration.md +++ b/pages/src/content/docs/ru/configuration.md @@ -62,7 +62,7 @@ API-ключ. Если `providers..api_key` не задан, OCR испо | `minimax` | openai | `https://api.minimax.io/v1` | `MINIMAX_GLOBAL_API_KEY` | | `minimax-cn` | openai | `https://api.minimaxi.com/v1` | `MINIMAX_API_KEY` | | `baidu-qianfan` | openai | `https://qianfan.baidubce.com/v2` | `QIANFAN_API_KEY` | -| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_API_KEY` | +| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_GLOBAL_API_KEY` | ### Пользовательские провайдеры diff --git a/pages/src/content/docs/zh/configuration.md b/pages/src/content/docs/zh/configuration.md index b0979e7b..444396da 100644 --- a/pages/src/content/docs/zh/configuration.md +++ b/pages/src/content/docs/zh/configuration.md @@ -56,7 +56,7 @@ ocr config set providers.anthropic.api_key sk-ant-xxxxxxxxxx | `minimax` | openai | `https://api.minimax.io/v1` | `MINIMAX_GLOBAL_API_KEY` | | `minimax-cn` | openai | `https://api.minimaxi.com/v1` | `MINIMAX_API_KEY` | | `baidu-qianfan` | openai | `https://qianfan.baidubce.com/v2` | `QIANFAN_API_KEY` | -| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_API_KEY` | +| `siliconflow` | openai | `https://api.siliconflow.com/v1` | `SILICONFLOW_GLOBAL_API_KEY` | ### 自定义 provider From c075aa96b28f284b38bffc393a67550c9d5ea872 Mon Sep 17 00:00:00 2001 From: wu21-web Date: Mon, 10 Aug 2026 20:37:09 +0900 Subject: [PATCH 08/10] feat(providers): update SiliconFlow models and remove stale entries --- internal/llm/providers.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/internal/llm/providers.go b/internal/llm/providers.go index 8a261738..70bb1f69 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -345,15 +345,12 @@ var registry = []Provider{ BaseURL: "https://api.siliconflow.com/v1", EnvVar: "SILICONFLOW_GLOBAL_API_KEY", Models: []string{ - "deepseek-ai/DeepSeek-V3.2", "deepseek-ai/DeepSeek-V4-Pro", - "deepseek-ai/DeepSeek-V3", - "deepseek-ai/DeepSeek-R1", - "Qwen/Qwen3-32B", - "Qwen/Qwen3-14B", - "moonshotai/Kimi-K2.5", - "zai-org/GLM-5", - "baidu/ERNIE-4.5-300B-A47B", + "deepseek-ai/DeepSeek-V4-Flash", + "meituan-longcat/LongCat-2.0", + "Qwen/Qwen3.6-27B", + "moonshotai/Kimi-K2.7-Code", + "zai-org/GLM-5.2", }, }, { From 21aa757ea966fc6d7c29c741b03e08be06de6c30 Mon Sep 17 00:00:00 2001 From: Tao Xin Date: Tue, 11 Aug 2026 15:39:30 +0900 Subject: [PATCH 09/10] Remove LongCat-2.0 from models list --- internal/llm/providers.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/llm/providers.go b/internal/llm/providers.go index 70bb1f69..13ebcc4b 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -347,7 +347,6 @@ var registry = []Provider{ Models: []string{ "deepseek-ai/DeepSeek-V4-Pro", "deepseek-ai/DeepSeek-V4-Flash", - "meituan-longcat/LongCat-2.0", "Qwen/Qwen3.6-27B", "moonshotai/Kimi-K2.7-Code", "zai-org/GLM-5.2", From fe20bdb5eba95b35a70bc3140897d4e80fc6ca69 Mon Sep 17 00:00:00 2001 From: kite Date: Wed, 12 Aug 2026 11:01:57 +0800 Subject: [PATCH 10/10] =?UTF-8?q?fix:=20correct=20indentation=20(spaces=20?= =?UTF-8?q?=E2=86=92=20tabs)=20in=20siliconflow=20provider?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/llm/providers.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/llm/providers.go b/internal/llm/providers.go index 6d22268d..5ddcd015 100644 --- a/internal/llm/providers.go +++ b/internal/llm/providers.go @@ -356,15 +356,15 @@ var registry = []Provider{ Protocol: ProtocolOpenAIChatCompletions, BaseURL: "https://api.siliconflow.com/v1", EnvVar: "SILICONFLOW_GLOBAL_API_KEY", - Models: []string{ + Models: []string{ "deepseek-ai/DeepSeek-V4-Pro", "deepseek-ai/DeepSeek-V4-Flash", "Qwen/Qwen3.6-27B", "moonshotai/Kimi-K2.7-Code", "zai-org/GLM-5.2", }, - }, - { + }, + { Name: "siliconflow-cn", DisplayName: "SiliconFlow CN API", Protocol: ProtocolOpenAIChatCompletions,