Commit d685f98

benny-dou <60535774+benny-dou@users.noreply.github.com>
2026-01-25 06:19:01
style(ai): handle error messages in AI modules
1 parent 4af1723
src/ai/images/openai_img.py
@@ -1,5 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
+import asyncio
 import base64
 from pathlib import Path
 
@@ -54,6 +55,9 @@ async def openai_image_generation(
         logger.debug(f"openai.images.generate(**{prettify(params)})")
     except Exception as e:
         logger.error(f"OpenAI client setup error: {e}")
+        await modify_progress(status_msg, text=f"❌{e}", force_update=True, **kwargs)
+        await asyncio.sleep(10)
+        await delete_message(status_msg)
         return False
     resp = {}
     for api_key in strings_list(api_keys, shuffle=True):
@@ -75,6 +79,7 @@ async def openai_image_generation(
         except Exception as e:
             logger.error(f"OpenAI Image Generation error: {e}\n\n{prettify(resp)}")
             await modify_progress(status_msg, text=f"❌{e}\n\n{prettify(resp)}", force_update=True, **kwargs)
+    await delete_message(status_msg)
     return False
 
 
src/ai/images/post.py
@@ -77,6 +77,8 @@ async def http_post_image_generation(
             return True
     except Exception as e:
         logger.error(f"HTTP Post Image Generation error: {e}")
+        await modify_progress(status_msg, text=f"❌{e}", force_update=True, **kwargs)
+    await delete_message(status_msg)
     return False
 
 
src/ai/texts/gemini.py
@@ -81,6 +81,7 @@ async def gemini_chat_completion(
                 }
         except Exception as e:
             logger.error(f"Gemini API error: {e}")
+            await modify_progress(status_msg, text=f"❌{e}", force_update=True, **kwargs)
     return {}
 
 
src/ai/texts/openai_chat.py
@@ -71,6 +71,7 @@ async def openai_chat_completions(
         logger.debug(f"openai.chat.completions.create(**{params})")
     except Exception as e:
         logger.error(f"OpenAI client setup error: {e}")
+        await modify_progress(status_msg, text=f"❌{e}", force_update=True, **kwargs)
         return {}
     for api_key in strings_list(openai_api_keys, shuffle=True):
         try:
@@ -91,7 +92,7 @@ async def openai_chat_completions(
                 return resp | {"prefix": prefix, "model_name": model_name, "sent_messages": [m for m in sent_messages + resp["sent_messages"] if isinstance(m, Message)]}
         except Exception as e:
             logger.error(f"OpenAI API error: {e}")
-
+            await modify_progress(status_msg, text=f"❌{e}", force_update=True, **kwargs)
     return {}
 
 
src/ai/texts/openai_response.py
@@ -72,7 +72,8 @@ async def openai_responses_api(
             logger.trace(f"AsyncOpenAI(**{openai_client})")
             openai = AsyncOpenAI(**openai_client)
             previous_response_id, contexts = await get_openai_response_contexts(client, message, api_key, model_id, cache_day)
-            params = {"model": model_id, "stream": True, "input": contexts}
+            params = {}
+            params |= {"model": model_id, "stream": True, "input": contexts}
             if literal_eval(openai_responses_config):
                 params |= literal_eval(openai_responses_config)
             if previous_response_id:
@@ -116,6 +117,7 @@ async def openai_responses_api(
             }
         except Exception as e:
             logger.error(f"OpenAI API error: {e}")
+            await modify_progress(status_msg, text=f"❌{e}", force_update=True, **kwargs)
     return {}
 
 
@@ -254,7 +256,7 @@ async def single_api_response(
     except Exception as e:
         error = f"{EMOJI_TEXT_BOT}BOT请求失败, 重试次数: {retry + 1}/{max_retries}\n{e}"
         if "resp" in locals():
-            error += f"\n{resp}"  # type: ignore
+            error += f"\n{resp}"
         logger.error(error)
         with contextlib.suppress(Exception):
             await modify_progress(status_msg, text=error, force_update=True, **kwargs)