从技术角度来说,**智能体(AI Agent)**是一种软件实体,旨在代表用户或其他程序自主或半自主地执行任务。这些代理利用人工智能做出决策、采取行动并与环境或其他系统进行交互。智能体的主要特征有:
自治:智能体无需人工干预即可运行。一旦被赋予目标,它们就可以独立执行任务。
决策:智能体使用算法、规则和人工智能模型, 根据自己的感知和目标做出决策。这包括评估不同的选择并选择最佳行动方案。
学习:许多智能体采用机器学习技术来提高其性能。它们可以从过去的经验中学习并适应新情况。
交互:智能体可以与用户、其他智能体或系统进行通信和协作。这种交互可能涉及自然语言处理、发送和接收数据或执行协调任务。
专业化:智能体可以专门用于特定任务或领域。例如,某些智能体可能专为网页浏览而设计,而其他智能体则可能处理数据库交互、执行复杂计算或生成图像。
目标导向:智能体通常被设定有特定的目标或目的。它们通过一系列动作和决策来实现这些目标。
想象一下,将上述所有概念整合在一起,共同朝着预先确定的目标努力,实现预期结果。这些任务可以按顺序或分层流程执行,所有智能体都像一个协调的团队一样工作。这种强大的协作可以彻底改变我们处理复杂问题的方式,使流程更高效,结果更有效。这就是 CrewAI框架发挥作用的地方。
Ollama是一款开源应用程序,可让您使用 MacOS、Linux 和 Windows 上的命令行界面在本地运行、创建和共享大型语言模型。
Ollama 可以直接从其库中访问各种 LLM,只需一个命令即可下载。下载后,只需执行一个命令即可开始使用。这对于工作量围绕终端窗口的用户非常有帮助。如果他们被困在某个地方,他们可以在不切换到另一个浏览器窗口的情况下获得答案。
2.1 特点和优点
这就是为什么 OLLAMA 是您的工具包中必备的工具:
简单 :OLLAMA 提供简单的设置过程。您无需拥有机器学习博士学位即可启动和运行它。
成本效益 :在本地运行模型意味着您无需支付云成本。您的钱包会感谢您。
隐私 :使用 OLLAMA,所有数据处理都在您的本地机器上进行。这对于用户隐私来说是一个巨大的胜利。
多功能性 :OLLAMA 不只是为 Python 爱好者准备的。它的灵活性使其可以用于各种应用程序,包括 Web 开发。
2.2 安装ollama
2.3 下载LLM模型
默认情况下,Openai Models 在 CrewAI 中用作 llm。有经费、有网络、不担心数据泄露等条件下, 力求达到最佳性能,可考虑使用 GPT-4 或 OpenAI 稍便宜的 GPT-3.5。
等待 llama3.1:8b 下载完成。
2.3 启动ollama服务
ollama服务有两种启动方式,即鼠标启动ollama服务 和 命令行启动ollama服务 。
2.3.1 鼠标启动ollama服务
在电脑中找到ollama软件,双击打开,就开启了ollama本地服务。
2.3.2 命令行启动ollama服务
在Python中调用本地ollama服务,需要先启动本地ollama服务, 打开电脑命令行cmd(mac是terminal), 执行
Run
cmd(mac是terminal)看到如上的信息,说明本地ollama服务已开启。
CrewAi 是一个用于协调角色扮演、自主 AI 代理的尖端框架。通过促进协作智能,CrewAI 使代理能够无缝协作,解决复杂的任务。
3.1 安装crew
打开电脑命令行cmd(mac是terminal), 网络是连网状态,执行安装命令
- 调用llm
- 设置agent
- 设置task
- 组装成crew
- 最终运行
4.1 调用LLM
在Python中调用开启的ollama服务, 为crewai调用llm做准备。
4.2 设置Agent
大邓运营的公众号的日常,一个人身兼数个职位。 大致拆分成三个员工(智能体)
- 内容策划专员
- 内容创作专员
- 内容编辑专员
参数解读
- role: 定义代理在团队中的职能。它决定了代理最适合执行的任务类型。
- goal : 代理希望实现的个体目标。它指导代理的决策过程。
- backstory:为代理的角色和目标提供背景,丰富互动和协作动力。
- llm:(可选)表示将运行代理的语言模型。它从OPENAI_MODEL_NAME环境变量中动态获取模型名称,如果未指定,则默认为
“gpt-4”。 - tools:(可选)代理可用于执行任务的功能或函数集。应为与代理的执行环境兼容的自定义类的实例。工具使用空列表的默认值进行初始化。
- function_calling_llm:(可选)指定处理此代理的工具调用的语言模型,如果已传递,则覆盖工作人员函数调用 LLM。默认值为
None。 - maxter:(可选)代理在被迫给出最佳答案之前可以执行的最大迭代次数。默认值为25。
- max_rpm:(可选)代理每分钟可以执行的最大请求数,以避免速率限制。它是可选的,可以不指定,默认值为None。
- max_execution_time:(可选)代理执行任务的最大执行时间。它是可选的,可以不指定,默认值为 None,表示没有最大执行时间
- verbose:(可选)将其设置为 True配置内部记录器以提供详细的执行日志,帮助调试和监控。默认值为False。
- allow_delegation: (可选)代理可以相互委派任务或问题,确保每项任务都由最合适的代理处理。默认值为True。
- step_callback:
(可选)代理每执行一步后调用的函数。可用于记录代理的操作或执行其他操作。它将覆盖工作人员step_callback。默认值None。 - cache: (可选)指示代理是否应使用缓存来使用工具。默认值为True
4.3 设置Task
大邓三个智能体角色(内容策划专员、内容创作专员、内容策划专员), 都各自有对应的 任务(plan、write、edit)。 这里需要设置每种任务,的工作任务(内容)、预期产出。
参数解读
- description: 对任务内容的清晰、简洁的陈述。
- agent :负责该任务的代理人,可直接指派或由机组人员流程指派。
- expected_output : 任务完成情况的详细描述。
- tools:(可选)代理可以利用执行任务的功能或能力。默认值None。
- async_execution:(可选)如果设置,任务将异步执行,允许进展而无需等待完成。默认值False。
- context: (可选)指定其输出用作此任务的上下文的任务。默认值None。
- config:(可选)执行任务的代理的附加配置详细信息,允许进一步定制。默认值None。
- output_json:(可选)输出 JSON 对象,需要 OpenAI 客户端。只能设置一种输出格式。默认值None。
- output_pydantic:(可选)输出 Pydantic 模型对象,需要 OpenAI
客户端。只能设置一种输出格式。默认值None。 - output_file:(可选)将任务输出保存到文件。如果与Output JSON或一起使用Output
Pydantic,则指定如何保存输出。默认值None。 - callback:(可选)在完成任务后,使用任务的输出执行的 Python 可调用函数。默认值None。
- human_input:(可选)表示任务是否在最后需要人工反馈,对于需要人工监督的任务很有用。默认值False。
4.4 组装&运行
将大邓三个角色(planner, writer, editor) 及对应的任务(plan, write, edit)组装成一个整体crew, 并试着让程序以 「topic: Python做文本分析」 为题进行创作。
Run
请看原文链接
将智能体生成的内容渲染, 一起欣赏AI生成的内容。
arXiv2024 | 使用大语言模型自动进行定性研究中的扎根理论开发
实验 | 使用本地大模型从文本中提取结构化信息
实验 | 使用本地大模型DIY制作单词书教案PDF
实验 | 使用本地大模型从论文PDF中提取结构化信息
LIST | 可供社科(经管)领域使用的数据集汇总
LIST | 社科(经管)数据挖掘文献资料汇总
推荐 | 文本分析库cntext2.x使用手册
付费视频课 | Python实证指标构建与文本分析