项目介绍:OpenAI Assistant Swarm Manager
什么是Swarm Manager?
OpenAI Assistant Swarm Manager是一个Node.js库,旨在通过集成OpenAI的API,使开发者能够高效地管理多个AI助手(也称为“代理”)。通过一个API调用,这个库可以解锁并管理整个自定义代理的注册表和其功能。一个名为“管理器”的代理可以轻松地将工作智能地分派给一个或多个助手,从而快速简便地处理委派任务所产生的所有行动。
项目的运行机制
Swarm Manager作为OpenAI NodeJS SDK的一个扩展,提供了一种新的.swarm
方法,使其可用于beta.assistants
。首先,您需要安装OpenAI的SDK:
yarn add openai
# 或者
npm install openai
接着,安装openai-assistant-swarm
包:
yarn add @mintplex-labs/openai-assistant-swarm
# 或者
npm install @mintplex-labs/openai-assistant-swarm
一旦安装完成,您可以像平常一样使用SDK,并运行这个扩展功能来初始化代理群管理器。
const OpenAIClient = new OpenAI({
apiKey: process.env.OPEN_AI_KEY
});
EnableSwarmAbilities(OpenAIClient, {
debug: false,
managerAssistantOptions: {
name: "[AUTOMATED] ___Swarm Manager",
model: "gpt-4",
instructions: 'Instructions you are going to give the agent manager to delegate tasks to'
}
});
await OpenAIClient.beta.assistants.swarm.init();
简单示例
以下是如何在三个可用的助手之间分配单个输入的完整示例:
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('What is the weather in New York city right now? Also what is the top stock for today?');
在这个示例中,针对特定的任务,多个助手如天气助手和股票助手可以并行地运行,而不必要的助手(比如海盗助手)则不会被调用。
可用工具
通过提示进行委派
您可以轻松设置并监听事件,将任务委派给子助手,同时与当前的工作流程相结合。
OpenAIClient.beta.assistants.swarm.emitter.on('parent_assistant_complete', (args) => {
console.group('Parent assistant response completed');
console.log(args.parentRun.playground);
console.log(args.parentRun.textResponse);
console.log('\n\n')
console.groupEnd();
});
OpenAIClient.beta.assistants.swarm.emitter.on('child_assistants_complete', (args) => {
console.group('Child assistant response completed');
console.log(args.subRuns.map((run) => run.textResponse));
console.log(args.subRuns.map((run) => run.playground));
console.log('\n\n')
console.groupEnd();
});
const response = OpenAIClient.beta.assistants.swarm.delegateWithPrompt('Let me speak to the head pirate of this vessel! What say ye??');
获取所有可用的助手
通过一个简单的调用,即可为您处理助手分页问题:
const allAssistants = await OpenAIClient.beta.assistants.swarm.allAssistants();
console.log(`Found ${allAssistants.length} assistants for this OpenAI Account`);
同时获取多个已知助手
通过ID列表批量获取多个助手。
const assistantIds = ['asst_customer_success', 'asst_lead_pirate_manager', 'asst_that_was_deleted' ];
const specificAssistants = await OpenAIClient.beta.assistants.swarm.getAssistants(assistantIds);
console.log(`Found ${specificAssistants.length} assistants from ${assistantIds.length} ids given.`);
总结
OpenAI Assistant Swarm Manager大大简化了多助手管理的复杂性,提供了一个高效的开发工具,使得在分派任务和收集结果时的过程更加快捷。通过其健全的API和事件监听机制,这个强大的库能够帮助开发者轻松地管理和扩展他们的AI助手能力。