Commit c7bdcf7

benny-dou <60535774+benny-dou@users.noreply.github.com>
2025-04-03 10:35:39
style(summay): add more info for summay txt file
1 parent 3914ec2
Changed files (3)
src/llm/gpt.py
@@ -97,7 +97,7 @@ async def gpt_response(client: Client, message: Message, *, gpt_stream: bool = G
     config, response = await merge_tools_response(config, **kwargs)
     # skip send a new request if tool_model is the same as the current model
     if response and config["completions"]["model"] == GPT.TOOLS_MODEL and response.get("content"):
-        texts = f"🤖**{response['model']}**: ({BOT_TIPS})\n\n{response['content']}"
+        texts = f"🤖**{config['friendly_name']}**: ({BOT_TIPS})\n\n{response['content']}"
         length = await count_without_entities(texts)
         if length <= TEXT_LENGTH:
             await modify_progress(message=status_msg, text=texts, force_update=True, **kwargs)
src/llm/summary.py
@@ -60,7 +60,7 @@ HELP = f"""🤖**GPT总结历史消息** (最多{MAX_MESSAGE_SUMMARY}条)
 - 3️⃣的时间格式中没有任何分隔符, 必须为YYYYMMDDHHMMSS (14位纯数字)
 """
 DAILY_SUMMARY_PREFIX = "🏪**#爬楼助手**\n"
-CONTEXT_FILENAME = "聊天记录上下文.txt"
+CONTEXT_FILENAME = "聊天记录.txt"
 
 
 async def ai_summary(client: Client, message: Message, summary_prefix: str | None = None, **kwargs):
@@ -127,9 +127,6 @@ async def ai_summary(client: Client, message: Message, summary_prefix: str | Non
         await send2tg(client, message, texts=f"{num_history}条历史消息中未找到符合条件的消息", **kwargs)
         await modify_progress(del_status=True, **kwargs)
         return
-    # send contexts as txt file
-    with io.BytesIO(parsed["txt_format"].encode("utf-8")) as f:
-        await client.send_document(to_int(message.chat.id), f, file_name=CONTEXT_FILENAME)
     contexts = refine_prompts(parsed["system_context"] + [{"role": "user", "content": parsed["user_context"]}])
     sysmtem_tokens = count_tokens(contexts[0]["content"])
     user_tokens = count_tokens(contexts[-1]["content"])
@@ -142,12 +139,14 @@ async def ai_summary(client: Client, message: Message, summary_prefix: str | Non
         summary_model = GPT.LONG_MODEL
         summary_model_name = GPT.LONG_MODEL_NAME
         max_tokens = int(GPT.LONG_MODEL_MAX_OUTPUT_LENGTH)
-    msg = f"🤖**{summary_model_name}**总结中...\n"
-    msg += f"⏩开始时间: {begin_time:%m-%d %H:%M:%S}\n"
-    msg += f"⏯️结束时间: {end_time:%m-%d %H:%M:%S}\n"
-    msg += f"🔢有效消息: {len(parsed['user_context'])}\n"
-    msg += f"🔠总Token: {total_tokens}"
-    await modify_progress(text=msg, force_update=True, **kwargs)
+    msg = f"⏩开始时间: {parsed['begin_time']:%m-%d %H:%M:%S}\n"
+    msg += f"⏯️结束时间: {parsed['end_time']:%m-%d %H:%M:%S}\n"
+    msg += f"🔢消息条数: {len(parsed['user_context'])}\n"
+    msg += f"🔠Token数: {total_tokens}"
+    # send contexts as txt file
+    with io.BytesIO(parsed["txt_format"].encode("utf-8")) as f:
+        await client.send_document(to_int(message.chat.id), f, file_name=CONTEXT_FILENAME, caption=msg)
+    await modify_progress(text=f"🤖**{summary_model_name}**总结中...\n{msg}", force_update=True, **kwargs)
     config = get_gpt_config(model_type="text", contexts=contexts, force_model=summary_model)
 
     # set max_tokens for the model
@@ -237,7 +236,7 @@ async def get_contexts(history: list[dict]) -> dict:
                 "username": info["full_name"],
                 "message": info["text"],
             }
-            txt_format += f"[{content['time']}]{content['username']}:\n"
+            txt_format += f"[{info['datetime']:%m-%d %H:%M:%S}]{content['username']}:\n"
             if reply_msg_content := get_message_by_id(history, info.get("reply_to_message_id")):
                 content["reply_to_message"] = reply_msg_content
                 txt_format += f"<quote>{reply_msg_content['username']}: {reply_msg_content['message']}</quote>\n"
src/config.py
@@ -19,8 +19,8 @@ TEXT_LENGTH = int(os.getenv("TEXT_LENGTH", "4096"))  # Maximum length of text me
 CAPTION_LENGTH = int(os.getenv("CAPTION_LENGTH", "1024"))  # 4096 for Premium user
 MAX_FILE_BYTES = int(os.getenv("MAX_FILE_BYTES", "2000")) * 1024 * 1024  # 4000 MB for Premium user
 ASR_MAX_DURATION = int(os.getenv("ASR_MAX_DURATION", "600"))
-MAX_MESSAGE_RETRIEVED = int(os.getenv("MAX_MESSAGE_RETRIEVED", "5000"))  # Maximum number of messages to combine
-MAX_MESSAGE_SUMMARY = int(os.getenv("MAX_MESSAGE_SUMMARY", "5000"))  # Maximum number of messages to summay
+MAX_MESSAGE_RETRIEVED = int(os.getenv("MAX_MESSAGE_RETRIEVED", "1000000"))  # Maximum number of messages to combine
+MAX_MESSAGE_SUMMARY = int(os.getenv("MAX_MESSAGE_SUMMARY", "9999"))  # Maximum number of messages to summay
 READING_SPEED = int(os.getenv("READING_SPEED", "300"))  # words per minute
 DAILY_MESSAGES = os.getenv("DAILY_MESSAGES", "{}")  # Useful for daily checkin for some services. Should be a json string: '{"chat-1": "msg-1", "chat-2": "msg-2"}'
 # For ytdlp downloaded video, re-encoding to H264 format. This set the max file size for re-encoding. Default: 1PB