OpenAI swarm+ Ollama快速构建本地多智能体服务 - 1. 服务构建教程

embedded/2024/10/22 16:59:48/

OpenAI开源了多智能体编排的工程swarm,今天介绍一下swarm与OLLAMA如何结合使用的教程,在本地构建自己的多智能体服务,并给大家实践演示几个案例。

安装步骤

  • 安装ollama,在官网下载对应操作系统的版本即可,下载后用ollama部署大模型,网上教程很多,本文不再描述。
  • 安装ollama的python接口:
pip install ollama
pip install git+https://github.com/openai/swarm.git

注意,这一步的前提是已经安装了git,如果本地没有安装请先行下载安装

服务构建示例

swarm官网给出的使用示例如下:

from swarm import Swarm, Agentclient = Swarm()def transfer_to_agent_b():return agent_bagent_a = Agent(name="Agent A",instructions="You are a helpful agent.",functions=[transfer_to_agent_b],
)agent_b = Agent(name="Agent B",instructions="Only speak in Haikus.",
)response = client.run(agent=agent_a,messages=[{"role": "user", "content": "I want to talk to agent B."}],
)print(response.messages[-1]["content"])

在这个示例的基础上,与ollama以及在ollama中安装的大模型结合的方法如下:


from swarm import Swarm, Agent# 利用OpenAI的接口(安装swarm时会自动下载),建立与ollama服务连接的客户端
from openai import OpenAI
ollama_client = OpenAI(base_url = 'http://localhost:11434/v1',api_key='ollama', # required, but unused
)# 在swarm构建时,指定与ollama连接的客户端
client = Swarm(client=ollama_client)def transfer_to_agent_b():return agent_bagent_a = Agent(name="Agent A",model="qwen2.5:7b",   # 在构建智能体时指定ollama中的模型,传入在ollama中构建好的大模型名称即可,例如qwen2.5:7binstructions="You are a helpful agent.",functions=[transfer_to_agent_b],
)agent_b = Agent(name="Agent B",model="qwen2.5:7b",   # 在构建智能体时指定ollama中的模型,传入在ollama中构建好的大模型名称即可,例如qwen2.5:7binstructions="Only speak in Haikus.",
)response = client.run(agent=agent_a,messages=[{"role": "user", "content": "I want to talk to agent B."}],
)print(response.messages[-1]["content"])

总结一下,若想将swarmollama结合,比官方示例多了三步,非常简单:

  1. 利用OpenAI的接口(安装swarm时会自动下载),建立与ollama服务连接的客户端
  2. swarm构建时,指定与ollama连接的客户端
  3. 在构建智能体时指定ollama中的模型

大家可以利用上述三个步骤自行尝试改造swarm开源代码中提供的示例进行尝试,后面有时间也会讲讲swarm框架的具体用法供大家参考。


http://www.ppmy.cn/embedded/129608.html

相关文章

Ubuntu 22.04上安装Miniconda

在Ubuntu 22.04上安装Miniconda,可以按照以下步骤进行: 步骤1:更新系统 首先,更新您的系统软件包: sudo apt update sudo apt upgrade -y步骤2:下载Miniconda安装脚本 访问Miniconda的官方网站或使用以下…

Adobe Acrobat DC 打印PDF文件,没有打印出注释的解决方法

adobe acrobat在打印的时候,打印不出来注释内容(之前一直可以,突然就不行),升级版本、嵌入字体等等都试过,也在Google找了半天和问了GPT也么找着办法。 无奈之下,自己通过印前检查,…

WebForms Hashtable

WebForms Hashtable 在Web开发领域,尤其是使用ASP.NET WebForms进行开发时,Hashtable 是一个经常被使用的集合类型。Hashtable 是一个存储键值对的集合,它允许开发者以任意对象作为键或值。这种数据结构在处理动态数据、缓存、以及需要快速查…

北斗短报文平板终端|军用三防平板|国产加固平板|防爆工业平板

在当今数字化浪潮的推动下,各行各业对智能终端设备的需求日益多样化与专业化,特别是在工业领域,一款集通信、定位、导航及耐用性于一身的设备显得尤为重要。北斗三代短报文工业平板电脑正是应此需求而生,它不仅是一款普通的平板电…

[云] Deploying Your First Serverless Application

• Goal: • Hands-on lab to get started with Serverless • Agenda: • Deploying Your First Serverless Application • Assignment Introduction Create and test function in AWS Lambda • Lets create an addition function using AWS Lambda. • To create the addi…

群晖通过 Docker 安装 MySQL

1. 打开 Docker 应用,并在注册表搜索 MySQL 2. 下载 MySQL 镜像,并选择版本 3. 在 Docker 文件夹中创建 MySQL,并创建子文件夹 4. 设置权限 5. 选择 MySQL 映像运行,创建容器 6. 配置 MySQL 容器 6.1 使用高权限执行容器 6.2 启…

【02】Windows特殊权限-Trustedinstaller

知识点: “TrustedInstaller” 是 Windows 操作系统中的一个特殊账户,用于管理和保护重要的系统文件。它是 Windows 模块安装程序 (Windows Modules Installer) 的一部分,负责安装、修改和删除 Windows 更新和可选组件。默认情况下&#xff…

CTFHUB技能树之文件上传——无验证

开启靶场&#xff0c;打开链接&#xff1a; 直接上传一句话木马&#xff1a; <?php eval($_POST[pass]);?> 成功提交并显示了上传的文件的路径 访问一下该文件触发一句话木马&#xff1a; 看到一片空白是正常的&#xff0c;因为没有写什么函数&#xff0c;比如&#x…