From 587df943828dd95596f3588fc6b0f4ff63ecc913 Mon Sep 17 00:00:00 2001 From: qiaoyun680 <549653222@qq.com> Date: Mon, 19 May 2025 09:24:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?chatgpt:=E5=85=BC=E5=AE=B9=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E6=A8=A1=E5=9E=8B=E8=BF=94=E5=9B=9Ejson=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BF=A1=E6=81=AF=E7=94=A8markdown=E8=AF=AD=E6=B3=95?= =?UTF-8?q?=E5=8C=85=E8=A3=B9=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins.v2/chatgpt/openai.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins.v2/chatgpt/openai.py b/plugins.v2/chatgpt/openai.py index 22a1e2c..ff3a3e6 100644 --- a/plugins.v2/chatgpt/openai.py +++ b/plugins.v2/chatgpt/openai.py @@ -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 { From 3c5b78cec4f92a065b3f26b177c80c46d12d43a1 Mon Sep 17 00:00:00 2001 From: qiaoyun680 <549653222@qq.com> Date: Mon, 19 May 2025 10:14:56 +0800 Subject: [PATCH 2/2] =?UTF-8?q?ChatGPT:=E5=85=BC=E5=AE=B9=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E6=A8=A1=E5=9E=8B=E8=BF=94=E5=9B=9Ejson=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BF=A1=E6=81=AF=E7=94=A8markdown=E8=AF=AD=E6=B3=95?= =?UTF-8?q?=E5=8C=85=E8=A3=B9=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.v2.json | 3 ++- plugins.v2/chatgpt/__init__.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.v2.json b/package.v2.json index 76dc4f2..88c0d3a 100644 --- a/package.v2.json +++ b/package.v2.json @@ -94,11 +94,12 @@ "name": "ChatGPT", "description": "消息交互支持与ChatGPT对话。", "labels": "消息通知,识别", - "version": "2.1.4", + "version": "2.1.5", "icon": "Chatgpt_A.png", "author": "jxxghp", "level": 1, "history": { + "v2.1.5": "兼容一些模型返回json数据信息用markdown语法包裹的情况", "v2.1.4": "不处理http链接", "v2.1.3": "修复通知异常", "v2.1.2": "支持传入多个api key", diff --git a/plugins.v2/chatgpt/__init__.py b/plugins.v2/chatgpt/__init__.py index 1a7f255..1bf0192 100644 --- a/plugins.v2/chatgpt/__init__.py +++ b/plugins.v2/chatgpt/__init__.py @@ -17,7 +17,7 @@ class ChatGPT(_PluginBase): # 插件图标 plugin_icon = "Chatgpt_A.png" # 插件版本 - plugin_version = "2.1.4" + plugin_version = "2.1.5" # 插件作者 plugin_author = "jxxghp" # 作者主页