Project Icon

openai-assistant-swarm

实现对自定义 OpenAI 助手的智能分配与管理

Swarm Manager 是一个 NodeJS 库,通过一个 API 实现对自定义 OpenAI 助手的智能分配与管理。它使开发者能轻松构建和管理大量自动化助手,简化任务分配流程,并支持调试与配置,提升开发效率。

<SOURCE_TEXT>
<p align="center">
  <img src="https://yellow-cdn.veclightyear.com/2b54e442/20dc62f0-af42-482a-aa3d-4ddee0ea7aa9.png" alt="OpenAI Assistant Swarm Manager banner">
</p>

<p align="center">
    <b>OpenAI 助理群管理器:一个将您的 OpenAI 助理变成军队的库</b>。
</p>

<p align="center">
  <a href="https://discord.gg/6UyHPeGZAC" target="_blank">
      <img src="https://yellow-cdn.veclightyear.com/2b54e442/157a376e-ee45-4694-ae58-6359da5739f5.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAH1UExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////r6+ubn5+7u7/3+/v39/enq6urq6/v7+97f39rb26eoqT1BQ0pOT4+Rkuzs7cnKykZKS0NHSHl8fdzd3ejo6UxPUUBDRdzc3RwgIh8jJSAkJm5xcvHx8aanqB4iJFBTVezt7V5hYlJVVuLj43p9fiImKCMnKZKUlaaoqSElJ21wcfT09O3u7uvr6zE0Nr6/wCUpK5qcnf7+/nh7fEdKTHx+f0tPUOTl5aipqiouMGtubz5CRDQ4OsTGxufn515hY7a3uH1/gXBydIOFhlVYWvX29qaoqCQoKs7Pz/Pz87/AwUtOUNfY2dHR0mhrbOvr7E5RUy8zNXR2d/f39+Xl5UZJSx0hIzQ3Odra2/z8/GlsbaGjpERHSezs7L/BwScrLTQ4Odna2zM3Obm7u3x/gKSmp9jZ2T1AQu/v71pdXkVISr2+vygsLiInKTg7PaOlpisvMcXGxzk8PldaXPLy8u7u7rm6u7S1tsDBwvj4+MPExbe4ueXm5s/Q0Kyf7ewAAAAodFJOUwAABClsrNjx/QM2l9/7lhmI6jTB/kA1GgKJN+nea6vy/MLZQYeVKK3rVA5tAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+cKBAAmMZBHjXIAAAISSURBVDjLY2CAAkYmZhZWNnYODnY2VhZmJkYGVMDIycXNw6sBBbw8fFycyEoYGfkFBDVQgKAAPyMjQl5IWEQDDYgIC8FUMDKKsmlgAWyiEBWMjGJY5YEqxMAqGMWFNXAAYXGgAkYJSQ2cQFKCkYFRShq3AmkpRgYJbghbU0tbB0Tr6ukbgGhDI10gySfBwCwDUWBsYmpmDqQtLK2sbTQ0bO3sHYA8GWYGWWj4WTs6Obu4ami4OTm7exhqeHp5+4DCVJZBDmqdr7ufn3+ArkZgkJ+fU3CIRmgYWFiOARYGvo5OQUHhEUAFTkF+kVHRsLBgkIeyYmLjwoOc4hMSk5JTnINS06DC8gwcEEZ6RqZGlpOfc3ZObl5+gZ+TR2ERWFyBQQFMF5eklmqUpQb5+ReU61ZUOvkFVVXXQBSAraitq29o1GiKcfLzc29u0mjxBzq0tQ0kww5xZHtHUGeXhkZhdxBYgZ4d0LI6c4gjwd7siQQraOp1AivQ6CuAKZCDBBRQQQNQgUb/BGf3cqCCiZOcnCe3QQIKHNRTpk6bDgpZjRkzg3pBQTBrdtCcuZCgluAD0vPmL1gIdvSixUuWgqNs2YJ+DUhkEYxuggkGmOQUcckrioPTJCOXEnZ5JS5YslbGnuyVERlDDFvGEUPOWvwqaH6RVkHKeuDMK6SKnHlVhTgx8jeTmqy6Eij7K6nLqiGyPwChsa1MUrnq1wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMy0xMC0wNFQwMDozODo0OSswMDowMB9V0a8AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjMtMTAtMDRUMDA6Mzg6NDkrMDA6MDBuCGkTAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDIzLTEwLTA0VDAwOjM4OjQ5KzAwOjAwOR1IzAAAAABJRU5ErkJggg==" alt="Discord">
  </a> |
  <a href="https://github.com/Mintplex-Labs/openai-assistant-swarm/blob/master/LICENSE" target="_blank">
      <img src="https://img.shields.io/static/v1?label=license&message=MIT&color=white" alt="License">
  </a> |
   <a href="https://mintplexlabs.com" target="_blank">
    Mintplex Labs Inc
  </a>|
   <a href="https://www.npmjs.com/package/@mintplex-labs/openai-assistant-swarm" target="_blank">
    NPM
  </a>
