fix: use correct google-genai async API and remove debug endpoint
The google-genai SDK uses `client.aio.models.generate_content()` for async calls, not `client.models.generate_content_async()` which doesn't exist. Also removes the temporary /ai/provider-debug endpoint. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -54,34 +54,6 @@ def _require_ai_enabled() -> None:
|
||||
detail="AI flow builder is not configured. Set GOOGLE_AI_API_KEY or ANTHROPIC_API_KEY.",
|
||||
)
|
||||
|
||||
|
||||
@router.get("/provider-debug")
|
||||
async def provider_debug(
|
||||
current_user: Annotated[User, Depends(get_current_active_user)],
|
||||
_: None = Depends(require_engineer_or_admin),
|
||||
):
|
||||
"""Temporary debug endpoint — shows which AI provider would be selected."""
|
||||
from app.core.ai_provider import get_ai_provider
|
||||
has_gemini_key = bool(settings.GOOGLE_AI_API_KEY)
|
||||
has_anthropic_key = bool(settings.ANTHROPIC_API_KEY)
|
||||
provider_setting = settings.AI_PROVIDER
|
||||
try:
|
||||
provider = get_ai_provider()
|
||||
provider_type = type(provider).__name__
|
||||
except RuntimeError as e:
|
||||
provider_type = f"ERROR: {e}"
|
||||
return {
|
||||
"ai_provider_setting": provider_setting,
|
||||
"has_gemini_key": has_gemini_key,
|
||||
"gemini_key_prefix": settings.GOOGLE_AI_API_KEY[:8] + "..." if settings.GOOGLE_AI_API_KEY else None,
|
||||
"has_anthropic_key": has_anthropic_key,
|
||||
"anthropic_key_prefix": settings.ANTHROPIC_API_KEY[:8] + "..." if settings.ANTHROPIC_API_KEY else None,
|
||||
"selected_provider": provider_type,
|
||||
"gemini_model": settings.AI_MODEL_GEMINI,
|
||||
"anthropic_model": settings.AI_MODEL_ANTHROPIC,
|
||||
}
|
||||
|
||||
|
||||
@router.get("/quota", response_model=AIQuotaStatusResponse)
|
||||
async def get_quota(
|
||||
current_user: Annotated[User, Depends(get_current_active_user)],
|
||||
|
||||
@@ -68,7 +68,7 @@ class GeminiProvider(AIProvider):
|
||||
response_mime_type="application/json",
|
||||
)
|
||||
|
||||
response = await client.models.generate_content_async(
|
||||
response = await client.aio.models.generate_content(
|
||||
model=self._model,
|
||||
contents=contents,
|
||||
config=config,
|
||||
|
||||
@@ -137,7 +137,7 @@ class TestGeminiProvider:
|
||||
mock_response.usage_metadata = mock_usage
|
||||
|
||||
mock_client = MagicMock()
|
||||
mock_client.models.generate_content_async = AsyncMock(
|
||||
mock_client.aio.models.generate_content = AsyncMock(
|
||||
return_value=mock_response
|
||||
)
|
||||
|
||||
@@ -172,7 +172,7 @@ class TestGeminiProvider:
|
||||
assert input_tokens == 80
|
||||
assert output_tokens == 40
|
||||
|
||||
mock_client.models.generate_content_async.assert_called_once()
|
||||
mock_client.aio.models.generate_content.assert_called_once()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_generate_json_handles_none_usage(self):
|
||||
@@ -185,7 +185,7 @@ class TestGeminiProvider:
|
||||
mock_response.usage_metadata = mock_usage
|
||||
|
||||
mock_client = MagicMock()
|
||||
mock_client.models.generate_content_async = AsyncMock(
|
||||
mock_client.aio.models.generate_content = AsyncMock(
|
||||
return_value=mock_response
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user