非结构化加载器
:::提示 兼容性
仅适用于Node.js。
:::
本笔记本提供了快速入门UnstructuredLoader
文档加载器的概述。关于所有UnstructuredLoader功能和配置的详细文档,请前往API 参考。
概览
集成细节
| 类 | 包 | 兼容性 | 本地 | PY 支持 |
|---|---|---|---|---|
| UnstructuredLoader | @langchain/community | 仅限 Node | ✅ | ✅ |
准备
要访问UnstructuredLoader文档加载器,你需要安装@langchain/community集成包,并创建一个 Unstructured 账户并获取 API 密钥。
本地运行
你可以使用 Docker 在本地计算机上运行 Unstructured。为此,你需要安装 Docker。你可以在这里找到安装 Docker 的说明。
docker run -p 8000:8000 -d --rm --name unstructured-api downloads.unstructured.io/unstructured-io/unstructured-api:latest --port 8000 --host 0.0.0.0
凭证
前往unstructured.io注册 Unstructured 并生成 API 密钥。完成此操作后,请设置UNSTRUCTURED_API_KEY环境变量:
export UNSTRUCTURED_API_KEY="your-api-key"
安装
LangChain 的 UnstructuredLoader 集成位于@langchain/community包中:
:::提示 请参阅安装集成包的一般说明部分。 :::
- npm
- yarn
- pnpm
npm i @langchain/community @langchain/core
yarn add @langchain/community @langchain/core
pnpm add @langchain/community @langchain/core
实例化
现在我们可以实例化我们的模型对象并加载文档:
import { UnstructuredLoader } from "@langchain/community/document_loaders/fs/unstructured";
const loader = new UnstructuredLoader(
"../../../../../../examples/src/document_loaders/example_data/notion.md"
);
加载
const docs = await loader.load();
docs[0];
Document {
pageContent: '# Testing the notion markdownloader',
metadata: {
filename: 'notion.md',
languages: [ 'eng' ],
filetype: 'text/plain',
category: 'NarrativeText'
},
id: undefined
}
console.log(docs[0].metadata);
{
filename: 'notion.md',
languages: [ 'eng' ],
filetype: 'text/plain',
category: 'NarrativeText'
}
目录
你还可以使用
UnstructuredDirectoryLoader
来加载目录中的所有文件,它继承自
DirectoryLoader:
import { UnstructuredDirectoryLoader } from "@langchain/community/document_loaders/fs/unstructured";
const directoryLoader = new UnstructuredDirectoryLoader(
"../../../../../../examples/src/document_loaders/example_data/",
{}
);
const directoryDocs = await directoryLoader.load();
console.log("directoryDocs.length: ", directoryDocs.length);
console.log(directoryDocs[0]);
Unknown file type: Star_Wars_The_Clone_Wars_S06E07_Crisis_at_the_Heart.srt
Unknown file type: test.mp3
directoryDocs.length: 247
Document {
pageContent: 'Bitcoin: A Peer-to-Peer Electronic Cash System',
metadata: {
filetype: 'application/pdf',
languages: [ 'eng' ],
page_number: 1,
filename: 'bitcoin.pdf',
category: 'Title'
},
id: undefined
}
API 参考文档
如需详细了解所有 UnstructuredLoader 的功能和配置,请访问 API 参考文档:https://api.js.langchain.com/classes/langchain_community_document_loaders_fs_unstructured.UnstructuredLoader.html