main
HuangHai 4 months ago
parent 056c66b46b
commit e916f88078

@ -1,6 +1,8 @@
import time
import re
from WxMini.Utils.MySQLUtil import save_chat_to_mysql
async def is_text_dominant(client, image_url):
"""
@ -35,9 +37,14 @@ async def is_text_dominant(client, image_url):
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(
model="qwen-vl-ocr",
@ -57,15 +64,25 @@ async def recognize_text(client, pool,person_id, image_url):
],
stream=True
)
full_text = "" # 用于存储最终拼接的字符串
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)
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}")
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
)
full_text = "" # 用于存储最终拼接的字符串
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)
if char != ' ':
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