From 6f6771e1e84b67c84f05191ae5bea11d6fb0f07f Mon Sep 17 00:00:00 2001 From: yihong0618 Date: Tue, 5 Mar 2024 17:04:24 +0800 Subject: [PATCH] fix: file not close Signed-off-by: yihong0618 --- handlers/claude.py | 48 ++++++++++++++++++++++++---------------------- handlers/gemini.py | 4 ++-- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/handlers/claude.py b/handlers/claude.py index 126e23c..1e10471 100644 --- a/handlers/claude.py +++ b/handlers/claude.py @@ -201,31 +201,33 @@ def claude_photo_handler(message: Message, bot: TeleBot) -> None: with open("claude_temp.jpg", "wb") as temp_file: temp_file.write(downloaded_file) + f = Path("claude_temp.jpg") try: - r = client.messages.create( - max_tokens=1024, - messages=[ - { - "role": "user", - "content": [ - { - "type": "text", - "text": prompt, - }, - { - "type": "image", - "source": { - "type": "base64", - "media_type": "image/jpeg", - "data": Path("claude_temp.jpg"), + with f: + r = client.messages.create( + max_tokens=1024, + messages=[ + { + "role": "user", + "content": [ + { + "type": "text", + "text": prompt, }, - }, - ], - }, - ], - model="claude-3-opus-20240229", - ) - bot.reply_to(message, "Claude vision answer:\n" + r.content[0].text) + { + "type": "image", + "source": { + "type": "base64", + "media_type": "image/jpeg", + "data": f, + }, + }, + ], + }, + ], + model=ANTHROPIC_MODEL, + ) + bot.reply_to(message, "Claude vision answer:\n" + r.content[0].text) except Exception as e: print(e) bot.reply_to( diff --git a/handlers/gemini.py b/handlers/gemini.py index 2872bb8..4f0276e 100644 --- a/handlers/gemini.py +++ b/handlers/gemini.py @@ -210,8 +210,8 @@ def gemini_photo_handler(message: Message, bot: TeleBot) -> None: temp_file.write(downloaded_file) model = genai.GenerativeModel("gemini-pro-vision") - image_path = Path("gemini_temp.jpg") - image_data = image_path.read_bytes() + with open("gemini_temp.jpg", "rb") as image_file: + image_data = image_file.read() contents = { "parts": [{"mime_type": "image/jpeg", "data": image_data}, {"text": prompt}] }