</p>

## 什么是群管理器
OpenAI 的助理 API 为构建自主 AI 助理(常称为“代理”)的开发人员解锁了令人难以置信的便利性。这个 Node JS 库通过单个 API 调用解锁了您整个定制代理和其功能的注册表。一个代理“管理器”现在可以轻松地以智能和快速的方式将工作委派给一个或多个其它助理,从而让您可以轻松处理委派任务的操作。

管理哪个助理做什么的所有心力负担现在都得到了妥善处理和包装。

## 它是如何工作的?
群管理器作为 OpenAI NodeJS SDK 的扩展 — 在 `beta.assistants` 上提供了一个新的 `.swarm` 方法。

首先,安装 OpenAI 的 NodeJS SDK
```shell
yarn add openai
# 或者
npm install openai

接下来安装 openai-assistant-swarm

yarn add @mintplex-labs/openai-assistant-swarm
# 或者
npm install @mintplex-labs/openai-assistant-swarm

现在像往常一样使用 SDK,运行扩展函数并初始化代理群管理器。

// 像往常一样启用 OpenAI 客户端
const OpenAIClient = (
    new OpenAI({
        apiKey: process.env.OPEN_AI_KEY
    }));
</SOURCE_TEXT>
// 简单地在客户端上调用此函数,以扩展 OpenAI SDK 使其现在具有
// OpenAIClient.beta.assistants.swarm 功能可用。
EnableSwarmAbilities(OpenAIClient, {
  // 所有选项都是可选的
  debug: false, // 查看过程和调试用的控制台日志输出和操场链接。
  managerAssistantOptions: {
         name: "[AUTOMATED] ___Swarm Manager", // 由库创建/维护的代理名称
        model: "gpt-4", // 使用 gpt-4 进行更好的推理和调用。
        instructions: '指示您将给予代理管理器以委派任务'; // 覆盖默认指令。
    };
});

// 初始化 Swarm Manager 以创建 Swarm Manager 并将其注册到
// 您的帐户中。可以通过 `EnableSwarmAbilities` 上的选项配置 Swarm Manager
await OpenAIClient.beta.assistants.swarm.init();
// 现在所有 swarm 管理功能都对您可用!

## 简单示例

在 3 个可用助理之间委派单个输入的完整示例...
```javascript
import OpenAI from 'openai';
import { EnableSwarmAbilities } from '@mintplex-labs/openai-assistant-swarm';
const OpenAIClient = new OpenAI({apiKey: process.env.OPEN_AI_KEY});
EnableSwarmAbilities(OpenAIClient);
await OpenAIClient.beta.assistants.swarm.init();

// 可选 - 在此设置监听器以等待特定事件返回到用户,因为流尚不可用。

// 在单个文本提示上运行主进程,以将工作委派给所有可用的助理。
const response = OpenAIClient.beta.assistants.swarm.delegateWithPrompt('现在纽约的天气如何?今天的顶级股票是什么?');
// 例如。在您的 OpenAI 助理注册表中有一个 Pirate 机器人、Weather 机器人和 Stock 机器人。
// 并行运行以下线程并返回给您!
// |--> 将委托给现有的 Weather 机器人
// |--> 将委托给现有的 Stock watcher 机器人
// -> Pirate 机器人不会被调用。
// -----
// 父母(Parent)将回应类似的内容:“我已经安排了我们的两个助理来处理您的请求。对于股票助手任务,我已将任务委派给 Stocks 机器人,对于旧金山的天气更新,我们的 Weather 机器人将提供当前的条件。他们将很快满足您的需求。”
//
// 一旦每个子助理以完成或需要您的代码库中可轻松处理的 `required_action` 回复,您将收到回复。

