fix(provider): 修复DeepSeek开发凭据解析
This commit is contained in:
@@ -67,6 +67,7 @@ def test_provider_presets_include_openai_and_deepseek() -> None:
|
||||
assert by_id["openai"].base_url == "https://api.openai.com/v1"
|
||||
assert by_id["deepseek"].base_url == "https://api.deepseek.com"
|
||||
assert by_id["deepseek"].provider_type == ProviderType.openai_compatible
|
||||
assert by_id["deepseek"].default_credential_id == "deepseek"
|
||||
|
||||
|
||||
def test_provider_presets_static_route_precedes_provider_id_route() -> None:
|
||||
|
||||
@@ -12,6 +12,8 @@ from app.contracts import (
|
||||
ToolDefinition,
|
||||
)
|
||||
from app.providers.ollama import OllamaProvider
|
||||
from app.providers.base import ProviderError
|
||||
from app.providers.credentials import EnvironmentCredentialResolver
|
||||
from app.providers.openai_compatible import OpenAICompatibleProvider
|
||||
|
||||
|
||||
@@ -156,6 +158,31 @@ def test_openai_compatible_fetches_and_maps_model_list() -> None:
|
||||
assert [item.model for item in models] == ["model-b", "model-a"]
|
||||
|
||||
|
||||
def test_environment_credentials_support_deepseek_development_alias(monkeypatch) -> None:
|
||||
monkeypatch.setenv("DEEPSEEK_API_KEY", "secret-test-key")
|
||||
|
||||
assert EnvironmentCredentialResolver().resolve("deepseek") == "secret-test-key"
|
||||
|
||||
|
||||
def test_openai_compatible_rejects_missing_named_credential_before_request() -> None:
|
||||
class EmptyCredentials:
|
||||
def resolve(self, credential_id: str | None) -> str | None:
|
||||
return None
|
||||
|
||||
provider = OpenAICompatibleProvider(
|
||||
base_url="https://provider.test/v1",
|
||||
credential_id="deepseek",
|
||||
credentials=EmptyCredentials(),
|
||||
)
|
||||
|
||||
try:
|
||||
run(provider.list_models())
|
||||
except ProviderError as error:
|
||||
assert error.code == "PROVIDER_CREDENTIAL_MISSING"
|
||||
else:
|
||||
raise AssertionError("Missing credential should fail before the provider request")
|
||||
|
||||
|
||||
def test_ollama_maps_models_and_completion() -> None:
|
||||
def handler(request: httpx.Request) -> httpx.Response:
|
||||
if request.url.path == "/api/tags":
|
||||
|
||||
Reference in New Issue
Block a user