配置
配置通过 YAML 设置。在大多数情况下,YAML 键映射到 Python 中的字段名。上一节中的示例提供了一个功能齐全的示例,涵盖了广泛的配置选项。
下面的每个部分都描述了可用的配置设置。
嵌入
配置解析器期望 YAML 中存在顶层键 embeddings
。支持所有嵌入配置。
以下示例定义了一个嵌入索引。
path: index path
writable: true
embeddings:
path: vector model
content: true
有三个顶层设置可用于控制索引的保存位置以及索引是否为只读索引。
path
path: string
保存和加载嵌入索引的路径。每个 API 实例一次只能访问一个索引。
writable
writable: boolean
确定输入的嵌入索引是否可写 (true) 或只读 (false)。这允许提供只读索引服务。
cloud
云存储设置可以在顶层配置组 cloud
下进行设置。
代理
代理在顶层键 agent
下定义。agent
键下的每个键都是代理的名称。构造函数参数可以在此键下传递。
以下示例定义了一个代理。
agent:
researcher:
tools:
- websearch
llm:
path: hugging-quants/Meta-Llama-3.1-8B-Instruct-AWQ-INT4
管道
管道作为顶层配置参数加载。管道名称在 YAML 配置中自动检测,并在启动时创建。支持所有管道。
以下示例定义了一系列管道。请注意,下面的条目是管道类的小写名称。
caption:
extractor:
path: model path
labels:
summary:
tabular:
translation:
在每个管道名称下,可以设置该管道的配置。
工作流
工作流在顶层键 workflow
下定义。workflow
键下的每个键都是工作流的名称。其下是带有每个任务定义的 tasks
键。
以下示例定义了一个工作流。
workflow:
sumtranslate:
tasks:
- action: summary
- action: translation
schedule
使用cron 表达式调度工作流。
workflow:
index:
schedule:
cron: 0/10 * * * * *
elements: ["api params"]
tasks:
- task: service
url: api url
- action: index
tasks
tasks: list
期望一个工作流任务列表。每个元素定义一个单个工作流任务。支持所有任务配置。
支持创建任务的简写语法。这种语法将自动把任务字符串映射到 action:value
对。
示例如下。
workflow:
index:
tasks:
- action1
- action2
每个任务元素支持以下附加参数。
action
action: string|list
支持单动作和多动作任务。
通过配置传递时,action 参数的工作方式略有不同。参数需要转换为可调用方法。如果 action 是当前配置中定义的管道,则将使用该管道作为 action。
有三个特殊的 action 名称:index
、upsert
和 search
。如果使用 index
或 upsert
作为 action,任务将收集工作流数据元素并将它们加载到定义的嵌入索引中。如果使用 search
,任务将为每个输入数据元素执行嵌入查询。
否则,action 必须是可调用对象或函数的路径。配置解析器将解析函数名并将其用作任务 action。
task
task: string
可选地设置要创建的任务类型。例如,这可以是一个 file
任务或一个 retrieve
任务。如果未指定,则创建一个通用任务。工作流任务列表可以在这里找到。
args
args: list
可选的静态参数列表,用于传递给工作流任务。这些参数与工作流数据结合,传递给每个 __call__
。