console.log({
  parentRun: response.parentRun, // 所有关于父线程的信息
  subRuns: response.subRuns, // 创建的运行数组及其状态,每个拆分出的子线程!
})

可用工具

通过提示委派

首先,您可能感兴趣的主要工具 - 委派给子助理。它易于设置 也可以监听事件并添加到当前工作流中。

// 设置事件监听器,以便父响应完成时不必等待父+子响应全部完成。
// 可用于在处理子任务工具调用时提前返回父响应,
// 根据所发生的情况,这些工具调用有可能需要运行,也有可能不需要。
OpenAIClient.beta.assistants.swarm.emitter.on('parent_assistant_complete', (args) => {
    console.group('父助理响应完成');
    console.log(args.parentRun.playground) // => https://platform.openai.com/playground.... 在浏览器中调试线程和运行。
    console.log(args.parentRun.textResponse) // => 啊哈!你想和船长说话吗?我去叫他,你这个陆地上的人。
    // args.parentRun => 来自 OpenAI 的完整运行对象,因此您可以获取线程 ID 和其他属性,如状态。
    console.log('\n\n')
    console.groupEnd();
});

// 设置事件监听器,以便委派的助理响应完成时不必等待父+子响应全部完成。
// 从这里您可以处理所有子运行工具调用,如果它们需要运行。
OpenAIClient.beta.assistants.swarm.emitter.on('child_assistants_complete', (args) => {
    console.group('子助理响应完成');
    console.log(args.subRuns.map((run) => run.textResponse)) // => 啊哈!我是这艘船的船长。你在找我的宝藏吗,啊?
    console.log(args.subRuns.map((run) => run.playground)) // => https://platform.openai.com/playground.... 在浏览器中调试线程和运行。
    // args.subRuns[x].run => 来自 OpenAI 的完整运行对象,因此您可以获取线程 ID 和其他属性,如状态。
    console.log('\n\n')
    console.groupEnd();
});

// 设置事件监听器以查看每个步骤事件的完成情况:
OpenAIClient.beta.assistants.swarm.emitter.on('poll_event', ({ data }) => {
    console.group('轮询事件!');
    console.log({
        status: data.status,
        text: data.prompt || data.textResponse,
        runId: data?.run?.id,
        link: data.playground,
        runStatus: data?.run?.status,
    })
    console.log('\n\n')
    console.groupEnd();
});

// 在单个文本提示上运行主进程,以将工作委派给所有可用的助理。
const response = OpenAIClient.beta.assistants.swarm.delegateWithPrompt('让我和这艘船的头号海盗说话!你说什么?');
// 您也可以只是等待整个流程完成,而不是设置监听器,这样可以使代码更加同步
console.log({
  parentRun: response.parentRun,
  subRuns: response.subRuns,
})

// 您也可以将给定任务或提示集中在您知道要处理委派工作的特定助理子集中。
// OpenAIClient.beta.assistants.swarm.delegateWithPrompt('让我和这艘船的头号海盗说话!你说什么?', ['asst_lead_pirate']);

获取所有可用助理

现在,您需要分页助理以查看谁可以回答问题或处理任务。现在,您只需进行一次调用,我们就为您处理分页

const allAssistants = await OpenAIClient.beta.assistants.swarm.allAssistants();
console.log(`在此 OpenAI 帐户中发现了 ${allAssistants.length} 助理`);
// 将是一个可以过滤或管理的助理对象数组。 Swarm Manager 不会出现在这里。

一次获取多个已知助理

您一次只能通过 API 获取一个助理。现在,您可以一次同时获取多个

const assistantIds = ['asst_customer_success', 'asst_lead_pirate_manager', 'asst_that_was_deleted' ]
const specificAssistants = await OpenAIClient.beta.assistants.swarm.getAssistants(assistantIds);
console.log(`在给定的 ${assistantIds.length} 个 ID 中发现了 ${specificAssistants.length} 助理。`);
// 将是一个可以过滤或管理的助理对象数组。 Swarm Manager 不会出现在这里。
// 无效助理将不会出现在最终结果中。
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号