16 条回复  ·  1772 次点击
zqqian 初学 6 天前
可以试试这个逻辑: ··· # 尝试解析 JSON 结果 try: # 如果结果包含在 ```json ``` 中,提取内部内容 if "```json" in translated_text: translated_text = translated_text.split("```json")[1].split("```")[0].strip() elif "```" in translated_text: translated_text = translated_text.split("```")[1].split("```")[0].strip() import re json_match = re.search(r'```json\s*([\s\S]*?)\s*```|({[\s\S]*})', translated_text) if json_match: json_str = json_match.group(1) or json_match.group(2) result = json.loads(json_str) else: # 如果没有找到 JSON 格式,尝试直接解析 result = json.loads(translated_text) ···
akiyamamio 小成 6 天前
我还以为依赖 AI 输出 JSON 就我一个呢,原来都在这么干。 我就是感觉不管是 DeepSeek 还是通义或者别的什么 AI ,就很不稳定,有时候会输出些别的乱七八糟的东西,还以为是我提示词问题或者根本就不应该这么用……
9hills 初学 6 天前
直接用上面提到的 json_repair ,不用搞奇技淫巧
lyxxxh2 楼主 小成 6 天前
https://i.imgur.com/DkJfOou.png 文档有说的,我压根没看。
lyxxxh2 楼主 小成 6 天前
``` 5. 返回格式必须严格按照以下 JSON 格式,不要添加任何其他内容: {"id": number, "name": "string", "score": number} 注意: - id 必须是数字类型,不能带引号 - name 必须是字符串类型,必须带引号 - score 必须是 0-1 之间的小数,表示分类的可能性 - 不要返回 markdown 格式或其他任何格式 EOT], ['role' => 'user', 'content' => "请为商品\"{$product_name}\"选择最合适的分类"] ], 'temperature' => 0.1 ]); ``` 我这样给的,之前稳定。 现在不行,估计加`{type:'json_object'}`就行了。 (temperature => 0.1 curosr 帮我改的... 压根没这个)
LeeReamond 小成 6 天前
插个题外话问个,现在其他家谁家有新版 v3api 可用了嘛?官网的充不了钱呀
smartruid 小成 6 天前
@LeeReamond 官网 api 慢得很,欧派和火山的 api 比较快。欧派有新版 v3 了, 不过限流比较严格。
12
返回顶部