From 5ae3d623a8761aad3964ddf007fb41f1f902c650 Mon Sep 17 00:00:00 2001 From: SlyAimer <2289782085@qq.com> Date: Sat, 15 Mar 2025 15:55:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(ai=5Fchat):=20=E4=BD=BF=E7=94=A8AsyncOpenA?= =?UTF-8?q?I=E6=9B=BF=E6=8D=A2openai=E5=BA=93=E5=B9=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E6=94=AF=E6=8C=81=20feat(animetrace):=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9Eanimetrace=5Fsearch=5Fby=5Furl=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=94=A8=E4=BA=8E=E6=90=9C=E7=95=AA=20feat(image):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=90=9C=E7=95=AA=E5=8A=9F=E8=83=BD=E5=B9=B6?= =?UTF-8?q?=E9=9B=86=E6=88=90animetrace=5Fsearch=5Fby=5Furl=20chore(check)?= =?UTF-8?q?:=20=E6=9B=B4=E6=96=B0=E8=8F=9C=E5=8D=95=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E5=88=97=E8=A1=A8=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=90=9C=E7=95=AA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/clover_image/animetrace.py | 24 ++++++++++++++++++++++++ src/clover_openai/ai_chat.py | 4 ++-- src/plugins/check.py | 4 ++-- src/plugins/image.py | 19 ++++++++++--------- 4 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 src/clover_image/animetrace.py diff --git a/src/clover_image/animetrace.py b/src/clover_image/animetrace.py new file mode 100644 index 0000000..bf925fe --- /dev/null +++ b/src/clover_image/animetrace.py @@ -0,0 +1,24 @@ + +import aiohttp +from src.configs.api_config import animetrace_url + +async def animetrace_search_by_url(search_url): + data = { + 'model': 'anime_model_lovelive', + 'ai_detect':0, + 'is_multi':1, + 'url': search_url + } + sort,content = 1,"" + async with aiohttp.ClientSession() as session: + async with session.post(animetrace_url, data=data) as response: + if response.status == 200: + result = await response.json() + for item in result['data'][0]['character']: + content += f"{sort} :作品名称:{item['work']}\n" + sort += 1 + return content + else: + return None + + diff --git a/src/clover_openai/ai_chat.py b/src/clover_openai/ai_chat.py index 59a1479..93ac97b 100644 --- a/src/clover_openai/ai_chat.py +++ b/src/clover_openai/ai_chat.py @@ -1,4 +1,4 @@ -import openai +from openai import AsyncOpenAI as openai import requests from src.clover_sqlite.models.chat import GroupChatRole from src.configs.api_config import v3url, v3key, deepseek_url, deepseek_key,silicon_flow_key @@ -39,7 +39,7 @@ async def deepseek_chat(group_openid,content): openai.base_url = deepseek_url await GroupChatRole.save_chat_history(group_openid, {"role": "user", "content": content}) messages = await GroupChatRole.get_chat_history(group_openid) - completion = openai.chat.completions.create( + completion = await openai.chat.completions.create( model="deepseek-chat", messages=messages, stream=False diff --git a/src/plugins/check.py b/src/plugins/check.py index 8eb99f5..c850c65 100644 --- a/src/plugins/check.py +++ b/src/plugins/check.py @@ -8,11 +8,11 @@ from src.clover_openai import ai_chat from src.clover_sqlite.models.chat import GroupChatRole from src.clover_sqlite.models.user import UserList -menu = ["/重启","/今日运势","/今日塔罗","/图","/随机图","/日报","/点歌","/摸摸头","/群老婆","/今日老婆", "/开启ai","/关闭ai","/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册", +menu = ["/重启","/今日运势","/今日塔罗","/图","/随机图","/搜番","/日报","/点歌","/摸摸头","/群老婆","/今日老婆", "/开启ai","/关闭ai","/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册", "/待办", "/test","/天气","我喜欢你", "❤", "/待办查询", "/新建待办", "/删除待办" ,"/cf","/B站搜索", "/BV搜索", "/喜报", "/悲报", "/luxun","/鲁迅说", "/奶龙", "/repo", "/info", "/menu", "/轻小说","/本季新番","/新番观察","/绝对色感"] -send_menu = ["/menu","/今日运势","/今日塔罗","/图","/随机图","/日报","/点歌","/摸摸头","/群老婆","/待办","/天气", +send_menu = ["/menu","/今日运势","/今日塔罗","/图","/随机图","搜番","/日报","/点歌","/摸摸头","/群老婆","/待办","/天气", "/待办查询", "/新建待办", "/删除待办" ,"/cf","/B站搜索", "/BV搜索", "/喜报", "/悲报","/鲁迅说", "/轻小说","/本季新番","/新番观察","/绝对色感"] diff --git a/src/plugins/image.py b/src/plugins/image.py index b69e801..21b7e6b 100644 --- a/src/plugins/image.py +++ b/src/plugins/image.py @@ -5,6 +5,7 @@ from nonebot.plugin import on_command from nonebot.adapters.qq import MessageSegment,MessageEvent from src.clover_image.get_image import get_image_names,get_anosu_image from src.clover_image.download_image import download_image +from src.clover_image.animetrace import animetrace_search_by_url from src.clover_image.delete_file import delete_file from src.configs.path_config import temp_path @@ -54,13 +55,13 @@ async def handle_function(message: MessageEvent): -# search_image = on_command("/搜图", rule=to_me(), priority=10, block=True) -# @image.handle() -# async def handle_function(message: MessageEvent): -# -# filename = str(message.get_user_id()) + str(random.randint(0, 10000)) + ".jpg" -# image_ptah = temp_path + filename -# -# await download_image(message.attachments[0].url, image_ptah) -# await image.finish(MessageSegment.file_image(Path(image_ptah))) +search_image = on_command("搜番", rule=to_me(), priority=10, block=False) +@search_image.handle() +async def handle_function(message: MessageEvent): + if not message.attachments: + await search_image.finish("没有图片捏,你想让我搜什么捏?") + result = await animetrace_search_by_url(message.attachments[0].url) + if result is None: + await search_image.finish("未找到结果") + await search_image.finish(MessageSegment.text('\n 搜索结果\n'+result))