Skip to main content

作用

Prompt Tool 是用于构建语言模型输入(Prompt)的核心组件。 每个 Prompt Tool 由 @app.prompt 装饰器定义,其主要职责是: 根据输入内容(如问题、检索到的段落等),加载对应的模板文件,并生成标准化的 PromptMessage, 以便直接传递给大语言模型(LLM)进行生成或推理。

实现示例

Step 1:准备 Prompt 模板

请将你的 prompt 模板保存为 .jinja 结尾的文件,例如:
prompt/qa_rag_boxed.jinja

Step 2:在 Prompt Server 中实现 Tool

调用 load_prompt_template 方法加载模板,并在 Prompt Server 中实现一个工具函数用于组装 prompt:
servers/prompt/src/prompt.py

调用示例

在调用模型生成工具前,需要先通过对应的 Prompt Tool 构建输入提示。
examples/rag_full.yaml

多 Prompt Tool 调用场景

在一些复杂的 Pipeline 中,模型往往需要在不同阶段执行不同任务——例如,先生成子问题,再根据新的检索结果生成最终答案。 此时,就需要在同一 Pipeline 中配置多个 Prompt Tool,分别负责不同的提示构建逻辑。
examples/rag_loop.yaml
若希望为不同任务加载不同模板,需在注册时为每个 Prompt Tool 指定独立的模板字段名:
servers/prompt/src/prompt.py
随后,在 servers/prompt/parameter.yaml 中添加对应模板字段:
请确保在执行 build 命令前完成此修改。
servers/prompt/parameter.yaml
运行以下命令编译 Pipeline:
系统会自动在生成的参数文件中注册新字段:
examples/rag_loop_parameter.yaml
随后即可正常执行该 Pipeline。