跳转到内容

服务您的工作流

LlamaAgents 在本地和云端运行您的 LlamaIndex 工作流。编写您的工作流,添加最小配置,llamactl 会将它们封装在一个应用程序服务器中,并将其作为 HTTP API 暴露出来。

学习基础知识 (LlamaIndex 工作流)

Section titled “Learn the basics (LlamaIndex Workflows)”

LlamaAgents 构建于 LlamaIndex 工作流之上。如果您是工作流的新手,请从这里开始:LlamaIndex 工作流

编写工作流程(快速示例)

Section titled “Author a workflow (quick example)”
src/app/workflows.py
from llama_index.core.workflow import Workflow, step, StartEvent, StopEvent
class QuestionFlow(Workflow):
@step
async def generate(self, ev: StartEvent) -> StopEvent:
question = ev.question
return StopEvent(result=f"Answer to {question}")
qa_workflow = QuestionFlow(timeout=120)

应用服务器读取在您的 pyproject.toml 中配置的工作流,并通过其配置的名称使其可用。

在代码中定义工作流实例,然后在配置中引用它们。

pyproject.toml
[project]
name = "app"
# ...
[tool.llamadeploy.workflows]
answer-question = "app.workflows:qa_workflow"

服务工作原理(本地与云端)

Section titled “How serving works (local and cloud)”
  • llamactl serve 发现您的配置。请参阅 llamactl serve
  • 应用服务器加载您的工作流。
  • HTTP路由暴露在/deployments/{name}下。在开发环境中,{name}默认为您的Python项目名称且可配置。部署时,您可以设置新名称;可能会附加一个简短的随机后缀以确保唯一性。
  • 工作流实例在指定名称下注册。例如,POST /deployments/app/workflows/answer-question/run 运行上述工作流。
  • 如果配置了用户界面,它将与您的API并行运行(开发环境中通过代理,预览环境中为静态)。详情请参阅用户界面构建与开发集成

在开发过程中,API可在http://localhost:4501获取。部署到LlamaCloud后,可通过https://api.cloud.llamaindex.ai访问。

在本地开发期间,API 处于未受保护状态。部署后,您的 API 将使用与 LlamaCloud 相同的授权机制。在与智能体相同的项目中创建 API 令牌以发起请求。例如:

Terminal window
curl 'https://api.cloud.llamaindex.ai/deployments/app-xyz123/workflows/answer-question/run' \
-H 'Authorization: Bearer llx-xxx' \
-H 'Content-Type: application/json' \
--data '{"start_event": {"question": "What is the capital of France?"}}'

当使用 WorkflowServer 时,应用服务器会将您的工作流作为API公开。请在 /deployments/<name>/docs 查看OpenAPI参考文档。

此API允许您:

  • 获取已注册工作流的详细信息
  • 触发您工作流的运行
  • 从您的工作流中流式发布事件,并从中检索最终结果
  • 向进行中的工作流发送事件(例如,人工介入场景)。

在开发过程中,请访问 http://localhost:4501/debugger 在用户界面中测试和观察您的工作流程。