发帖
 找回密码
 立即注册
搜索
0 0 0
日常闲聊 753 0 昨天 10:24

各位佬求求了,我这里有一个问题。

我用 python 调用了

import json  
from openai import OpenAI

client = OpenAI(
    api_key="APIKEY",
    base_url="https://api.siliconflow.cn/v1"
)

response = client.chat.completions.create(
        model="deepseek-ai/deepseek-vl2",
        messages=[
		{
			"role": "user",
			"content":[
				{
					"type": "image_url",
					"image_url": {
						"url": f"data:image/jpeg;base64,{base64_image}",
						"detail":"low"
					}
				},
				{
					"type": "text",
					"text": "提示词内容"
				}
			]
		}],
        stream=True
)

for chunk in response:
    chunk_message = chunk.choices[0].delta.content
    print(chunk_message, end='', flush=True)

提示词内容大致如下:

首先查看一下是发货单还是送货单,发货单图片里面会写发货单,没有写的一律按照送货单处理。

发货单返回 JSON 格式模板:
{{
"type": "发货单",
"header":[{{
  "发货单编號": "",
  "发货单单號": "",
  "发货单客戶訂單": "",
  "发货单客户编號": "",
}}],
"line":[
	{{
	  "type": "",
	  "name": "",
	  "xxxx": "",
	  "xxx": ""
  }},
  ....
	]
}},

送货单返回 JSON 格式模板:
{{
	"type": "送货单",
	"xxx":"",
	"xxx":"",
	"xxx":"",
	"xxx":"",
	"xxx":"",
	"xxx":""
}},

你只能按照模板返回 json 特定格式,数据来源必须从图片里面获取,不要返回多余内容。

我想让它确定的返回 json,现在它老是返回莫名其妙的数据,有佬解决过这个问题的吗?

注:该模型不能用 response_format = {‘type’: ‘json_object’}

──── 0人觉得很赞 ────

使用道具 举报

那估计是我的提示词有问题,
我看看怎么优化一下这个提示词
1. 在代码中进行兼容处理,过滤掉 JSON 结构之外的内容。
2. 使用指令时遵循更好的模型。我用的 qwenvl 和豆包 vl,出现的问题都很少。
建议QwenVL,从未出现过JSON格式错误。
谢谢老哥,明天我试试这个方案
gemini2.0flash、gemini2.5flash 以及 gemini2.5flashlite 应该都能胜任你的图像识别任务。gemini 的多模态能力很强,而且也支持结构化输出,准确率能达到 100%,还支持定义 JSON 模式 。
我觉得不是,DeepSeekVL官方自己都不用,这说明这东西很可能连指令都不响应,纯粹就是个测试模型。
DeepSeek不支持结构化输出,能换一个支持的模型吗?比如GPT4o 或者GPT4.1
您需要登录后才可以回帖 立即登录
高级模式