embedchainjs
是一个用 JavaScript 编写的框架,专为简化创建基于大型语言模型(LLM)数据集的聊天机器人而设计。该框架的目标是使用户能够在任何数据集上轻松构建功能强大的机器人,利用高级智能技术来处理复杂的任务。embedchainjs
是 embedchain
项目的 JavaScript 版本,而如果需要 Python 版本,可以访问 embedchain-python。
embedchainjs
抽象了加载数据集、分块、创建嵌入并在向量数据库中存储的整个过程。用户可以使用 .add
和 .addLocal
函数添加单个或多个数据集,然后利用 .query
函数在所添加的数据集中查找答案。例如,如果用户想创建一个关于 Naval Ravikant 的机器人,只需提供他的两篇博客文章的链接以及一对问答对,embedchainjs
就能为用户创建一个相应的机器人。
确保已安装相应的软件包,通过以下命令进行安装:
npm install embedchain && npm install -S openai@^3.3.0
当前版本只兼容 OpenAI 的 3.X 版本。如果使用 4.X 版本,将会遇到 ChromaDB
错误。
安装 dotenv
包,并在根目录的 .env
文件中配置 OPENAI_API_KEY
。
按照链接安装 Docker,用于运行 Chroma 向量数据库。
使用以下命令设置 Chroma 容器并在 Docker 中运行:
git clone https://github.com/chroma-core/chroma.git cd chroma docker-compose up -d --build
App
类的 .add
函数添加数据集,并通过 .query
函数获得查询的答案。以下是示例代码:
const dotenv = require("dotenv"); dotenv.config(); const { App } = require("embedchain"); async function testApp() { const navalChatBot = await App(); // 添加在线资源 await navalChatBot.add("web_page", "https://nav.al/feedback"); await navalChatBot.add("web_page", "https://nav.al/agi"); await navalChatBot.add( "pdf_file", "https://navalmanack.s3.amazonaws.com/Eric-Jorgenson_The-Almanack-of-Naval-Ravikant_Final.pdf" ); // 添加本地资源 await navalChatBot.addLocal("qna_pair", [ "Who is Naval Ravikant?", "Naval Ravikant 是一位印度裔美国企业家和投资者。", ]); const result = await navalChatBot.query( "Naval 认为人类在理解解释或概念方面具有哪些独特的能力?" ); console.log(result); // 输出答案:Naval 认为人类在理解解释或概念时,具备在此物理现实中最大程度的理解能力。 } testApp();
embedchainjs
支持以下数据类型:
pdf_file
web_page
qna_pair
如果需要支持其他格式,可以在 GitHub 上创建问题,我们将考虑添加。