插件配置#
插件是一个基于 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