chatgpt:兼容一些模型返回json数据信息用markdown语法包裹的情况

This commit is contained in:
qiaoyun680
2025-05-19 09:24:30 +08:00
parent 30009b396c
commit 587df94382

View File

@@ -1,4 +1,5 @@
import json
import re
import time
from typing import List, Union
@@ -127,6 +128,14 @@ class OpenAi:
_filename_prompt = '接下来我会给你一个电影或电视剧的文件名你需要识别文件名中的名称、版本、分段、年份、分瓣率、季集等信息并按以下JSON格式返回{"name":string,"version":string,"part":string,"year":string,"resolution":string,"season":number|null,"episode":number|null}特别注意返回结果需要严格附合JSON格式不需要有任何其它的字符。如果中文电影或电视剧的文件名中存在谐音字或字母替代的情况请还原最有可能的结果。'
completion = self.__get_model(prompt=_filename_prompt, message=filename)
result = completion.choices[0].message.content
# 有些模型返回json数据时会使用 ```json ``` 包裹json对象 所以需要进行提取
# 定义正则表达式模式,匹配```json开头和```结尾的内容
pattern = r'^```json\s*([\s\S]*?)\s*```$'
# 使用正则表达式进行匹配
match = re.match(pattern, result.strip())
if match:
# 提取中间的JSON部分
result = match.group(1)
return json.loads(result)
except Exception as e:
return {