



























llama-agents 基于starlette web 框架提供了基于rest api 的workflow 管理能力,对于希望实现灵活控制的场景是比较有用的
pip install llama-agents-server
import asyncio
from workflows import Workflow, step
from workflows.context import Context
from workflows.events import Event, StartEvent, StopEvent
from llama_agents.server import WorkflowServer
class StreamEvent(Event):
sequence: int
# Define a simple workflow
class GreetingWorkflow(Workflow):
@step
async def greet(self, ctx: Context, ev: StartEvent) -> StopEvent:
for i in range(3):
ctx.write_event_to_stream(StreamEvent(sequence=i))
await asyncio.sleep(0.3)
name = ev.get("name", "World")
return StopEvent(result=f"Hello, {name}!")
greet_wf = GreetingWorkflow()
# Create a server instance
server = WorkflowServer()
# Add the workflow to the server
server.add_workflow("greet", greet_wf)
# To run the server programmatically (e.g., from your own script)
# import asyncio
#
# async def main():
# await server.serve(host="0.0.0.0", port=8080)
#
# if __name__ == "__main__":
# asyncio.run(main())
cli 模式
python -m workflows.server my_server.py
提供的接口以及参数可以参考官方文档,实际上WorkflowServer 是支持持久化存储的(sqlite 以及pg dbos 支撑的)
参考使用
sqlite
from llama_agents.server import WorkflowServer, SqliteWorkflowStore
store = SqliteWorkflowStore(db_path="workflows.db")
server = WorkflowServer(workflow_store=store)
server.add_workflow("greet", greet_wf)
pg
from dbos import DBOS
from llama_agents.dbos import DBOSRuntime
from llama_agents.server import WorkflowServer
# Configure DBOS — uses SQLite by default, or set system_database_url for Postgres
DBOS(config={"name": "my-app", "run_admin_server": False})
runtime = DBOSRuntime()
server = WorkflowServer(
workflow_store=runtime.create_workflow_store(),
runtime=runtime.build_server_runtime(),
)
server.add_workflow("greet", GreetingWorkflow())
https://developers.llamaindex.ai/python/llamaagents/workflows/deployment/
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。