使用阿里AI的API接口实现图片内容提取功能
参考链接地址:如何使用Qwen-VL模型_大模型服务平台百炼(Model Studio)-阿里云帮助中心
在windows下,使用python语言测试,版本:Python 3.8.9
一. 使用QVQ模型解决图片数学难题
import os
import base64
import requests# base 64 编码格式
def encode_image(image_path):with open(image_path, "rb") as image_file:return base64.b64encode(image_file.read()).decode("utf-8")# 将xxxx/test.png替换为你本地图像的绝对路径
base64_image = encode_image("D:\\AI\\Ali_AI\\test1.png")
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
#api_key = os.getenv("DASHSCOPE_API_KEY")
#qwen-vl-max-latest
api_key="sk-cb1a12c560fa441eabefdb2938c6cdff"
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}"}
payload = {"model": "qwen-vl-max-latest","messages": [{"role": "system","content": [{"type":"text","text": "You are a helpful assistant."}]},{"role": "user","content": [{"type": "image_url",# 需要注意,传入Base64,图像格式(即image/{format})需要与支持的图片列表中的Content Type保持一致。"f"是字符串格式化的方法。# PNG图像: f"data:image/png;base64,{base64_image}"# JPEG图像: f"data:image/jpeg;base64,{base64_image}"# WEBP图像: f"data:image/webp;base64,{base64_image}""image_url": {"url": f"data:image/png;base64,{base64_image}"},},{"type": "text", "text": "识别图片中的内容并输出"},],}],
}
response = requests.post("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",headers=headers,json=payload,
)content1=response.json()["choices"][0]["message"]["content"]
print(content1)
payload = {"model": "qwen2-math-72b-instruct","messages": [{"role": "system","content": "You are a helpful assistant."},{"role": "user", "content": f"{content1},给出正确的答案,不需要过程分析"}],
}
response = requests.post("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",headers=headers,json=payload,
)
print(response.json()["choices"][0]["message"]["content"])
1.先获取图片内容
使用模型:qwen-vl-max-latest
2.对数学难题进行解答
使用模型:qwen2-math-72b-instruct

二. 调用API实现图片内容提取
测试源码如下:
import os
import base64
import requests# base 64 编码格式
def encode_image(image_path):with open(image_path, "rb") as image_file:return base64.b64encode(image_file.read()).decode("utf-8")# 将xxxx/test.png替换为你本地图像的绝对路径
base64_image = encode_image("D:\\AI\\Ali_AI\\test.jpg")
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
#api_key = os.getenv("DASHSCOPE_API_KEY")
api_key="sk-d9b2178c495e4ea7bd3a11e0fc71984a"
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}"}
payload = {"model": "qwen-vl-max-latest","messages": [{"role": "system","content": [{"type":"text","text": "You are a helpful assistant."}]},{"role": "user","content": [{"type": "image_url",# 需要注意,传入Base64,图像格式(即image/{format})需要与支持的图片列表中的Content Type保持一致。"f"是字符串格式化的方法。# PNG图像: f"data:image/png;base64,{base64_image}"# JPEG图像: f"data:image/jpeg;base64,{base64_image}"# WEBP图像: f"data:image/webp;base64,{base64_image}""image_url": {"url": f"data:image/png;base64,{base64_image}"},},{"type": "text", "text": "请扫描图片中的文字并输出?"},],}],
}
response = requests.post("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",headers=headers,json=payload,
)
print(response.json()["choices"][0]["message"]["content"])
文件放置路径:

运行结果如下:
