1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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": "<YOUR_SITE_URL>", # Optional. Site URL for rankings on openrouter.ai.
- "X-Title": "<YOUR_SITE_NAME>", # 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)
|