diff --git a/astrbot/core/provider/sources/openai_source.py b/astrbot/core/provider/sources/openai_source.py index 5399fbc32..f25ee3fc4 100644 --- a/astrbot/core/provider/sources/openai_source.py +++ b/astrbot/core/provider/sources/openai_source.py @@ -21,7 +21,7 @@ from astrbot import logger from astrbot.core.provider.func_tool_manager import FuncCall from typing import List, AsyncGenerator from ..register import register_provider_adapter -from astrbot.core.provider.entities import LLMResponse +from astrbot.core.provider.entities import LLMResponse, ToolCallsResult @register_provider_adapter( @@ -221,14 +221,16 @@ class ProviderOpenAIOfficial(Provider): self, prompt: str, session_id: str = None, - image_urls: List[str] = [], + image_urls: list[str] = None, func_tool: FuncCall = None, - contexts=[], - system_prompt=None, - tool_calls_result=None, + contexts: list=None, + system_prompt: str=None, + tool_calls_result: ToolCallsResult=None, **kwargs, ) -> tuple: """准备聊天所需的有效载荷和上下文""" + if contexts is None: + contexts = [] new_record = await self.assemble_context(prompt, image_urls) context_query = [*contexts, new_record] if system_prompt: @@ -337,11 +339,11 @@ class ProviderOpenAIOfficial(Provider): async def text_chat( self, - prompt: str, - session_id: str = None, - image_urls: List[str] = [], - func_tool: FuncCall = None, - contexts=[], + prompt, + session_id = None, + image_urls = None, + func_tool = None, + contexts=None, system_prompt=None, tool_calls_result=None, **kwargs, diff --git a/packages/vpet/main.py b/packages/vpet/main.py new file mode 100644 index 000000000..6623cd6f9 --- /dev/null +++ b/packages/vpet/main.py @@ -0,0 +1,19 @@ +from astrbot.api.event import filter, AstrMessageEvent +from astrbot.api.star import Context, Star, register +from astrbot.api import logger + +@register("vpet", "AstrBot Team", "虚拟桌宠", "0.0.1") +class VPet(Star): + def __init__(self, context: Context): + super().__init__(context) + + async def initialize(self): + """可选择实现异步的插件初始化方法,当实例化该插件类之后会自动调用该方法。""" + + @filter.llm_tool("screenshot") + async def screenshot(self, event: AstrMessageEvent): + """Capture the screen and return the image.""" + + + async def terminate(self): + """可选择实现异步的插件销毁方法,当插件被卸载/停用时会调用。"""