Embedchain----支持的数据格式

📋 支持的数据格式

1、自动数据类型检测

`add` 方法会根据你提供的 `source` 参数自动尝试检测数据类型。所以,`app.add('https://www.youtube.com/watch?v=dQw4w9WgXcQ')` 就足以嵌入一个YouTube视频。

这个检测适用于所有格式。它基于一些因素,比如是否是URL、本地文件、源数据类型等等。

- **调试自动检测**

将 `log_level=DEBUG`(在 `AppConfig` 中)设置为确保它按预期工作。

否则,你将无法知道,例如,无效的文件路径是否被解释为原始文本。

- **强制数据类型**

为了避免数据类型检测的问题,你可以通过将它作为 `add` 方法的参数来强制指定数据类型。下面的示例展示了强制指定各种数据类型的关键字。

强制也可用于边缘情况,比如将站点地图解释为网页,以读取其原始文本而不是跟随链接。

2、远程数据类型

一些数据类型适用于远程内容,并且仅适用于URL。你可以通过使用 `file` URI 方案来格式化路径,以传递本地文件,例如 `file:///info.pdf`。

- **YouTube 视频**
  
  要添加任何 YouTube 视频到你的应用程序,使用 `data_type`(`.add()` 方法的第一个参数)设置为 `youtube_video`。例如:

app.add('a_valid_youtube_url_here', data_type='youtube_video')

- **PDF 文件**

  要添加任何 PDF 文件,使用 `data_type` 设置为 `pdf_file`。例如:

 app.add('a_valid_url_where_pdf_file_can_be_accessed', data_type='pdf_file')

  请注意,不支持受密码保护的 PDF。

- **网页**

  要添加任何网页,使用 `data_type` 设置为 `web_page`。例如:

app.add('a_valid_web_page_url', data_type='web_page')

- **站点地图**

从 XML 站点地图中添加所有网页。过滤掉非文本文件。使用 `data_type` 设置为 `sitemap`。例如:

  app.add('https://example.com/sitemap.xml', data_type='sitemap')

- **Doc 文件**

要添加任何 doc/docx 文件,使用 `data_type` 设置为 `docx`。docx 允许远程 URL 和传统文件路径。例如:

  app.add('https://example.com/content/intro.docx', data_type="docx")
  app.add('content/intro.docx', data_type="docx")

- **CSV 文件**

要添加任何 csv 文件,使用 `data_type` 设置为 `csv`。csv 允许远程 URL 和传统文件路径。每行都包含标题,所以如果有一个年龄列,年龄将被添加为 `age: 18`。例如:

  app.add('https://example.com/content/sheet.csv', data_type="csv")
  app.add('content/sheet.csv', data_type="csv")

- **代码文档网站加载器**

  要将任何代码文档网站添加为加载器,请使用 `data_type` 设置为 `docs_site`。例如:

  app.add("https://docs.embedchain.ai/", data_type="docs_site")

- **Notion**

若要使用 Notion,你必须使用 `pip install --upgrade embedchain[notion]` 安装额外的依赖项。

要加载 Notion 页面,请使用 `data_type` 设置为 `notion`。由于自动检测很难进行,建议强制指定。下一个参数必须以 Notion 页面 ID 结尾。ID 是一个32位字符串。例如:

 app.add("cfbc134ca6464fc980d0391613959196", "notion")
 app.add("my-page-cfbc134ca6464fc980d0391613959196", "notion")
 app.add("https://www.notion.so/my-page-cfbc134ca6464fc980d0391613959196", "notion")

- **Mdx 文件**

 要将任何 mdx 文件添加到你的应用程序,使用 `data_type`(`.add()` 方法的第一个参数)设置为 `mdx`。请注意,这支持本地机器上的 mdx 文件,因此这应该是一个文件路径。例如:

  app.add('path/to/file.mdx', data_type='mdx')

3、本地数据类型

- **文本**

要提供你自己的文本,请使用 `data_type` 设置为 `text` 并输入一个字符串。文本不会被处理,这非常灵活。例如:

app.add('Seek wealth, not money or status. Wealth is having assets that earn while you sleep. Money is how we transfer time and wealth. Status is your place in the social hierarchy.', data_type='text')

 注意:在大多数情况下,这不在示例中使用,因为在大多数情况下,你将提供一个整段或文件,这不适用。

- **QnA 对**

  要提供你自己的 QnA 对,请使用 `data_type` 设置为 `qna_pair` 并输入一个元组。例如:

app.add(("Question", "Answer"), data_type="qna_pair")

4、重用向量数据库

默认情况下,会在目录 `./db` 中创建一个持久的向量数据库。你可以将应用程序拆分为两个 Python 脚本:

一个用于创建本地向量数据库,

另一个用于重用此本地持久向量数据库。

这在你想要索引数百个文档并单独实现聊天界面时非常有用。

创建本地索引:

from embedchain import App

naval_chat_bot = App()
naval_chat_bot.add("https://www.youtube.com/watch?v=3qHkcs3kG44")
naval_chat_bot.add("https://navalmanack.s3.amazonaws.com/Eric-Jorgenson_The-Almanack-of-Naval-Ravikant_Final.pdf")

你可以重用本地索引,但不添加新文档的相同代码:

from embedchain import App

naval_chat_bot = App()
print(naval_chat_bot.query("What unique capacity does Naval argue humans possess when it comes to understanding explanations or concepts?"))

上一篇文章:Embedchain----Add Data_一点知趣的博客-CSDN博客

下一篇文章:Embedchain_一点知趣的博客-CSDN博客

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一点知趣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值