Commit 4485297

benny-dou <60535774+benny-dou@users.noreply.github.com>
2025-05-05 11:57:47
fix(gpt): use channel title as username
1 parent 5e5094c
Changed files (3)
src
src/llm/gemini.py
@@ -34,7 +34,7 @@ HELP = f"""🌠**AIη”Ÿε›Ύ**
 """
 
 
-async def gemini_response(client: Client, message: Message, conversations: list[Message], modality: str = "image", **kwargs):
+async def gemini_response(client: Client, message: Message, conversations: list[Message], modality: str = "image", *, force_nonstream: bool = False, **kwargs):
     r"""Get Gemini response.
 
     Args:
@@ -57,7 +57,7 @@ async def gemini_response(client: Client, message: Message, conversations: list[
         extra_config_str = GEMINI.IMG_CONFIG if modality == "image" else GEMINI.TEXT_CONFIG
         genconfig = json.loads(extra_config_str)
     try:
-        msg = f"πŸ€–**{model_name}**: 思考中...\nπŸ‘€**[{info['full_name']}](tg://user?id={info['uid']})**: β€œ{clean_cmd_prefix(info['text'])}”"
+        msg = f"πŸ€–**{model_name}**: 思考中...\nπŸ‘€**[{info['full_name'] or info['ctitle']}](tg://user?id={info['uid']})**: β€œ{clean_cmd_prefix(info['text'])}”"
         status_msg = (await send2tg(client, message, texts=msg, **kwargs))[0]
         kwargs["progress"] = status_msg
         contexts = await get_conversation_contexts(client, conversations, ctx_format="gemini")
@@ -72,7 +72,7 @@ async def gemini_response(client: Client, message: Message, conversations: list[
             genconfig |= {"thinking_config": ThinkingConfig(thinking_budget=thinking_budget)}
         params = {"model": model, "contents": contexts, "config": GenerateContentConfig(**genconfig)}
         logger.trace(params)
-        if modality == "image":
+        if modality == "image" or force_nonstream:
             return await gemini_nonstream(client, message, model_name, params, **kwargs)
         return await gemini_stream(client, message, model_name, params, **kwargs)
     except Exception as e:
src/llm/gpt.py
@@ -113,7 +113,7 @@ async def gpt_response(client: Client, message: Message, *, gpt_stream: bool = G
 
     config["completions"]["messages"] = await get_conversation_contexts(client, conversations)
 
-    msg = f"πŸ€–**{config['friendly_name']}**: 思考中...\nπŸ‘€**[{info['full_name']}](tg://user?id={info['uid']})**: β€œ{clean_cmd_prefix(info['text'])}”"
+    msg = f"πŸ€–**{config['friendly_name']}**: 思考中...\nπŸ‘€**[{info['full_name'] or info['ctitle']}](tg://user?id={info['uid']})**: β€œ{clean_cmd_prefix(info['text'])}”"
     status_msg = (await send2tg(client, message, texts=msg, **kwargs))[0]
     kwargs["progress"] = status_msg
     if context_type.get("error"):
src/messages/parser.py
@@ -25,10 +25,10 @@ def parse_msg(message: Message, *, silent: bool = False, verbose: bool = False)
     mtype: str = message.media.value if message.media and message.media.value else "text"  # type: ignore
     ctype = message.chat.type.name if message.chat and message.chat.type else ""
     ctitle = message.chat.title if message.chat and message.chat.title else ""
-    uid = message.from_user.id if message.from_user else 0
-    cid = message.chat.id if message.chat else 0
-    mid = message.id if message.id else 0
-    media_group_id = message.media_group_id if message.media_group_id else 0
+    uid = message.from_user.id if message.from_user else 1
+    cid = message.chat.id if message.chat else 1
+    mid = message.id if message.id else 1
+    media_group_id = message.media_group_id if message.media_group_id else 1
     is_bot = bool(message.from_user and message.from_user.is_bot)
     text = message.text or message.caption or ""
     html = text.html if hasattr(text, "html") else ""  # type: ignore