Unstructured是什么?

Unstructured 是一个专注于处理非结构化数据​(如文本、PDF、图像、电子邮件等)的技术平台,提供开源工具和API服务,帮助用户将这些复杂数据转换为结构化格式(如JSON),以便用于机器学习、数据分析或与大语言模型(LLM)集成。

核心功能

  • 支持多种文件格式解析(PDF、PPT、HTML、社交媒体内容等)。

  • 数据清洗、分块、标注等预处理。

  • 与AI/ML工作流无缝衔接,简化数据准备流程。

说人话就是:你上传的文档,帮你转换成ai可以识别的格式,这个是dify官方支持的一个组件,可以解析的类型更多一些。
Unstructured分为开源版本和付费版本,付费不用了,那绝对最好,我这边使用的是开源的版本。

下面是开源版本的文档

https://docs.unstructured.io/open-source/introduction/overview

dify官方简介

https://docs.dify.ai/guides/knowledge-base/create-knowledge-and-upload-documents#etl

他们文件支持的区别

DIFY ETL

Unstructured ETL

txt, markdown, md, pdf, html, htm, xlsx, xls, docx, csv

txt, markdown, md, pdf, html, htm, xlsx, xls, docx, csv, eml, msg, pptx, ppt, xml, epub

如何安装呢?

官方文档分为两种,完全安装和docker,这里我选择docker版本。

使用编排 创建一个容器

networks:
  1panel-network:
    external: true

services:
  unstructured:
    image: downloads.unstructured.io/unstructured-io/unstructured:latest
    container_name: unstructured
    volumes:
      - ./data:/app/data
    networks:
      - 1panel-network
    tty: true
    restart: always

修改环境变量和环境变量模板.env和.env.example

# ------------------------------
# 知识库配置
# ------------------------------


# ETL 类型,支持:`dify`、`Unstructured`
# `dify` Dify 自研文件提取方案
# `Unstructured` Unstructured.io 文件提取方案

ETL_TYPE=Unstructured

# Unstructured API 地址和 API key,当 ETL_TYPE 为 Unstructured 时需要配置
# 或在文档提取节点使用 pptx 时使用 Unstructured
# 示例:http://unstructured:8000/general/v0/general

UNSTRUCTURED_API_URL=http://unstructured:8000/general/v0/general
UNSTRUCTURED_API_KEY=
SCARF_NO_ANALYTICS=true

修改后需要重新执行

  • ./generate_docker_compose 自动生成docker-compose.yaml

  • docker compose down 关闭容器

  • docker compose up -d 启动容器

未开启时:

开启时: