feat(provider): add Baidu Qianfan and JDCloud support with base URL presets

This commit is contained in:
jxxghp
2026-05-08 09:46:12 +08:00
parent 05d720d81f
commit d43ef610c7
4 changed files with 123 additions and 77 deletions

View File

@@ -210,6 +210,42 @@ class LlmProviderRegistryTest(unittest.TestCase):
self.assertEqual([item["id"] for item in models], ["frog-1"])
self.assertEqual(models[0]["source"], "models.dev")
def test_builtin_provider_includes_baidu_qianfan_base_url_presets(self):
manager = LLMProviderManager()
provider = manager.get_provider("baidu-qianfan-coding-plan")
self.assertEqual(provider.name, "百度千帆")
self.assertEqual(provider.runtime, "openai_compatible")
self.assertEqual(provider.default_base_url, "https://qianfan.baidubce.com/v2")
self.assertEqual(
tuple((preset.label, preset.value) for preset in provider.base_url_presets),
(
("通用 API", "https://qianfan.baidubce.com/v2"),
("Coding Plan", "https://qianfan.baidubce.com/v2/coding"),
),
)
self.assertIsNone(provider.models_dev_provider_id)
self.assertFalse(provider.supports_model_refresh)
def test_builtin_provider_includes_jdcloud_base_url_presets(self):
manager = LLMProviderManager()
provider = manager.get_provider("jdcloud")
self.assertEqual(provider.name, "京东云")
self.assertEqual(provider.runtime, "openai_compatible")
self.assertEqual(provider.default_base_url, "https://modelservice.jdcloud.com/v1")
self.assertEqual(
tuple((preset.label, preset.value) for preset in provider.base_url_presets),
(
("通用 API", "https://modelservice.jdcloud.com/v1"),
("Coding Plan", "https://modelservice.jdcloud.com/coding/openai/v1"),
),
)
self.assertIsNone(provider.models_dev_provider_id)
self.assertFalse(provider.supports_model_refresh)
if __name__ == "__main__":
unittest.main()

View File

@@ -184,6 +184,27 @@ class LocalSetupLlmProviderPromptTests(unittest.TestCase):
self.assertEqual(provider, "my-provider_01")
def test_fallback_provider_choices_include_baidu_and_jdcloud(self):
module = load_local_setup_module()
self.assertEqual(
module.LLM_PROVIDER_FALLBACK_CHOICES["baidu-qianfan-coding-plan"],
"百度千帆",
)
self.assertEqual(module.LLM_PROVIDER_FALLBACK_CHOICES["jdcloud"], "京东云")
def test_local_setup_defaults_include_baidu_and_jdcloud_base_urls(self):
module = load_local_setup_module()
self.assertEqual(
module.LLM_PROVIDER_DEFAULTS["baidu-qianfan-coding-plan"]["base_url"],
"https://qianfan.baidubce.com/v2",
)
self.assertEqual(
module.LLM_PROVIDER_DEFAULTS["jdcloud"]["base_url"],
"https://modelservice.jdcloud.com/v1",
)
if __name__ == "__main__":
unittest.main()