import time import re async def is_text_dominant(client, image_url): """ 判断图片是否主要是文字内容 :param image_url: 图片 URL :return: True(主要是文字) / False(主要是物体/场景) """ completion = await client.chat.completions.create( model="qwen-vl-ocr", messages=[ { "role": "user", "content": [ { "type": "image_url", "image_url": image_url, "min_pixels": 28 * 28 * 4, "max_pixels": 28 * 28 * 1280 }, {"type": "text", "text": "Read all the text in the image."}, ] } ], stream=False ) text = completion.choices[0].message.content # 判断是否只有英文和数字 if re.match(r'^[A-Za-z0-9\s]+$', text): print("识别到的内容只有英文和数字,可能是无意义的字符,调用识别内容功能。") return False return True async def recognize_text(client, pool, image_url): """ 识别图片中的文字,流式输出 """ completion = await client.chat.completions.create( model="qwen-vl-ocr", messages=[ { "role": "user", "content": [ { "type": "image_url", "image_url": image_url, "min_pixels": 28 * 28 * 4, "max_pixels": 28 * 28 * 1280 }, {"type": "text", "text": "Read all the text in the image."}, ] } ], stream=True ) async for chunk in completion: if chunk.choices[0].delta.content is not None: for char in chunk.choices[0].delta.content: if char != ' ': yield char time.sleep(0.1) async def recognize_content(client, pool, image_url): """ 识别图片中的内容,流式输出 """ completion = await client.chat.completions.create( model="qwen-vl-plus", messages=[{"role": "user", "content": [ {"type": "text", "text": "这是什么"}, {"type": "image_url", "image_url": {"url": image_url}} ]}], stream=True ) async for chunk in completion: if chunk.choices[0].delta.content is not None: for char in chunk.choices[0].delta.content: yield char time.sleep(0.1)