使用 OpenAGI 和 HuggingFace 模型构建智能体工作流
社区文章 发布于 2024 年 6 月 26 日
概述
在 AI Planet,我们创建了 OpenAGI,旨在普及类人智能体的访问,并通过 AI 解决现实生活中的问题。OpenAGI 提供了一个灵活的框架,供开发人员构建能够独立规划、推理和行动的自主智能体,提供超越传统 LLM 应用程序的功能。
主要特性
- 灵活的智能体架构:支持顺序、并行和动态通信模式。
- 简化集成:简化设置过程,克服智能体开发中的常见障碍。
- 自动化与手动配置:提供自动化和手动配置选项,实现详细定制。
应用场景
- 教育:个性化学习体验和管理任务自动化。
- 金融:欺诈检测、风险评估、个性化建议和交易自动化。
- 医疗保健:患者监测、健康建议、数据管理和疾病诊断。
未来展望
我们正在加强智能体,通过经验和反馈来改进它们,目标是随着时间的推移,让专业智能体在特定任务上表现出色,例如专家级前端开发人员。
对比:LLM 与智能体
特性 | LLM 应用程序 | 智能体/助手 |
---|---|---|
核心功能 | 信息合成 | 自主规划和决策 |
学习方法 | 通过数据集进行监督/无监督学习 | 从新经验中持续学习 |
决策制定 | 基于数据模式 | 复杂、道德和长期的决策 |
自主性 | 受限于编程 | 高度自主,能够设定目标 |
物理交互 | 无,仅限数字任务 | 与物理世界互动 |
工作者、智能体和规划者
工作者
工作者是专门的类,负责执行管理员分配的任务。它们利用 LLM、搜索引擎和文档编写器等工具来完成任务。我们首先安装框架并导入必要的模块。接下来,我们将设置配置大型语言模型所需的环境变量。
pip install openagi
from openagi.actions.files import WriteFileAction
from openagi.actions.tools.ddg_search import DuckDuckGoNewsSearch
from openagi.actions.tools.webloader import WebBaseContextTool
from openagi.agent import Admin
from openagi.memory import Memory
from openagi.planner.task_decomposer import TaskPlanner
from openagi.worker import Worker
from openagi.llms.hf import HuggingFaceModel
import os
os.environ["HUGGINGFACE_ACCESS_TOKEN"] = "<your-hf-access-token>"
config =HuggingFaceModel.load_from_env_config()
llm =HuggingFaceModel(config=config)
我们定义每个工作者的角色以明确其职责。此外,我们提供说明,描述 LLM 在其角色中应如何表现。这些说明还可以包含背景故事和其他相关详细信息,以帮助生成所需的输出。
# define the role and instructions to each worker in granular
researcher = Worker(
role="Researcher",
instructions="sample instruction.", #replace with your detailed instruction based on use case
actions=[
DuckDuckGoNewsSearch,
WebBaseContextTool,
],
)
writer = Worker(
role="Writer",
instructions="sample instruction.", #replace with your detailed instruction based on use case
actions=[
DuckDuckGoNewsSearch,
WebBaseContextTool,
],
)
reviewer = Worker(
role="Reviewer",
instructions="sample instruction.", #replace with your detailed instruction based on use case
actions=[
DuckDuckGoNewsSearch,
WebBaseContextTool,
WriteFileAction,
],
)
管理员(智能体)
Admin 类是 OpenAGI 中的核心组件,负责规划和执行任务。它利用 LLM、内存和各种操作来自主执行任务。主要组件 TaskWorker 提供了一种结构化的方式来定义和执行任务。TaskWorker 类专门执行规划者分配的特定任务。按照顺序将工作者分配给管理员,然后运行管理员对象。
# define the Admin with Planner, Memory and LLM. Further assign the workers in order
admin = Admin(
planner=TaskPlanner(human_intervene=False),
memory=Memory(),
llm=llm,
)
# Assign sub-tasks to workers
admin.assign_workers([researcher, writer, reviewer])
res = admin.run(
query="Write a blog post.",
description="sample description.", #replace with your detailed description based on use case
)
合著者:Shivaya Pandey
加入社区
渴望探索 OpenAGI 并为项目贡献力量吗?
探索 GitHub 仓库
此外,欢迎提出问题、提交拉取请求以贡献,别忘了给仓库加星,以获取最新开发动态。
OpenAGI 文档
通过与社区协作,我们可以继续改进 OpenAGI,推动 AI 领域的创新。
您可以通过 Discord 联系我们