| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import base64
- import os
- from openai import OpenAI
- QWEN_API_KEY = "sk-893e895724c6403d81374e515ffaf427"
- def encode_image_to_base64(image_path):
- with open(image_path, "rb") as image_file:
- return base64.b64encode(image_file.read()).decode('utf-8')
- def recognize_captcha_with_qwen(image_path, api_key):
- # 利用 OpenAI 的包,调用阿里云的兼容 API 接口
- client = OpenAI(
- api_key=api_key,
- base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
- )
-
- base64_image = encode_image_to_base64(image_path)
-
- prompt = "你是一个精确的OCR机器人。请识别图片中的验证码字符。只输出验证码本身的内容,不要任何多余的汉字或标点符号。"
- try:
- response = client.chat.completions.create(
- model="qwen-vl-max", # 也可以用更便宜的 qwen-vl-plus
- messages=[
- {
- "role": "user",
- "content":[
- {"type": "text", "text": prompt},
- {
- "type": "image_url",
- "image_url": {
- "url": f"data:image/png;base64,{base64_image}"
- }
- }
- ]
- }
- ],
- temperature=0.0
- )
- return response.choices[0].message.content.strip()
- except Exception as e:
- print(f"Qwen 识别错误: {e}")
- return None
-
- def recognize_vfs_captcha_with_qwen(base64_image):
- # 利用 OpenAI 的包,调用阿里云的兼容 API 接口
- client = OpenAI(
- api_key=QWEN_API_KEY,
- base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
- )
-
- prompt = "图片中有多组验证码,其中OTP箭头指向的验证码为真,其余为假。只输出真实验证码的内容,不要任何多余的汉字或标点符号。"
- try:
- response = client.chat.completions.create(
- model="qwen-vl-max", # 也可以用更便宜的 qwen-vl-plus
- messages=[
- {
- "role": "user",
- "content":[
- {"type": "text", "text": prompt},
- {
- "type": "image_url",
- "image_url": {
- "url": base64_image
- }
- }
- ]
- }
- ],
- temperature=0.0
- )
- return response.choices[0].message.content.strip()
- except Exception as e:
- print(f"Qwen 识别错误: {e}")
- return None
- if __name__ == "__main__":
- # 填入阿里云百炼 (DashScope) 的 API-KEY
- IMAGE_PATH = "/home/jerry/workspace/coordinator/data/275c31f009e612b65eb92cb52bb1d98.png"
-
- print(f"Qwen-VL 识别结果: {recognize_vfs_captcha_with_qwen(IMAGE_PATH, QWEN_API_KEY)}")
|