XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/gpt4free

Refactor error handling in Antigravity and GeminiCLI providers to use raise_for_status for improved clarity and maintainability

7d897c74
hlohaus <983577+hlohaus@users.noreply.github.com>
提交于

代码差异

2 个文件 +4 -17
Modified g4f/Provider/needs_auth/Antigravity.py +2 -11
@@ -31,6 +31,7 @@ from aiohttp import ClientSession, ClientTimeout
31 31
32 32 from ...typing import AsyncResult, Messages, MediaListType
33 33 from ...errors import MissingAuthError, RateLimitError
34 from ...requests.raise_for_status import raise_for_status
34 35 from ...image.copy_images import save_response_media
35 36 from ...image import to_bytes, is_data_an_media
36 37 from ...providers.response import Usage, ImageResponse, ToolCalls, Reasoning
@@ -1239,17 +1240,7 @@ class AntigravityProvider:
1239 1240 resp = await session.post(url, json=req_body)
1240 1241 if not resp.ok:
1241 1242 debug.error(f"Retry after 503 failed with status {resp.status}")
1242 if not resp.ok:
1243 if resp.status == 401:
1244 raise MissingAuthError("Unauthorized (401) from Antigravity API")
1245 elif resp.status == 429:
1246 try:
1247 message = (await resp.json(content_type=None)).get("error", {}).get("message", "")
1248 except Exception as e:
1249 debug.error("Error parsing error message:", e)
1250 message = await resp.text()
1251 raise RateLimitError(f"Error 429: {message}")
1252 raise RuntimeError(f"Antigravity API error {resp.status}: {await resp.text()}")
1243 await raise_for_status(resp)
1253 1244
1254 1245 usage_metadata = {}
1255 1246 openai_tool_calls = []
Modified g4f/Provider/needs_auth/GeminiCLI.py +2 -6
@@ -20,6 +20,7 @@ from aiohttp import ClientSession, ClientTimeout
20 20
21 21 from ...typing import AsyncResult, Messages, MediaListType
22 22 from ...errors import MissingAuthError
23 from ...requests.raise_for_status import raise_for_status
23 24 from ...image.copy_images import save_response_media
24 25 from ...image import to_bytes, is_data_an_media
25 26 from ...providers.response import Usage, ImageResponse, ToolCalls, Reasoning
@@ -809,12 +810,7 @@ class GeminiCLIProvider():
809 810
810 811 async with ClientSession(headers=headers, timeout=timeout, connector=connector) as session:
811 812 async with session.post(url, json=req_body) as resp:
812 if not resp.ok:
813 if resp.status == 401:
814 # Possibly token expired: try login retry logic, omitted here for brevity
815 raise MissingAuthError(f"Unauthorized (401) from Gemini API")
816 error_body = await resp.text()
817 raise RuntimeError(f"Gemini API error {resp.status}: {error_body}")
813 await raise_for_status(resp)
818 814
819 815 usage_metadata = {}
820 816 openai_tool_calls = []