Commit 4485297
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