主题
注意
LlamaAgents 的云端部署目前处于 beta 预览阶段,已广泛开放以供反馈。你可以在本地试用,或部署到 LlamaCloud 并通过应用内的反馈按钮把意见发给我们。
LlamaAgents 会在本地和云端运行你的 LlamaIndex 工作流。写好工作流、加上最少的配置,llamactl 就把它们包装成一个把它们作为 HTTP API 暴露出来的应用服务端。
学习基础(LlamaIndex Workflows)
LlamaAgents 构建在 LlamaIndex 工作流之上。如果你还不熟悉工作流,请从这里开始:LlamaIndex Workflows。
编写一个工作流(快速示例)
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)配置供 LlamaAgents 提供服务的工作流
应用服务端会读取你在 pyproject.toml 中配置的工作流,并以配置时指定的名字提供它们。
先在代码中定义好工作流实例,再在配置里引用它们。
pyproject.toml
[project]
name = "app"
# ...
[tool.llamaagents.workflows]
answer-question = "app.workflows:qa_workflow"服务是如何工作的(本地与云端)
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 token 来发起请求。例如:
终端窗口
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?"}}'工作流 HTTP API
使用 WorkflowServer 时,应用服务端会把你的工作流作为 API 暴露出来。OpenAPI 参考可在 /deployments/<name>/docs 查看。
通过这个 API 你可以:
- 获取已注册工作流的详情
- 触发工作流运行
- 流式接收工作流发布的事件,并取回其最终结果
- 向进行中的工作流发送事件(例如 HITL 场景)。
开发期间,访问 http://localhost:4501/debugger 就能在界面中测试并观察你的工作流。