main
HuangHai 4 months ago
parent 7e79f2327f
commit 5eed794b71

@ -622,11 +622,10 @@ async def generate_upload_params(current_user: dict = Depends(get_current_user))
@app.get("/aichat/recognize_content")
async def web_recognize_content(image_url: str,
# current_user: dict = Depends(get_current_user)
current_user: dict = Depends(get_current_user)
):
# logger.info(f"current_user:{current_user['login_name']}")
# person_id = current_user['person_id']
person_id = '0F66D9C5-428C-FE03-67EE-E5BEE46CB495'
logger.info(f"current_user:{current_user['login_name']}")
person_id = current_user['person_id']
# 获取图片宽高
image_width, image_height = getImgWidthHeight(image_url)
@ -686,11 +685,10 @@ async def web_recognize_content(image_url: str,
@app.get("/aichat/recognize_text")
async def web_recognize_text(image_url: str,
# current_user: dict = Depends(get_current_user)
current_user: dict = Depends(get_current_user)
):
# logger.info(f"current_user:{current_user['login_name']}")
# person_id = current_user['person_id']
person_id = '0F66D9C5-428C-FE03-67EE-E5BEE46CB495'
logger.info(f"current_user:{current_user['login_name']}")
person_id = current_user['person_id']
# 获取图片宽高
image_width, image_height = getImgWidthHeight(image_url)
@ -760,11 +758,10 @@ async def web_recognize_text(image_url: str,
@app.get("/aichat/recognize_math")
async def web_recognize_math(image_url: str,
# current_user: dict = Depends(get_current_user)
current_user: dict = Depends(get_current_user)
):
# logger.info(f"current_user:{current_user['login_name']}")
# person_id = current_user['person_id']
person_id = '0F66D9C5-428C-FE03-67EE-E5BEE46CB495'
logger.info(f"current_user:{current_user['login_name']}")
person_id = current_user['person_id']
# 获取图片宽高
image_width, image_height = getImgWidthHeight(image_url)

@ -0,0 +1,58 @@
#!/usr/bin/env python
import argparse, sys, markdown
TEMPLATE = """<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="referrer" content="no-referrer" />
<meta name="referrer" content="unsafe-url" />
<meta name="referrer" content="origin" />
<meta name="referrer" content="no-referrer-when-downgrade" />
<meta name="referrer" content="origin-when-cross-origin" />
<title>Page Title</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: Helvetica,Arial,sans-serif;
}
code, pre {
font-family: monospace;
}
</style>
</head>
<body>
<div class="container">
{{content}}
</div>
</body>
</html>
"""
def parse_args(args=None):
d = 'Make a complete, styled HTML document from a Markdown file.'
parser = argparse.ArgumentParser(description=d)
parser.add_argument('mdfile', type=argparse.FileType('r'), nargs='?',
default=sys.stdin,
help='File to convert. Defaults to stdin.')
parser.add_argument('-o', '--out', type=argparse.FileType('w'),
default=sys.stdout,
help='Output file name. Defaults to stdout.')
return parser.parse_args(args)
def main(args=None):
args = parse_args(args)
md = args.mdfile.read()
extensions = ['extra', 'smarty']
html = markdown.markdown(md, extensions=extensions, output_format='html5')
doc = TEMPLATE.replace('{{content}}', html);
args.out.write(doc)
if __name__ == '__main__':
sys.exit(main())

@ -0,0 +1,87 @@
from openai import OpenAI
from WxMini.Milvus.Config.MulvusConfig import *
# 几何题,计算面积和体积
image_url = "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"
# image_url = 'https://hzkc.oss-cn-beijing.aliyuncs.com/Upload/wuli.png'
# 初始化OpenAI客户端
client = OpenAI(
api_key=MODEL_API_KEY,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
reasoning_content = "" # 定义完整思考过程
answer_content = "" # 定义完整回复
is_answering = False # 判断是否结束思考过程并开始回复
prompt = """
请以标准的 Markdown 格式返回答案具体要求如下
1. 标题使用 `#` 或 `##`。
2. 列表使用 `-` `*`并确保缩进一致
3. 数学公式使用 `$...$` 表示行内公式
4. 数学公式使用 `$$...$$` 表示块级公式
5. Markdown 文件中使用 $$ 标记数学公式并确保 align* 环境中的公式正确对齐
(1). 使用 $$ 包裹多行数学公式
(2). align* 环境中每行公式的开头使用 & 符号对齐
(3). 确保公式内容清晰易读并正确使用 LaTeX 语法
示例
markdown> ### 表面积> - **公式**$S = 2(ab + ah + bh)$ > 其中 $a=4\,\text{cm}$(长)、$b=3\,\text{cm}$(宽)、$h=2\,\text{cm}$(高)。> > - **计算过程**> $$> \begin{align*}> S &= 2(4 \times 3 + 4 \times 2 + 3 \times 2) \\> &= 2(12 + 8 + 6) \\> &= 2 \times 26 \\> &= 52\,\text{cm}^2> \end{align*}> $$>
注意事项
- 确保 $$ 包裹的公式块独立成段不与普通文本混排
- align* 环境中每行公式的开头使用 & 符号对齐例如 S &= ...
- 使用 \text{} 包裹单位例如 \text{cm}^2
目标
生成的 Markdown 文件应能够通过 pandoc 正确转换为 HTML并使用 MathJax 渲染数学公式
"""
# 创建聊天完成请求
completion = client.chat.completions.create(
model="qvq-max", # 此处以 qvq-max 为例,可按需更换模型名称
messages=[
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."}],
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": image_url
},
},
{"type": "text", "text": "这道题怎么解答?" + prompt},
],
},
],
stream=True,
)
for chunk in completion:
# 如果chunk.choices为空则打印usage
if not chunk.choices:
print("\nUsage:")
print(chunk.usage)
else:
delta = chunk.choices[0].delta
# 打印思考过程
if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:
print(delta.reasoning_content, end='', flush=True)
reasoning_content += delta.reasoning_content
else:
# 开始回复
if delta.content != "" and is_answering is False:
print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
is_answering = True
# 打印回复过程
print(delta.content, end='', flush=True)
answer_content += delta.content
# 将完整回复保存到指定文件
output_file = "c:/1.md" # 指定保存文件的路径
with open(output_file, "w", encoding="utf-8") as file:
file.write(answer_content)
print(f"\n完整回复已保存到文件:{output_file}")
Loading…
Cancel
Save