main
HuangHai 4 months ago
parent 056c66b46b
commit e916f88078

@ -1,6 +1,8 @@
import time import time
import re import re
from WxMini.Utils.MySQLUtil import save_chat_to_mysql
async def is_text_dominant(client, image_url): async def is_text_dominant(client, image_url):
""" """
@ -35,9 +37,14 @@ async def is_text_dominant(client, image_url):
return True return True
async def recognize_text(client, pool,person_id, image_url): async def recognize_text(client, pool, person_id, image_url):
""" """
识别图片中的文字流式输出 识别图片中的文字流式输出并将结果记录到数据库
:param client: AsyncOpenAI 客户端
:param pool: 数据库连接池
:param person_id: 用户 ID
:param image_url: 图片 URL
:return: 最终拼接的字符串
""" """
completion = await client.chat.completions.create( completion = await client.chat.completions.create(
model="qwen-vl-ocr", model="qwen-vl-ocr",
@ -57,15 +64,25 @@ async def recognize_text(client, pool,person_id, image_url):
], ],
stream=True stream=True
) )
full_text = "" # 用于存储最终拼接的字符串
async for chunk in completion: async for chunk in completion:
if chunk.choices[0].delta.content is not None: if chunk.choices[0].delta.content is not None:
for char in chunk.choices[0].delta.content: for char in chunk.choices[0].delta.content:
if char != ' ': if char != ' ':
yield char yield char # 流式输出字符
time.sleep(0.1) full_text += char # 拼接字符
time.sleep(0.1) # 控制输出速度
# 记录到数据库
try:
await save_chat_to_mysql(pool, person_id, f'![]({image_url})', full_text, "", 0)
except Exception as e:
print(f"记录到数据库时出错:{e}")
async def recognize_content(client, pool,person_id, image_url):
async def recognize_content(client, pool, person_id, image_url):
""" """
识别图片中的内容流式输出 识别图片中的内容流式输出
""" """
@ -77,8 +94,17 @@ async def recognize_content(client, pool,person_id, image_url):
]}], ]}],
stream=True stream=True
) )
full_text = "" # 用于存储最终拼接的字符串
async for chunk in completion: async for chunk in completion:
if chunk.choices[0].delta.content is not None: if chunk.choices[0].delta.content is not None:
for char in chunk.choices[0].delta.content: for char in chunk.choices[0].delta.content:
yield char if char != ' ':
time.sleep(0.1) yield char # 流式输出字符
full_text += char # 拼接字符
time.sleep(0.1) # 控制输出速度
# 记录到数据库
try:
await save_chat_to_mysql(pool, person_id, f'![]({image_url})', full_text, "", 0)
except Exception as e:
print(f"记录到数据库时出错:{e}")

Loading…
Cancel
Save