LiteLLMWorkflow 配置文件流处理AI命令
介绍
有了这个简单的 Python 项目,你使用 AI 工作流,就不需要跟 fabric 的各种安装配置打交道了,包含:
- 可以用 YAML 文件配置的 AI 工作流
- 在各个节点上,可以分别指定不同的 openrouter.ai API 调用大语言模型
- 所有 patterns 包含的结构化提示词,参考 fabric 写法,大多可以在两个项目之间兼容复用
安装
1 | pip install poetry |
基础
命令行方式
1 | poetry run python app.py "/Users/wsy/Downloads/example_cn.md" --workflow=translation_to_eng |
Web端方式
1 | poetry run streamlit run app_web.py |
进阶
使用 yaml 配置流程
以一个处理为例
1 | strategies |
整个流程包含四个连续的阶段,以下是每个阶段的详细说明:
- 第一个阶段:搜索信息
-
工具名称:
search_exa
。这是一个自定义的搜索工具,实际上是一个调用外部 Exa API 的 Python 函数。它的作用是根据给定的查询获取相关信息。这个工具的使用让我们的工作流能够获取最新、最相关的信息,大大增强了内容的时效性和准确性。 -
输入格式:
"{{text}}"
,直接使用原始文本作为搜索查询。 -
输出名称:
exa_result
。搜索结果被标记为 “exa_result”,这个名称很重要,因为它允许我们在后续的阶段中引用和使用这个搜索结果。
- 第二个阶段:生成大纲
-
模型:
openrouter/anthropic/claude-3.5-sonnet
,使用 Anthropic 的 Claude 3.5 Sonnet 模型。在这个工作流中,我们选择使用它来生成内容大纲,充分利用了它的结构化思维能力。 -
提示名称:
outliner_wsy
。这是一个用于生成大纲的指令模板。具体讲解,请参考这篇文章的介绍。注意这里我进行了改动,只生成大纲。原因是内容填充任务可以放心地交给下一个步骤来完成。 -
输入格式:
"{{exa_result}}"
,使用第一步的搜索结果作为输入。 -
输出名称:
outline
。生成的大纲被标记为 “outline”。
- 第三个阶段:填充草稿
-
模型:
openrouter/anthropic/claude-3.5-sonnet
,再次使用 Claude 3.5 Sonnet 模型。 -
提示名称:
fill_draft_with_material
。这是一个用于填充草稿的提示词。指导 AI 如何使用搜索到的材料来丰富和完善初始大纲,将其转化为一个更详细的草稿。 -
输入格式:包含搜索结果和大纲。
-
输出名称:
draft_filled
。填充后的草稿被标记为 “draft_filled”,为下一步的博客写作做好了准备。
- 第四个阶段:撰写博客
-
模型:
openrouter/anthropic/claude-3.5-sonnet
,再次使用 Claude 3.5 Sonnet 模型。 -
提示名称:
write_wsy_tech_blog
。使用自定义提示词,可以确保生成的博客内容符合特定的风格和质量标准。 -
输入格式:
"{{draft_filled}}"
,使用填充后的草稿作为输入。 -
输出名称:
tech_blog_draft
。最终的博客草稿被标记为 “tech_blog_draft”。这是整个工作流的最终输出,一篇结构完整、内容丰富的博客草稿。
待完善
实现「分支、循环、人工确认与输入干预」