专家.js项目介绍
项目概述
专家.js (Experts.js) 是一种便捷的工具,可以帮助用户轻松创建和部署OpenAI的助手系统,并将多个助手连接组合成为一个“专家小组”的系统。这种系统具有扩展的记忆能力和对细节的关注能力。专家.js通过提供一个简单易用的界面,使用户能够充分利用OpenAI最新的助助手API和前沿的GPT-4o mini模型来提高AI助手的可用性。
项目背景
OpenAI的新的助手API相对于以往常用的聊天补全API有了显着的提升。用户现在可以在被称为“线程”的受管理的上下文窗口中,将附加的文件和图像作为知识来源来引用助手。这种技术支持长达256,000字符的指令,与128种工具集成,并通过创新的矢量存储(API)优化了对多达10,000个文件的搜索能力。
如何使用专家.js
专家.js的目标是简化这个新API的使用,消除了对“运行”对象的管理需求,并允许助手作为工具集成。这意味着用户可以创建多AI代理系统,每个工具都是一个支持LLM的助手,能够在其父助手或工具的名义下执行专门的角色或复杂任务,实现复杂的工作流程管理和多个任务的衔接编排。
简单示例
以下是一个简单的JavaScript示例,展示如何使用专家.js创建和问询一个助手:
import { Assistant, Thread } from "experts";
const thread = await Thread.create();
const assistant = await Assistant.create();
const output = await assistant.ask("Say hello.", thread.id);
console.log(output) // Hello
安装与设置
专家.js可以通过npm安装,并支持ES6导入语法以及CommonJS的require语句。安装完成后,只需导入三个主要对象:Assistant, Tool, Thread。这些对象分别代表AI代理、可被其他代理使用的工具和为代理提供的受管理上下文窗口。
npm install experts
助手
专家.js的助手是AI代理的主要对象,创建助手时需要一个名称、描述和指令。此外,用户可以通过多种方式自定义助手,例如配置工具选项、使用简单问询界面与助手交互以及增加助手工具等。
class MyAssistant extends Assistant {
constructor() {
super({
name: "My Assistant",
instructions: "...",
model: "gpt-4o-mini",
tools: [{ type: "file_search" }],
temperature: 0.1,
});
}
}
线程
线程是一个受管理的上下文窗口,用于存储消息和文件。在专家.js中,创建新线程非常简单:
const thread = await Thread.create();
console.log(thread.id) // thread_abc123
专家.js自动管理线程以避免线程锁定问题,并为用户提供了一种简单的方式来处理复杂的上下文环境。
工具
工具是专家.js框架的核心特色,可以作为可重用组件的助手子类进行整合。工具可以用于变换人类或LLM的指令,或在复杂的工作流中执行代码,并返回执行结果作为输出。
class EchoTool extends Tool {
constructor() {
super({
name: "Echo Tool",
instructions: "Echo the same text back to the user",
});
}
}
结论
专家.js为开发人员提供了一种简化的方式来实现复杂的多AI代理系统,通过开放的架构和强大的API支持,可以根据不同的业务需求进行灵活的配置和扩展。这些特性使它成为AI开发中的一个强大工具。