Add streaming
Browse files- chatbot/plugins/chat.py +23 -16
chatbot/plugins/chat.py
CHANGED
@@ -1209,25 +1209,25 @@ async def chatbot_talk(client: Client, message: Message):
|
|
1209 |
LOGS.error(f"Error: Gemini Image: {str(e)}")
|
1210 |
return await message.reply_text("Server busy try again later")
|
1211 |
|
1212 |
-
if re.findall(r"\b(enabled:
|
1213 |
await db.backup_chatbot.update_one(
|
1214 |
{"user_id": message.from_user.id},
|
1215 |
{"$set": {"is_system": True}},
|
1216 |
upsert=True
|
1217 |
)
|
1218 |
await message.reply_text(
|
1219 |
-
"Ok
|
1220 |
)
|
1221 |
return
|
1222 |
|
1223 |
-
if re.findall(r"\b(disabled:
|
1224 |
await db.backup_chatbot.update_one(
|
1225 |
{"user_id": message.from_user.id},
|
1226 |
{"$set": {"is_system": False}},
|
1227 |
upsert=True
|
1228 |
)
|
1229 |
await message.reply_text(
|
1230 |
-
"Ok successfully
|
1231 |
)
|
1232 |
return
|
1233 |
|
@@ -1235,22 +1235,24 @@ async def chatbot_talk(client: Client, message: Message):
|
|
1235 |
if not check_is_system:
|
1236 |
await db.backup_chatbot.update_one(
|
1237 |
{"user_id": message.from_user.id},
|
1238 |
-
{"$set": {"is_system":
|
1239 |
upsert=True
|
1240 |
)
|
1241 |
await message.reply_text(
|
1242 |
-
"Ok Updated Now Type anything to begin."
|
1243 |
)
|
1244 |
return
|
1245 |
|
1246 |
if check_is_system.get("is_system", False):
|
|
|
1247 |
backup_chat = await db._get_chatbot_chat_from_db(message.from_user.id)
|
1248 |
backup_chat.append({"role": "user", "parts": [{"text": query_base}]})
|
1249 |
-
|
1250 |
model=model_,
|
1251 |
-
contents=
|
1252 |
config=ty.GenerateContentConfig(
|
1253 |
system_instruction="You are my name Randy Dev and friends coding language Indonesia and English",
|
|
|
1254 |
temperature=0,
|
1255 |
top_p=0.95,
|
1256 |
top_k=20,
|
@@ -1260,29 +1262,34 @@ async def chatbot_talk(client: Client, message: Message):
|
|
1260 |
stop_sequences=['STOP!'],
|
1261 |
presence_penalty=0.0,
|
1262 |
frequency_penalty=0.0,
|
1263 |
-
)
|
1264 |
-
)
|
1265 |
-
|
1266 |
-
|
|
|
|
|
|
|
|
|
|
|
1267 |
for part in text_parts:
|
1268 |
await message.reply_text(part)
|
1269 |
else:
|
1270 |
keyboard_like = create_keyboard(user_id=message.from_user.id)
|
1271 |
await message.reply_text(
|
1272 |
-
|
1273 |
disable_web_page_preview=True,
|
1274 |
reply_markup=keyboard_like
|
1275 |
)
|
1276 |
await db.backup_chatbot.update_one(
|
1277 |
{"user_id": message.from_user.id},
|
1278 |
-
{"$set": {"translate_text":
|
1279 |
upsert=True
|
1280 |
)
|
1281 |
-
backup_chat.append({"role": "model", "parts": [{"text":
|
1282 |
await db._update_chatbot_chat_in_db(message.from_user.id, backup_chat)
|
1283 |
await client.send_chat_action(message.chat.id, enums.ChatAction.CANCEL)
|
1284 |
return
|
1285 |
-
|
1286 |
if re.findall(r"\b(I want to delete my data history)\b", query_base, re.IGNORECASE):
|
1287 |
buttons = [
|
1288 |
[
|
|
|
1209 |
LOGS.error(f"Error: Gemini Image: {str(e)}")
|
1210 |
return await message.reply_text("Server busy try again later")
|
1211 |
|
1212 |
+
if re.findall(r"\b(enabled:chatstream)\b", query_base, re.IGNORECASE):
|
1213 |
await db.backup_chatbot.update_one(
|
1214 |
{"user_id": message.from_user.id},
|
1215 |
{"$set": {"is_system": True}},
|
1216 |
upsert=True
|
1217 |
)
|
1218 |
await message.reply_text(
|
1219 |
+
"Ok successfully streaming is enabled"
|
1220 |
)
|
1221 |
return
|
1222 |
|
1223 |
+
if re.findall(r"\b(disabled:chatstream)\b", query_base, re.IGNORECASE):
|
1224 |
await db.backup_chatbot.update_one(
|
1225 |
{"user_id": message.from_user.id},
|
1226 |
{"$set": {"is_system": False}},
|
1227 |
upsert=True
|
1228 |
)
|
1229 |
await message.reply_text(
|
1230 |
+
"Ok successfully streaming is disabled"
|
1231 |
)
|
1232 |
return
|
1233 |
|
|
|
1235 |
if not check_is_system:
|
1236 |
await db.backup_chatbot.update_one(
|
1237 |
{"user_id": message.from_user.id},
|
1238 |
+
{"$set": {"is_system": True}},
|
1239 |
upsert=True
|
1240 |
)
|
1241 |
await message.reply_text(
|
1242 |
+
"Ok Updated Streaming Now Type anything to begin."
|
1243 |
)
|
1244 |
return
|
1245 |
|
1246 |
if check_is_system.get("is_system", False):
|
1247 |
+
test_result = ""
|
1248 |
backup_chat = await db._get_chatbot_chat_from_db(message.from_user.id)
|
1249 |
backup_chat.append({"role": "user", "parts": [{"text": query_base}]})
|
1250 |
+
async for chunk in await gen.aio.models.generate_content_stream(
|
1251 |
model=model_,
|
1252 |
+
contents=backup_chat,
|
1253 |
config=ty.GenerateContentConfig(
|
1254 |
system_instruction="You are my name Randy Dev and friends coding language Indonesia and English",
|
1255 |
+
response_mime_type="text/plain",
|
1256 |
temperature=0,
|
1257 |
top_p=0.95,
|
1258 |
top_k=20,
|
|
|
1262 |
stop_sequences=['STOP!'],
|
1263 |
presence_penalty=0.0,
|
1264 |
frequency_penalty=0.0,
|
1265 |
+
))
|
1266 |
+
):
|
1267 |
+
test_result += chunk.text
|
1268 |
+
|
1269 |
+
if test_result == "":
|
1270 |
+
return await message.reply_text("Server busy try again later")
|
1271 |
+
|
1272 |
+
if len(test_result) > 4096:
|
1273 |
+
text_parts = split_message(test_result)
|
1274 |
for part in text_parts:
|
1275 |
await message.reply_text(part)
|
1276 |
else:
|
1277 |
keyboard_like = create_keyboard(user_id=message.from_user.id)
|
1278 |
await message.reply_text(
|
1279 |
+
test_result,
|
1280 |
disable_web_page_preview=True,
|
1281 |
reply_markup=keyboard_like
|
1282 |
)
|
1283 |
await db.backup_chatbot.update_one(
|
1284 |
{"user_id": message.from_user.id},
|
1285 |
+
{"$set": {"translate_text": test_result}},
|
1286 |
upsert=True
|
1287 |
)
|
1288 |
+
backup_chat.append({"role": "model", "parts": [{"text": test_result}]})
|
1289 |
await db._update_chatbot_chat_in_db(message.from_user.id, backup_chat)
|
1290 |
await client.send_chat_action(message.chat.id, enums.ChatAction.CANCEL)
|
1291 |
return
|
1292 |
+
|
1293 |
if re.findall(r"\b(I want to delete my data history)\b", query_base, re.IGNORECASE):
|
1294 |
buttons = [
|
1295 |
[
|