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

ops/2024/10/24 14:46:55/

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/ops/128093.html

相关文章

【建议收藏】2024年最新Windows系统重装教程:轻松学会,小白必看,赶紧收藏!

一、什么情况下需要重装系统 系统功能严重异常无法修复,会出现蓝屏、黑屏、死机、卡顿,或者直接没办法正常开机。安装了应用软件后机器报错,无论怎么卸载重装软件都无法正常运行。系统内杂乱软件太多,硬盘爆满,无论怎…

基于SpringBoot+Vue+uniapp微信小程序的垃圾分类系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

软考中级嵌入式系统设计师笔记分享(二)

1.TTL 电路是电流控制器件,而CMOS 电路是电压控制器件。 2.TTL 电路的速度快,传输延迟时间短(5-10ns),但是功耗大。 常见的串行总线有 SPI、II2C、USB、RS232/RS422/RS485、CAN等;高速串行总线主要有 SATA、PCIE、IEEE 1394、Rapidl0、USB 3…

Go入门指南-3.2编辑器和集成开发环境

这些编辑器包含了代码高亮和其它与 Go 有关的一些使用工具:Emacs、Vim、Xcode 6、KD Kate、TextWrangler、BBEdit、McEdit、TextMate、TextPad、JEdit、SciTE、Nano、Notepad、Geany、SlickEdit、IntelliJ IDEA 和 Sublime Text 2。 你可以将 Linux 的文本编辑器 G…

Unity3D 游戏性能优化全流程建设详解

前言 在游戏开发中,性能优化是确保游戏流畅运行、提升用户体验的关键环节。Unity3D作为一款广泛使用的游戏开发引擎,提供了一系列工具和功能来帮助开发者进行性能分析和优化。本文将深入探讨Unity3D游戏性能优化的全流程建设,包括技术详解和代…

Vue引入高德地图自定义信息窗体绑定点击事件无效解决方案

你们好,我是金金金。 场景 笔者用的Vue3,引入了高德地图,version为2.0,场景如下: 在地图上根据经纬度度打点标记了一个位置,然后点击点标记弹出自定义信息窗体,右上角关闭按钮则是绑定了关闭自定…

深度学习在ISP中的的研究与进展

1 图像信号处理器ISP的介绍 图像信号处理器(ISP)是数码相机中的关键组件,负责将原始图像数据转换为高质量的数字图像。传统的ISP流程依赖于硬件实现,包括去马赛克、去噪和白平衡等多个步骤,但这些步骤往往会导致信息损…

Linux 日常骚操作 Top10

TOP-1:最常用命令之行光标移动快捷键 应用场景:当输入的命令很长时,需要对其中的某些部分进行更改。操作方法: Ctrl a:将光标定位到命令最左侧 Ctrl e:将光标定位到命令最右侧 Ctrl w:删除…