mirror of
https://github.com/cdryzun/tg_bot_collections.git
synced 2025-04-29 00:27:09 +08:00
support streaming response for claude_photo_handler/gemini_photo_handler
This commit is contained in:
parent
fdc9d00eb0
commit
82972d1cbd
@ -191,8 +191,18 @@ def claude_photo_handler(message: Message, bot: TeleBot) -> None:
|
||||
},
|
||||
],
|
||||
model=ANTHROPIC_MODEL,
|
||||
stream=True,
|
||||
)
|
||||
bot_reply_markdown(reply_id, who, r.content[0].text, bot)
|
||||
s = ""
|
||||
start = time.time()
|
||||
for e in r:
|
||||
if e.type == "content_block_delta":
|
||||
s += e.delta.text
|
||||
if time.time() - start > 1.7:
|
||||
start = time.time()
|
||||
bot_reply_markdown(reply_id, who, s, bot, split_text=False)
|
||||
|
||||
bot_reply_markdown(reply_id, who, s, bot)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
bot_reply_markdown(reply_id, who, "answer wrong", bot)
|
||||
|
@ -129,7 +129,6 @@ def gemini_pro_handler(message: Message, bot: TeleBot) -> None:
|
||||
start = time.time()
|
||||
for e in r:
|
||||
s += e.text
|
||||
print(s)
|
||||
if time.time() - start > 1.7:
|
||||
start = time.time()
|
||||
bot_reply_markdown(reply_id, who, s, bot, split_text=False)
|
||||
@ -148,11 +147,10 @@ def gemini_pro_handler(message: Message, bot: TeleBot) -> None:
|
||||
|
||||
def gemini_photo_handler(message: Message, bot: TeleBot) -> None:
|
||||
s = message.caption
|
||||
reply_message = bot.reply_to(
|
||||
message,
|
||||
"Generating google gemini vision answer please wait.",
|
||||
)
|
||||
prompt = s.strip()
|
||||
who = "Gemini Vision"
|
||||
# show something, make it more responsible
|
||||
reply_id = bot_reply_first(message, who, bot)
|
||||
# get the high quaility picture.
|
||||
max_size_photo = max(message.photo, key=lambda p: p.file_size)
|
||||
file_path = bot.get_file(max_size_photo.file_id).file_path
|
||||
@ -167,10 +165,19 @@ def gemini_photo_handler(message: Message, bot: TeleBot) -> None:
|
||||
"parts": [{"mime_type": "image/jpeg", "data": image_data}, {"text": prompt}]
|
||||
}
|
||||
try:
|
||||
response = model.generate_content(contents=contents)
|
||||
bot.reply_to(message, "Gemini vision answer:\n" + response.text)
|
||||
finally:
|
||||
bot.delete_message(reply_message.chat.id, reply_message.message_id)
|
||||
r = model.generate_content(contents=contents, stream=True)
|
||||
s = ""
|
||||
start = time.time()
|
||||
for e in r:
|
||||
s += e.text
|
||||
if time.time() - start > 1.7:
|
||||
start = time.time()
|
||||
bot_reply_markdown(reply_id, who, s, bot, split_text=False)
|
||||
|
||||
bot_reply_markdown(reply_id, who, s, bot)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
bot_reply_markdown(reply_id, who, "answer wrong", bot)
|
||||
|
||||
|
||||
def register(bot: TeleBot) -> None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user