mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-05-17 02:37:34 +08:00
feat(provider): add kuaishou-wanqing endpoint with base URL presets and manual model input
This commit is contained in:
@@ -287,6 +287,61 @@ class LlmProviderRegistryTest(unittest.TestCase):
|
||||
self.assertIsNone(provider.models_dev_provider_id)
|
||||
self.assertFalse(provider.supports_model_refresh)
|
||||
|
||||
def test_builtin_provider_includes_kuaishou_wanqing_endpoint(self):
|
||||
manager = LLMProviderManager()
|
||||
|
||||
provider = manager.get_provider("kuaishou-wanqing")
|
||||
|
||||
self.assertEqual(provider.name, "快手万擎")
|
||||
self.assertEqual(provider.runtime, "openai_compatible")
|
||||
self.assertEqual(
|
||||
provider.default_base_url,
|
||||
"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints",
|
||||
)
|
||||
self.assertEqual(
|
||||
tuple((preset.id, preset.label, preset.value) for preset in provider.base_url_presets),
|
||||
(
|
||||
(
|
||||
"kuaishou-wanqing-usage",
|
||||
"按量计费",
|
||||
"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints",
|
||||
),
|
||||
(
|
||||
"kuaishou-wanqing-coding",
|
||||
"Coding Plan",
|
||||
"https://wanqing.streamlakeapi.com/api/gateway/coding/v1",
|
||||
),
|
||||
),
|
||||
)
|
||||
self.assertEqual(provider.model_list_strategy, "manual")
|
||||
self.assertFalse(provider.supports_model_refresh)
|
||||
|
||||
def test_kuaishou_wanqing_coding_preset_resolves_runtime_base_url(self):
|
||||
manager = LLMProviderManager()
|
||||
|
||||
runtime = asyncio.run(
|
||||
manager.resolve_runtime(
|
||||
provider_id="kuaishou-wanqing",
|
||||
model="kat-coder-pro-v2",
|
||||
api_key="sk-test",
|
||||
base_url="https://wanqing.streamlakeapi.com/api/gateway/coding/v1",
|
||||
base_url_preset_id="kuaishou-wanqing-coding",
|
||||
)
|
||||
)
|
||||
|
||||
self.assertEqual(runtime["runtime"], "openai_compatible")
|
||||
self.assertEqual(
|
||||
runtime["base_url"],
|
||||
"https://wanqing.streamlakeapi.com/api/gateway/coding/v1",
|
||||
)
|
||||
|
||||
def test_kuaishou_wanqing_models_are_manual_input(self):
|
||||
manager = LLMProviderManager()
|
||||
|
||||
models = asyncio.run(manager.list_models(provider_id="kuaishou-wanqing"))
|
||||
|
||||
self.assertEqual(models, [])
|
||||
|
||||
def test_builtin_minimax_provider_merges_general_and_coding_presets(self):
|
||||
manager = LLMProviderManager()
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ class LocalSetupLlmProviderPromptTests(unittest.TestCase):
|
||||
|
||||
self.assertEqual(provider, "my-provider_01")
|
||||
|
||||
def test_fallback_provider_choices_include_baidu_and_jdcloud(self):
|
||||
def test_fallback_provider_choices_include_baidu_jdcloud_and_wanqing(self):
|
||||
module = load_local_setup_module()
|
||||
|
||||
self.assertEqual(
|
||||
@@ -193,8 +193,12 @@ class LocalSetupLlmProviderPromptTests(unittest.TestCase):
|
||||
"百度千帆",
|
||||
)
|
||||
self.assertEqual(module.LLM_PROVIDER_FALLBACK_CHOICES["jdcloud"], "京东云")
|
||||
self.assertEqual(
|
||||
module.LLM_PROVIDER_FALLBACK_CHOICES["kuaishou-wanqing"],
|
||||
"快手万擎",
|
||||
)
|
||||
|
||||
def test_local_setup_defaults_include_baidu_and_jdcloud_base_urls(self):
|
||||
def test_local_setup_defaults_include_baidu_jdcloud_and_wanqing_base_urls(self):
|
||||
module = load_local_setup_module()
|
||||
|
||||
self.assertEqual(
|
||||
@@ -205,6 +209,14 @@ class LocalSetupLlmProviderPromptTests(unittest.TestCase):
|
||||
module.LLM_PROVIDER_DEFAULTS["jdcloud"]["base_url"],
|
||||
"https://modelservice.jdcloud.com/v1",
|
||||
)
|
||||
self.assertEqual(
|
||||
module.LLM_PROVIDER_DEFAULTS["kuaishou-wanqing"]["base_url"],
|
||||
"https://wanqing.streamlakeapi.com/api/gateway/v1/endpoints",
|
||||
)
|
||||
self.assertEqual(
|
||||
module.LLM_PROVIDER_DEFAULTS["kuaishou-wanqing"]["base_url_preset"],
|
||||
"kuaishou-wanqing-usage",
|
||||
)
|
||||
|
||||
def test_collect_agent_config_prompts_for_duplicate_base_url_presets(self):
|
||||
module = load_local_setup_module()
|
||||
|
||||
Reference in New Issue
Block a user