调整dify内容
This commit is contained in:
@@ -18,6 +18,10 @@ from utils.media_downloader import MediaDownloader
|
|||||||
from utils.string_utils import remove_trailing_content
|
from utils.string_utils import remove_trailing_content
|
||||||
from wechat_ipad import WechatAPIClient
|
from wechat_ipad import WechatAPIClient
|
||||||
|
|
||||||
|
# 常见的图片和视频文件扩展名
|
||||||
|
IMAGE_EXTENSIONS = {'.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.webp'}
|
||||||
|
VIDEO_EXTENSIONS = {'.mp4', '.avi', '.mov', '.wmv', '.flv', '.mkv', '.webm'}
|
||||||
|
|
||||||
|
|
||||||
class DifyPlugin(MessagePluginInterface):
|
class DifyPlugin(MessagePluginInterface):
|
||||||
"""Dify AI聊天插件"""
|
"""Dify AI聊天插件"""
|
||||||
@@ -151,7 +155,13 @@ class DifyPlugin(MessagePluginInterface):
|
|||||||
# 判断是否为本地文件路径
|
# 判断是否为本地文件路径
|
||||||
if os.path.isfile(response):
|
if os.path.isfile(response):
|
||||||
# 如果是文件路径,使用发送文件方法
|
# 如果是文件路径,使用发送文件方法
|
||||||
await bot.send_image_message((roomid if roomid else sender), Path(response))
|
file_type = self.check_file_type(response)
|
||||||
|
if file_type == 1:
|
||||||
|
await bot.send_image_message((roomid if roomid else sender), Path(response))
|
||||||
|
elif file_type == 2:
|
||||||
|
await bot.send_video_message((roomid if roomid else sender), Path(response))
|
||||||
|
else:
|
||||||
|
return False, "获取媒资失败"
|
||||||
else:
|
else:
|
||||||
# 如果是普通文本,则在长度大于100字时,转为图片发送
|
# 如果是普通文本,则在长度大于100字时,转为图片发送
|
||||||
if len(response) > 800:
|
if len(response) > 800:
|
||||||
@@ -218,7 +228,14 @@ class DifyPlugin(MessagePluginInterface):
|
|||||||
# 判断是否为本地文件路径
|
# 判断是否为本地文件路径
|
||||||
if os.path.isfile(response):
|
if os.path.isfile(response):
|
||||||
# 如果是文件路径,使用发送文件方法
|
# 如果是文件路径,使用发送文件方法
|
||||||
await bot.send_image_message((roomid if roomid else sender), Path(response))
|
# 判断是视频还是图片:
|
||||||
|
file_type = self.check_file_type(response)
|
||||||
|
if file_type == 1:
|
||||||
|
await bot.send_image_message((roomid if roomid else sender), Path(response))
|
||||||
|
elif file_type == 2:
|
||||||
|
await bot.send_video_message((roomid if roomid else sender), Path(response))
|
||||||
|
else:
|
||||||
|
return False, "获取媒资失败"
|
||||||
else:
|
else:
|
||||||
# 如果是普通文本,则在长度大于100字时,转为图片发送
|
# 如果是普通文本,则在长度大于100字时,转为图片发送
|
||||||
if len(response) > 800:
|
if len(response) > 800:
|
||||||
@@ -453,3 +470,19 @@ class DifyPlugin(MessagePluginInterface):
|
|||||||
"""重置所有会话上下文"""
|
"""重置所有会话上下文"""
|
||||||
self.conversations.clear()
|
self.conversations.clear()
|
||||||
self.last_activity.clear()
|
self.last_activity.clear()
|
||||||
|
|
||||||
|
def check_file_type(self, file_path) -> int:
|
||||||
|
if os.path.isfile(file_path):
|
||||||
|
# 获取文件扩展名并转换为小写
|
||||||
|
file_extension = os.path.splitext(file_path)[1].lower()
|
||||||
|
|
||||||
|
if file_extension in IMAGE_EXTENSIONS:
|
||||||
|
return 1
|
||||||
|
# 在此处添加发送图片的逻辑
|
||||||
|
elif file_extension in VIDEO_EXTENSIONS:
|
||||||
|
return 2
|
||||||
|
# 在此处添加发送视频的逻辑
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|||||||
Reference in New Issue
Block a user