使用 OpenAGI 和 HuggingFace 模型构建智能体工作流

社区文章 发布于 2024 年 6 月 26 日

概述

在 AI Planet,我们创建了 OpenAGI,旨在普及类人智能体的访问,并通过 AI 解决现实生活中的问题。OpenAGI 提供了一个灵活的框架,供开发人员构建能够独立规划、推理和行动的自主智能体,提供超越传统 LLM 应用程序的功能。

主要特性

  1. 灵活的智能体架构:支持顺序、并行和动态通信模式。
  2. 简化集成:简化设置过程,克服智能体开发中的常见障碍。
  3. 自动化与手动配置:提供自动化和手动配置选项,实现详细定制。

应用场景

  • 教育:个性化学习体验和管理任务自动化。
  • 金融:欺诈检测、风险评估、个性化建议和交易自动化。
  • 医疗保健:患者监测、健康建议、数据管理和疾病诊断。

未来展望

我们正在加强智能体,通过经验和反馈来改进它们,目标是随着时间的推移,让专业智能体在特定任务上表现出色,例如专家级前端开发人员。

对比: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 仓库

GitHub

此外,欢迎提出问题、提交拉取请求以贡献,别忘了给仓库加星,以获取最新开发动态。

OpenAGI 文档

OpenAGI

通过与社区协作,我们可以继续改进 OpenAGI,推动 AI 领域的创新。

您可以通过 Discord 联系我们

加入 AI Planet Discord 服务器!

社区

注册登录 以发表评论