randydev commited on
Commit
1813685
·
verified ·
1 Parent(s): 74bea9b

Add streaming

Browse files
Files changed (1) hide show
  1. 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:chatsystem)\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 set the system successfully"
1220
  )
1221
  return
1222
 
1223
- if re.findall(r"\b(disabled:chatsystem)\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 deleted the system"
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": False}},
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
- response = await gen.aio.models.generate_content(
1250
  model=model_,
1251
- contents=query_base,
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
- if len(response.text) > 4096:
1266
- text_parts = split_message(response.text)
 
 
 
 
 
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
- response.text,
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": response.text}},
1279
  upsert=True
1280
  )
1281
- backup_chat.append({"role": "model", "parts": [{"text": response.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
  [