from openai import OpenAI import requests import base64 from config import key_get siliflow_key = key_get('siliflow') def pic_see(url): """ 调用图片识别api,获取群聊图片内容 """ # 1. 下载网络图片到本地临时文件 try: response = requests.get(url) response.raise_for_status() # 检查HTTP错误 except requests.exceptions.RequestException as e: print(f"下载图片失败: {e}") return "图片识别失败" # 2. 保存为临时文件(例如保存到当前目录) img_path = "temp_image.jpg" # 根据图片格式调整扩展名(jpg/png等) with open(img_path, "wb") as f: f.write(response.content) # 图片转base64编码 with open(img_path, "rb") as path: try: base64_data = base64.b64encode(path.read()).decode("utf-8") data_uri = f"data:image/jpeg;base64,{base64_data}" except Exception as e: return "图片识别失败" client = OpenAI( base_url='https://api.siliconflow.cn/', api_key=siliflow_key, ) completion = client.chat.completions.create( extra_headers={ "HTTP-Referer": "", # Optional. Site URL for rankings on openrouter.ai. "X-Title": "", # Optional. Site title for rankings on openrouter.ai. }, extra_body={}, model="Pro/Qwen/Qwen2.5-VL-7B-Instruct", messages=[ { "role": "user", "content": [ { "type": "text", "text": "请为我详细描述这张图片的内容" }, { "type": "image_url", "image_url": { "url": data_uri } } ] } ] ) ans = completion.choices[0].message.content print(ans) return (ans)