diff --git a/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/enums/model/AiPlatformEnum.java b/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/enums/model/AiPlatformEnum.java index c1709aad8580091bef34bd2ba1c3cfbf27a0d0a6..5aa2681ed0feb13adc4cd44b3ac6a1394221c050 100644 --- a/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/enums/model/AiPlatformEnum.java +++ b/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/enums/model/AiPlatformEnum.java @@ -58,6 +58,7 @@ public enum AiPlatformEnum { MIDJOURNEY("Midjourney", "Midjourney", "","",""), // Midjourney SUNO("Suno", "Suno", "","",""), // Suno AI GROK("Grok", "Grok", "","",""), // Grok + ORCA_ROUTER("OrcaRouter", "OrcaRouter", "","OpenAI 兼容的 LLM 路由网关,OrcaRouter 提供的模型。","https://api.orcarouter.ai/v1"), // OrcaRouter ; diff --git a/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/service/impl/ChatModelServiceImpl.java b/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/service/impl/ChatModelServiceImpl.java index 58113b0123e0730a7dd42cea92060919955ef033..4504e584b681f20c68cf08d8e2969b4ffb38d2f6 100644 --- a/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/service/impl/ChatModelServiceImpl.java +++ b/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/service/impl/ChatModelServiceImpl.java @@ -70,6 +70,7 @@ public class ChatModelServiceImpl implements IChatModelService { case TONG_YI -> chatModel = this.getDashScopeChatModel(apiKey, modelName); case OLLAMA -> chatModel = this.getOllamaChatModel(baseUrl, modelName); case DEEP_SEEK -> chatModel = this.getDeepSeekChatModel(apiKey, modelName); + case ORCA_ROUTER -> chatModel = this.getOpenAiChatModel(baseUrl, apiKey, modelName); default -> throw new ServiceException("暂时不支持该平台"); } return chatModel; diff --git a/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/service/impl/EmbeddingServiceImpl.java b/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/service/impl/EmbeddingServiceImpl.java index feadc0a93b600efe893a4b7108a5409ee222cdb0..0d91af06fe278896df7065405287107993de1e1d 100644 --- a/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/service/impl/EmbeddingServiceImpl.java +++ b/qknow-framework/qknow-ai/src/main/java/tech/qiantong/qknow/ai/service/impl/EmbeddingServiceImpl.java @@ -67,6 +67,7 @@ public class EmbeddingServiceImpl implements IEmbeddingService { case "OpenAI" -> embeddingModel = this.getOpenAiModel(baseUrl, apiKey, modelName); case "TongYi" -> embeddingModel = this.getDashScopeModel(apiKey, modelName); case "Ollama" -> embeddingModel = this.getOllamaModel(baseUrl, modelName); + case "OrcaRouter" -> embeddingModel = this.getOpenAiModel(baseUrl, apiKey, modelName); default -> throw new ServiceException("暂时不支持该平台"); } diff --git a/qknow-ui/src/views/ai/modelMarket/index.vue b/qknow-ui/src/views/ai/modelMarket/index.vue index 04084a73b2bb3dfae6c7b7c474cb0bd44704b2fd..eaf41e674ad66b2965e7f654cf04d42abe447dd4 100644 --- a/qknow-ui/src/views/ai/modelMarket/index.vue +++ b/qknow-ui/src/views/ai/modelMarket/index.vue @@ -189,6 +189,11 @@ key: 'Ollama', keyUrl: '', desc: '123' + }, + { + key: 'OrcaRouter', + keyUrl: 'https://www.orcarouter.ai', + desc: '从 OrcaRouter 获取 API KEY' } ]); // 列显隐信息 diff --git a/qknow-ui/src/views/ai/myModel/index.vue b/qknow-ui/src/views/ai/myModel/index.vue index dd635cf3a09da6dffe081b5f9a7fdf6a68c972c7..afc6f49aefb8da07f79a897220620a37eb461ccb 100644 --- a/qknow-ui/src/views/ai/myModel/index.vue +++ b/qknow-ui/src/views/ai/myModel/index.vue @@ -183,6 +183,11 @@ key: 'Ollama', keyUrl: '', desc: '123' + }, + { + key: 'OrcaRouter', + keyUrl: 'https://www.orcarouter.ai', + desc: '从 OrcaRouter 获取 API KEY' } ]); // 列显隐信息 diff --git a/sql/mysql/change.sql b/sql/mysql/change.sql index 455b1aaed9d53b202f66da5b907c6d1066d3b350..fdeafd8dad907a3a3cfe3130d300a0ffde8a8199 100644 --- a/sql/mysql/change.sql +++ b/sql/mysql/change.sql @@ -220,6 +220,7 @@ INSERT INTO `system_dict_data` VALUES (162, 3, '通义千问', 'TongYi', 'ai_mod INSERT INTO `system_dict_data` VALUES (163, 2, 'Ollama', 'Ollama', 'ai_model_platform', NULL, 'default', 'N', '0', '吴同', '2026-04-24 10:01:38', '吴同', '2026-04-24 10:01:38', NULL); INSERT INTO `system_dict_data` VALUES (164, 3, '已配置', '2', 'ai_apikey_status', NULL, 'default', 'N', '0', '吴同', '2026-04-24 10:01:38', '吴同', '2026-04-24 10:01:38', NULL); INSERT INTO `system_dict_data` VALUES (172, 4, 'OpenAI', 'OpenAI', 'ai_model_platform', NULL, 'default', 'N', '0', '吴同', '2026-04-21 13:57:05', '吴同', '2026-04-21 13:57:05', NULL); +INSERT INTO `system_dict_data` VALUES (187, 5, 'OrcaRouter', 'OrcaRouter', 'ai_model_platform', NULL, 'default', 'N', '0', '吴同', '2026-08-17 10:00:00', '', NULL, NULL); -- v2.0.2版本change.sql diff --git "a/sql/mysql/latest\345\210\235\345\247\213\345\214\226.sql" "b/sql/mysql/latest\345\210\235\345\247\213\345\214\226.sql" index 46331864e2941c6732ed79dec92c89f11aabc495..94ea1e236b7f795d0ecf1fbc0642b9f1e1c60ebb 100644 --- "a/sql/mysql/latest\345\210\235\345\247\213\345\214\226.sql" +++ "b/sql/mysql/latest\345\210\235\345\247\213\345\214\226.sql" @@ -2865,6 +2865,7 @@ INSERT INTO `system_dict_data` VALUES (162, 3, '通义千问', 'TongYi', 'ai_mod INSERT INTO `system_dict_data` VALUES (163, 2, 'Ollama', 'Ollama', 'ai_model_platform', NULL, 'default', 'N', '0', '吴同', '2026-04-24 10:01:38', '吴同', '2026-04-24 10:01:38', NULL); INSERT INTO `system_dict_data` VALUES (164, 3, '已配置', '2', 'ai_apikey_status', NULL, 'default', 'N', '0', '吴同', '2026-04-24 10:01:38', '吴同', '2026-04-24 10:01:38', NULL); INSERT INTO `system_dict_data` VALUES (172, 4, 'OpenAI', 'OpenAI', 'ai_model_platform', NULL, 'default', 'N', '0', '吴同', '2026-04-21 13:57:05', '吴同', '2026-04-21 13:57:05', NULL); +INSERT INTO `system_dict_data` VALUES (187, 5, 'OrcaRouter', 'OrcaRouter', 'ai_model_platform', NULL, 'default', 'N', '0', '吴同', '2026-08-17 10:00:00', '', NULL, NULL); INSERT INTO `system_dict_data` VALUES (173, 1, '启用', 'true', 'kmc_know_valid', 'enabled', 'default', 'N', '0', '吴同', '2026-04-21 13:57:05', '吴同', '2026-05-07 14:14:41', NULL); INSERT INTO `system_dict_data` VALUES (175, 1, '工作流', '0', 'kg_bot_type', NULL, 'primary', 'N', '0', '吴同', '2026-05-07 16:47:34', '', NULL, NULL); INSERT INTO `system_dict_data` VALUES (176, 2, 'Chatflow', '1', 'kg_bot_type', NULL, 'primary', 'N', '0', '吴同', '2026-05-07 16:47:34', '', NULL, NULL);