[AI Embedchain] 组件 数据源 数据类型处理

自动数据类型检测

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

这种检测对所有格式都已实现。它是基于诸如是否为URL、本地文件、源数据类型等因素。

调试自动检测

在配置yaml文件中设置 log_level: DEBUG 来调试数据类型检测是否正确。否则,当你遇到问题时,比如无效的文件路径被解释为原始文本,你将无法知道。

强制指定数据类型

为了避免数据类型检测带来的任何问题,你可以通过在 add 方法中添加它来 强制 指定一个数据类型。 下面的示例展示了如何强制指定相应的 data_type

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

远程数据类型

在远程数据类型中使用本地文件

有些数据类型是为远程内容设计的,仅与URL配合工作。 你可以通过使用 file: URI方案,例如 file:///info.pdf,来传递本地文件。

重用向量数据库

默认行为是在目录 ./db 中创建一个持久化的向量数据库。你可以将应用程序拆分为两个Python脚本:一个用于创建本地向量数据库,另一个用于重用这个本地持久化的向量数据库。当你想要索引数百个文档,并且单独实现聊天界面时,这是很有用的。

创建本地索引:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from embedchain import App

config = {
    "app": {
        "config": {
            "id": "app-1"
        }
    }
}
naval_chat_bot = App.from_config(config=config)
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")

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from embedchain import App

config = {
    "app": {
        "config": {
            "id": "app-1"
        }
    }
}
naval_chat_bot = App.from_config(config=config)
print(naval_chat_bot.query("Naval认为人类在理解解释或概念方面拥有哪些独特的能力?"))

重置应用和向量数据库

你可以通过简单地调用 reset 方法来重置应用。这将删除向量数据库和所有其他与应用相关的文件。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from embedchain import App

config = {
    "app": {
        "config": {
            "id": "app-1"
        }
    }
}
naval_chat_bot = App.from_config(config=config)
naval_chat_bot.add("https://www.youtube.com/watch?v=3qHkcs3kG44")
naval_chat_bot.reset()