今天偶然翻到一个仓库 Embedchain,觉得很实用,分享给大家。仓库地址如下:
https://github.com/embedchain/embedchain
它是基于 OpenAI 的,但是你可以添加自己的数据集,然后生成一个对话机器人,使用方法简单,很容易上手。
Embedchain 简介
Embedchain 是一个可以方便地基于任何数据集创建 LLM(Large Language Models)机器人的框架。它抽象了加载数据集、分块、创建嵌入向量以及存储在向量数据库中的整个过程。你可以使用 .add 和 .add_local 函数添加单个或多个数据集,然后使用 .query 函数从添加的数据集中查找答案。
假如你崇拜一个很厉害的人 - Naval Ravikant,你想把他的知识做成一个对话机器人,你可以把他的 Youtube 视频、PDF 书籍、博客文章,以及你提供的一个问题和答案对,添加到 Embedchain,Embedchain 将为你创建一个机器人。这是一个例子:
Embedchain 使用
要开始使用 Embedchain,首先确保你已经安装了该包。如果还没有安装,可以使用 pip 进行安装:
Embedchain 使用 OpenAI 的嵌入模型创建块的嵌入,使用 ChatGPT API 作为 LLM,给出相关文档的答案。确保你有一个 OpenAI 帐户和 API 密钥。如果你没有 API 密钥,可以通过访问 此链接 [1] 创建一个。
一旦你有了 API 密钥,将其设置在一个名为 OPENAI_API_KEY 的环境变量中
接下来,从 embedchain 中导入 App 类并使用 .add 函数添加任何数据集。
如果在你的脚本或应用中有任何其他的应用实例,你可以更改导入如下
现在你的应用已经创建好了。可以使用 .query 函数获得任何查询的答案。
支持的格式
支持以下格式:
Youtube 视频
要将任何 Youtube 视频添加到你的应用中,使用数据类型(.add 的第一个参数)为 youtube_video。例如:
PDF 文件
要添加任何 PDF 文件,使用数据类型为 pdf_file。例如:
注意,不支持密码保护的 PDF。
网页
要添加任何网页,使用数据类型为 web_page。例如:
文本
要提供你自己的文本,使用数据类型为 text 并输入一个字符串。文本不会被处理,这可以非常多样化。例如:
注意:这在示例中没有使用,因为在大多数情况下,你将提供整个段落或文件。