插件配置#
插件是一个基于 FastAPI 的服务器,它使 ACE Agent 能够通过 REST 接口与第三方应用程序或 API 进行交互。
定义插件#
plugin_config.yaml
文件是配置应用程序插件的核心组件。配置文件中的字段及其用途如下。
plugins: - name: calculator path: ./plugins/calculator/calculate.py - name: plugin_name path: config/relative/path/to/entrypoint.py # path will be relative to plugins directory tags: ["plugin_tag1", "plugin_tag2"] prefix: "prefix/path" parameters: param_1: value_of_param config: workers: 1 timeout: 30
plugins
-plugins
部分列出了可用于应用程序的插件。它允许你为每个插件指定多个属性,包括其name
、path
、tags
、prefix
和parameters
。name
-name
字段定义插件的唯一标识符。它既充当插件的名称,又充当prefix
和tags
属性的默认值。path
-path
字段指定从plugin_config.yaml
文件到插件入口点的相对路径。此path
指导应用程序找到插件的位置。prefix
-prefix
字段允许你定义一个端点路径,该路径将附加到path
字段中指定的路径之前。如果未明确指定,则name
将用作prefix
的默认值。tags
-tags
字段允许你将标签与插件服务器关联。标签有助于组织应用程序的 Swagger 文档,从而更轻松地对插件进行分类和访问。如果未明确指定,则name
将用作默认值。parameters
-parameters
字段允许包含要传递到插件服务器的附加参数或配置信息。这允许根据需要自定义和配置插件。config
-config
部分包含 Gunicorn 服务器配置详细信息。这些详细信息确保插件服务器有效且高效地运行。worker
-worker
字段指定要由 Gunicorn 服务器启动的工作进程数。调整此值可以优化服务器性能和资源利用率。其默认值设置为1
。timeout
-timeout
字段定义 Gunicorn 主进程在终止子进程并启动新进程之前等待的持续时间。配置此timeout
对于管理服务器稳定性和响应能力至关重要。其默认值为30 秒
。
添加自定义插件#
你可以为你的用例构建一个自定义插件,并将其作为插件服务器的一部分托管。这允许你扩展插件服务器的功能,以满足你的特定需求。例如,你可以构建一个自定义插件,该插件使用 iTunes REST API 来提取歌曲艺术家信息。
插件服务器支持插件依赖管理。这允许你指定你的自定义插件所依赖的外部包。例如,你可以创建一个使用 Wikipedia API 来检索信息的自定义插件。然后,你可以在插件服务器中将 Wikipedia 添加为外部插件依赖项。这有助于防止错误并确保订单正确完成。
将参数导入插件#
插件服务器提供了一种灵活的机制,用于合并可以在插件中轻松访问的配置参数。此示例概述了如何从 plugin_config.yaml
文件导入和使用插件配置参数。
你可以在 plugin_config.yaml
文件中为插件配置指定参数。这些参数与单个插件关联。在以下示例中,weather
插件配置了一个 mock 参数,设置为 true
。
plugins: - name: weather path: weather.py parameters: mock: true
在插件代码中(例如,weather.py
),可以使用以下方法导入和访问参数
from fastapi import APIRouter from parameters import param router = APIRouter() # Accessing the 'mock' parameter for the 'weather' plugin mock = param.get("weather").get("mock", False) # Additional weather plugin details can be implemented here