fix: 修复f-string花括号转义问题导致的API错误
This commit is contained in:
25
app.py
25
app.py
@@ -140,26 +140,29 @@ def parse_with_llm(text, category_type, images=None):
|
|||||||
}
|
}
|
||||||
|
|
||||||
fields = field_templates.get(category_type, field_templates['dynamic'])
|
fields = field_templates.get(category_type, field_templates['dynamic'])
|
||||||
|
fields_json = json.dumps(fields, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
# 构建消息内容
|
# 构建消息内容
|
||||||
content_parts = []
|
content_parts = []
|
||||||
|
|
||||||
# 如果有图片,添加图片内容
|
# 如果有图片,添加图片内容
|
||||||
if images and len(images) > 0:
|
if images and len(images) > 0:
|
||||||
content_parts.append({
|
prompt_text = """请分析图片中的产品参数信息,提取结构化数据。
|
||||||
"type": "text",
|
|
||||||
"text": f"""请分析图片中的产品参数信息,提取结构化数据。
|
|
||||||
|
|
||||||
需要提取的字段:
|
需要提取的字段:
|
||||||
{json.dumps(fields, ensure_ascii=False, indent=2)}
|
""" + fields_json + """
|
||||||
|
|
||||||
重要要求:
|
重要要求:
|
||||||
1. 图片中可能包含1个或多个产品,请识别所有产品
|
1. 图片中可能包含1个或多个产品,请识别所有产品
|
||||||
2. 如果是多张图片,请综合分析所有图片内容
|
2. 如果是多张图片,请综合分析所有图片内容
|
||||||
3. 数字字段只返回数字,不带单位
|
3. 数字字段只返回数字,不带单位
|
||||||
4. 如果某字段没有提及,返回null
|
4. 如果某字段没有提及,返回null
|
||||||
5. 返回格式:如果识别到多个产品,返回数组 [{"name": ...}, {"name": ...}]; 如果只有一个产品,返回单个对象 {"name": ...}
|
5. 返回格式:如果识别到多个产品,返回数组 [对象列表]; 如果只有一个产品,返回单个对象
|
||||||
6. 只返回JSON数据,不要其他内容"""
|
6. 只返回JSON数据,不要其他内容"""
|
||||||
|
|
||||||
|
content_parts.append({
|
||||||
|
"type": "text",
|
||||||
|
"text": prompt_text
|
||||||
})
|
})
|
||||||
|
|
||||||
# 添加每张图片(支持URL或base64)
|
# 添加每张图片(支持URL或base64)
|
||||||
@@ -194,15 +197,13 @@ def parse_with_llm(text, category_type, images=None):
|
|||||||
print(f"读取图片失败: {e}")
|
print(f"读取图片失败: {e}")
|
||||||
else:
|
else:
|
||||||
# 纯文本解析
|
# 纯文本解析
|
||||||
content_parts.append({
|
prompt_text = """请解析以下文本,提取结构化数据。
|
||||||
"type": "text",
|
|
||||||
"text": f"""请解析以下文本,提取结构化数据。
|
|
||||||
|
|
||||||
文本内容:
|
文本内容:
|
||||||
{text}
|
""" + str(text) + """
|
||||||
|
|
||||||
需要提取的字段:
|
需要提取的字段:
|
||||||
{json.dumps(fields, ensure_ascii=False, indent=2)}
|
""" + fields_json + """
|
||||||
|
|
||||||
要求:
|
要求:
|
||||||
1. 根据文本内容智能提取各个字段的值
|
1. 根据文本内容智能提取各个字段的值
|
||||||
@@ -211,6 +212,10 @@ def parse_with_llm(text, category_type, images=None):
|
|||||||
4. 返回JSON格式,不要包含任何其他内容
|
4. 返回JSON格式,不要包含任何其他内容
|
||||||
|
|
||||||
请直接返回JSON数据:"""
|
请直接返回JSON数据:"""
|
||||||
|
|
||||||
|
content_parts.append({
|
||||||
|
"type": "text",
|
||||||
|
"text": prompt_text
|
||||||
})
|
})
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user