vectorflow

GitHub
700 51 中等 1 次阅读 2天前Apache-2.0语言模型Agent数据工具开发框架图像
AI 解读 由 AI 自动生成,仅供参考

VectorFlow 是一款开源的高吞吐量向量嵌入流水线工具,旨在简化从原始数据到向量数据库的整个处理流程。它能够通过简单的 API 请求,自动接收大量原始数据(支持 TXT、PDF、HTML 和 DOCX 等格式),将其智能分块并转化为向量嵌入,随后快速可靠地存入用户指定的向量数据库或直接返回结果。

在构建基于大语言模型的应用时,开发者往往需要自行搭建复杂的数据预处理和向量化管道,这不仅耗时且难以应对高并发场景。VectorFlow 正是为了解决这一痛点而生,它提供了一个容错性强、易于部署的中间层,让数据处理变得像调用一个接口一样简单。

这款工具特别适合后端开发者、AI 工程师以及需要构建检索增强生成(RAG)系统的研究人员使用。无论是希望在本地快速原型验证,还是需要在生产环境中通过 Kubernetes 进行大规模部署,VectorFlow 都能提供灵活的支持。其独特的技术亮点在于“高吞吐”与“容错性”的设计,确保在处理海量数据时依然稳定高效。此外,项目提供了便捷的 Python 客户端库和 Docker Compose 部署方案,让用户只需几条命令即可在本地启动服务,极大地降低了向量数据工程化的门槛。

使用场景

某电商平台的客服团队急需构建智能问答系统,以便从数万份 PDF 产品手册和 DOCX 售后文档中快速检索答案。

没有 vectorflow 时

  • 开发周期漫长:工程师需手动编写脚本处理文件分块、调用嵌入模型并管理重试逻辑,仅数据预处理流程就耗时数周。
  • 高并发下易崩溃:面对批量导入的海量文档,自定义脚本缺乏容错机制,一旦中途网络波动或内存溢出,整个任务必须从头重来。
  • 格式支持受限:原有方案难以统一处理 TXT、PDF、HTML 等多种异构文件格式,往往需要为每种格式单独开发解析器。
  • 资源调度困难:无法弹性应对突发的数据入库需求,要么闲置算力,要么在高峰期因排队导致响应延迟极高。

使用 vectorflow 后

  • 极速接入部署:通过简单的 API 请求或 Python 客户端上传文件路径,vectorflow 自动完成分块、向量化并存入指定向量数据库,将上线时间缩短至几天。
  • 稳定可靠运行:依托其内置的高吞吐与容错架构,即使处理 TB 级数据或遭遇节点故障,任务也能自动恢复并确保数据不丢失。
  • 多格式无缝兼容:原生支持 TXT、PDF、HTML 和 DOCX 等多种主流文档格式,无需额外开发即可统一清洗和转换所有非结构化数据。
  • 弹性伸缩能力:基于 Kubernetes 的部署方案让系统能根据数据量自动扩缩容,轻松应对大促期间的海量知识库更新需求。

vectorflow 将复杂的向量数据处理链路简化为一次 API 调用,让团队能专注于业务逻辑而非底层基础设施的维护。

运行环境要求

操作系统
  • Linux
  • macOS
GPU

未说明

内存

未说明

依赖
notes该工具主要基于 Docker Compose 部署,核心依赖包括 RabbitMQ、Postgres、MinIO 和向量数据库(默认 Qdrant 1.9.1)。在 macOS 上运行需特别授予 Docker 读取文档文件夹的权限。支持的文件格式包括 TXT、PDF、HTML 和 DOCX。生产环境建议在 Kubernetes 上运行。若使用本地向量数据库,需配置相应的环境变量。
python未说明
Docker
Docker Compose
RabbitMQ
PostgreSQL
MinIO
Qdrant (默认) / Weaviate / Milvus
vectorflow-client (Python 库)
vectorflow hero image

快速开始

VectorFlow

开源、高吞吐、容错的向量嵌入流水线

简单的 API 端点,可快速可靠地摄取大量原始数据、进行处理,并存储或返回向量。

加入我们的 Discord | 官网 | 联系我们 | 文档 | 免费托管版本

这里填写图片描述

简介

VectorFlow 是一个开源、高吞吐、容错的向量嵌入流水线。只需发送一个简单的 API 请求,即可上传原始数据,这些数据将被分块、嵌入,并存储到任何向量数据库中,或者直接返回给您。

当前版本为 MVP。我们建议在生产环境中使用 Kubernetes 运行它(详情见下文)。对于文本文件,支持 TXT、PDF、HTML 和 DOCX 格式。

在本地运行

只需三条命令,您就可以在本地运行 VectorFlow:

git clone https://github.com/dgarnitz/vectorflow.git
cd vectorflow
./setup.sh

使用客户端嵌入文档

要在本地开始嵌入文档,请在您的 Python 应用程序的虚拟环境中安装 VectorFlow 客户端 Python 库

pip install vectorflow-client

然后运行以下代码:

from vectorflow-client.client.vectorflow import Vectorflow

vectorflow = Vectorflow()
vectorflow.embeddings_api_key = os.getenv("OPEN_AI_KEY")
paths = ['your_file_path1', 'your_file_path2', ...]
response = vectorflow.upload(paths)

您无需克隆 VectorFlow 仓库即可通过 pip 使用客户端功能。更多说明请参阅 client 目录中的 README.md 文件。

有关如何使用 testing_clients 脚本的详细信息,请参阅附录。

Docker-Compose

运行 VectorFlow 的最佳方式是使用 docker compose。如果您在 Mac 上运行,请按照此处的说明授予 Docker 读取您“文档”文件夹的权限:链接。如果此操作失败,请从 docker-compose.yml 中移除 volume 部分。

1) 设置环境变量

首先在根目录下创建一个名为 env_scripts 的文件夹来存放所有环境变量,然后在该文件夹中创建 env_vars.env 文件,添加以下环境变量。只有当您在本地运行 Qdrant、Milvus 或 Weaviate 时,才需要设置 LOCAL_VECTOR_DB 变量。

INTERNAL_API_KEY=your-choice
POSTGRES_USERNAME=postgres
POSTGRES_PASSWORD=your-choice
POSTGRES_DB=vectorflow
POSTGRES_HOST=postgres
RABBITMQ_USERNAME=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_HOST=rabbitmq
LOCAL_VECTOR_DB=qdrant | weaviate
API_STORAGE_DIRECTORY=/tmp
MINIO_ACCESS_KEY=minio99
MINIO_SECRET_KEY=minio123
MINIO_ENDPOINT=minio:9000
MINIO_BUCKET=vectorflow

您可以为 INTERNAL_API_KEYPOSTGRES_PASSWORDPOSTGRES_DB 选择任意值,但必须设置它们。

2) 运行 Docker-Compose

确保您已将 Rabbit MQ、Postgres 和 Min.io 拉取到本地 Docker 仓库中。我们还建议在本地运行一个向量数据库,因此请务必拉取您正在使用的数据库镜像。我们的 docker-compose 文件默认会启动 Qdrant 并创建两个索引/集合。如果您计划运行 Milvus 或 Weaviate,则需要自行配置。

docker pull rabbitmq
docker pull postgres
docker pull qdrant/qdrant | docker pull semitechnologies/weaviate
docker pull minio/minio

然后运行:

docker-compose build --no-cache
docker-compose up -d

请注意,init 容器正在运行一个脚本,用于设置数据库模式、向量数据库和 Minio 对象存储。脚本完成后,这些容器会停止。对于 Qdrant,请确保拉取 1.9.1 版本,因为这是 Qdrant 客户端 Python 包所兼容的版本。

使用 VectorFlow

使用 VectorFlow 的最佳方式是通过 Python 客户端。

要用于开发目的,您可以向您的 API URL 发送 HTTP 请求——例如,从开发机器上访问 localhost:8000,或从另一个 Docker 容器内访问 vectorflow_api:8000

请求与响应负载

所有请求都需要包含一个 Authorization 键的 HTTP 头,其值应与您之前定义的 INTERNAL_API_KEY 环境变量相同(见上文)。如果您连接的是基于云的向量数据库实例,则必须通过 HTTP 头 X-VectorDB-Key 传递您的向量数据库 API 密钥;如果使用 OpenAI,则需通过 X-EmbeddingAPI-Key 传递嵌入 API 密钥。HuggingFace Sentence Transformer 嵌入不需要 API 密钥,但您仍需按照上述步骤运行包含所需模型的容器。

目前,VectorFlow 支持 Pinecone、Qdrant 和 Weaviate 向量数据库。

对单个文件进行嵌入

要提交单个文件进行嵌入,请向 /embed 端点发送 POST 请求,附带文件、'Content-Type: multipart/form-data' 头以及以下负载:

{
    'SourceData=txt文件路径'
    'LinesPerBatch=4096'
    'EmbeddingsMetadata={
        "embeddings_type": "OPEN_AI",
        "chunk_size": 512,
        "chunk_overlap": 128,
        "chunk_strategy": "EXACT | PARAGRAPH | SENTENCE | CUSTOM",
        "model": "text-embedding-3-small | text-embedding-3-large | text-embedding-ada-002"
    }'
    'VectorDBMetadata={
        "vector_db_type": "PINECONE | QDRANT | WEAVIATE",
        "index_name": "索引名称",
        "environment": "环境名称"
    }'
    'DocumentID=您可选的内部跟踪ID'
}

这将创建一个 job,您将收到如下负载作为响应:

{
    'message': f"成功将 {batch_count} 个批次添加到队列中",
    'JobID': job_id
}

目前,该端点仅支持一次上传单个文件,且由于超时问题,文件大小上限为 25 MB。请注意,此功能可能会被弃用。

一次性嵌入多个文件

要提交多个文件进行嵌入,请向 /jobs 端点发送 POST 请求。负载与单个文件嵌入相同,不同之处在于多文件的附加方式:

{
    'files=[
        ('file',  ('test_pdf.pdf', open(file1_path, 'rb'), 'application/octet-stream')),
        ('file', ('test_medium_text.txt', open(file2_path, 'rb'), 'application/octet-stream'))
    ]'
}

注意: 必须以流式传输的方式将文件发送到端点,而不能以常规 POST 请求的形式发送,否则会失败。

该端点会为每个上传的文件创建一个 job。您将收到如下 JSON 负载:

{   
    'successful_uploads': 成功上传的文件列表,
    'failed_uploads': 上传失败的文件列表,
    'empty_files_count': 空文件数量,
    'duplicate_files_count': 重复文件数量
}

其中 successfully_uploaded_files 是一个包含 (文件名, job id) 元组的列表,而 failed_uploads 是上传失败的文件名列表,以便您可以重试这些文件。

获取单个作业状态

要检查某个 job 的状态,请向 /jobs/<int:job_id>/status 端点发送 GET 请求。响应格式如下:

{
    'JobStatus': 作业状态
}

获取多个作业状态

要检查多个 job 的状态,请向 /jobs/status 端点发送 POST 请求。请求体格式如下:

{
    'JobIDs': 作业 ID 列表
}

响应格式为:

{
    'Jobs': [{'JobID': 作业 ID, 'JobStatus': 作业状态}, ...]}

testing_clients/get_jobs_by_ids.py 中有一个示例。

向量数据库标准元数据模式

VectorFlow 强制执行用于向量存储上传数据的标准模式:

id: 字符串
source_data: 字符串
source_document: 字符串
embeddings: 浮点数数组

ID 可用于去重和幂等性操作。请注意,在 Weaviate 中,ID 称为 vectorflow_id

我们计划在不久的将来弃用此模式,以便在未来支持动态检测和/或可配置的模式。

分块模式与自定义分块

VectorFlow 内置的分块器按 token 计数,而非按字符计数。VectorFlow 中的 chunk 是一个包含以下键的字典:

text: str
vector: list[float]

您可以通过在构建 worker 的 Docker 镜像之前,将一个名为 custom_chunker.py 的文件及其方法 chunker(source_data: list[str]) 添加到 src/worker 目录来运行自定义分块器。该分块器必须返回符合上述标准的 chunk 字典列表。

只要 _JSON 可序列化_,您就可以向 chunk 字典中添加任何所需的键,即不允许使用自定义类或函数、日期时间类型或循环引用代码。然后,您可以使用此自定义分块将元数据上传到向量数据库,并采用您所需的任何模式。

原始嵌入 Webhook

如果您希望仅使用 VectorFlow 进行分块和生成嵌入,请在 /embed 请求的正文中传递 WebhookURL 参数,并在头中添加 X-Webhook-Key。VectorFlow 假设需要 Webhook 密钥才能写回任何端点。嵌入结果会连同源分块一起以上述 chunk 字典的形式返回。数据以 JSON 格式发送,形式如下:

{
    'Embeddings': list[dict],
    'DocumentID': str,
    'JobID': int
}

分块验证 Webhook

如果您希望验证哪些分块可以进行嵌入,请在 /embed 请求的正文中传递 ChunkValidationURL 参数。这将发送包含以下 JSON 负载的请求:{"chunks": chunked_data},其中 chunked_data 是一个 chunk 字典列表。预期返回的 JSON 将包含 valid_chunks 键,其中列出可用于嵌入的有效分块。该端点默认会在 30 秒后超时,但可以在应用程序代码中进行配置。

S3 端点

VectorFlow 已与 AWS S3 集成。您可以在 HTTP 请求体中传递预签名的 S3 URL,而不是直接上传文件。使用表单字段 PreSignedURL 并访问 /s3 端点。该端点具有与 /embed 端点相同的配置和限制。

遥测

VectorFlow 使用 PostHog 匿名收集使用数据。它不会收集任何个人身份信息。如果您想禁用此功能,只需在您的 env_vars.env 文件中添加以下环境变量:

TELEMETRY_DISABLED=True

Kubernetes

您可以在本地使用 minikube 在 Kubernetes 中运行 VectorFlow,方法是执行 ./kube/scripts/deploy-local-k8s.sh 脚本,该脚本会应用 kube/ 目录下的所有 YAML 文件。如果您尚未安装 Docker、minikube 和 kubectl,此脚本将无法正常工作。

该脚本首先会在本地构建镜像,然后将其传输到 minikube 中。如果您想查看 minikube 中有哪些可用的镜像,请运行以下命令:

eval $(minikube docker-env)
docker images

为了从您的开发机器访问集群中的资源,您需要运行 minikube tunnel 命令。设置脚本会将您本地 Docker 上下文中的镜像加载到 minikube 的镜像仓库中。

您可以以 kube/ 目录下的 YAML 文件为基础进行生产环境部署,但需要根据您特定集群的需求进行一些自定义配置。如需帮助,请联系我们。

贡献

我们非常欢迎社区的反馈。如果您有任何改进该项目的想法,欢迎您提交问题或加入我们的 Discord 社区。请务必标记 dgarnitzdanmeier2

我们的路线图在下方章节中列出,我们非常希望得到大家的帮助来完善它。我们当前的公开问题是一个很好的起点,您可以在此处查看:https://github.com/dgarnitz/vectorflow/issues。如果您想处理未列出的任务,建议您先提交一个问题,说明您的计划方案,然后再提交 PR。

请在所有 PR 中标记 dgarnitz,并更新 README以反映您的更改。

测试

在提交 PR 时,请添加单元测试以覆盖您新增的功能。同时,请重新运行现有测试,确保没有引入回归性错误。请从 src 目录运行测试。要运行单个测试用例,可以使用以下命令:

python -m unittest module.tests.test_file.TestClass.test_method

要运行文件中的所有测试,可以使用:

python -m unittest module.tests.test_file

对于端到端测试,建议使用 docker-compose 进行构建和运行,但请停止正在修改的容器,并在您的开发机器上本地运行。这样可以避免不断重建镜像和重启容器。请确保在开发机器的终端中将环境变量更改为正确的值(例如,将 rabbitmqpostgres 替换为 localhost),以便 Docker 容器能够与您的开发机器通信。当本地运行正常后,您可以使用 docker-compose 再次进行最终测试。

验证

请在提交 PR 之前,验证所有更改是否都能通过 docker-compose 正常工作。

我们还建议您提供验证证据,例如截图,以展示您的代码在端到端流程中的实际效果。

路线图

  • 支持从 Salesforce、Google Drive 等来源批量导入多文件或多目录数据
  • 重试机制
  • Langchain 集成
  • 支持回调功能,用于将对象元数据写入独立存储
  • 动态可配置的向量数据库模式
  • 去重功能
  • 向量版本控制
  • “智能”分块器
  • “智能”元数据提取器

附录

使用测试脚本嵌入数据

使用 VectorFlow 的一种简单方式是借助位于 testing_clients/ 目录下的测试客户端。该目录包含多个脚本,具有不同的配置,可用于快速上传数据。我们建议从 testing_clients/standard_upload_client.py 开始——运行此脚本会将单个文档提交给 VectorFlow,使用 OpenAI ADA 模型进行嵌入,并上传至本地的 Qdrant 实例。您可以根据自己的配置调整相关参数。如果需要一次上传多个文件,可以使用 testing_clients/streaming_upload_client.py

请注意,TESTING_ENV 变量相当于 VectorDBMetadata 中的 environment 字段,它对应于 Pinecone 中的环境、Weaviate 中的类、Qdrant 中的集合等。testing_clients 目录中提供了示例脚本,您可以按照这些脚本运行 VectorFlow。将您的嵌入模型和数据库密钥添加到生成的 env_scripts/env_vars.sh 脚本中,并将 testing_clients/standard_upload_client.py 中的 filepath 变量设置为您想要嵌入的文件路径。然后运行:

source env_scrips/env_vars.sh
python testing-clients/standard_upload_client.py

如果需要一次上传多个文件,可以使用 testing_clients/streaming_upload_client.py

有关如何手动设置和配置系统的更详细说明,请参阅上方内容。请注意,setup 脚本不会在您的机器上创建开发环境,它仅负责设置并运行 docker-compose。我们不建议在 Windows 系统上使用 VectorFlow。

请求

要执行搜索,需向 /images/search 端口发送 POST 请求,请求中需附带图像文件,并设置 Content-Type: multipart/form-data 头部,以及以下请求体:

{
    'ReturnVectors': boolean,
    'TopK': integer,小于1000,
    'VectorDBMetadata={
        "vector_db_type": "PINECONE | QDRANT | WEAVIATE",
        "index_name": "index_name",
        "environment": "env_name"
    }'
}

所有请求都需要带有 Authorization 键的 HTTP 头部,该键与您之前定义的 INTERNAL_API_KEY 环境变量相同(见上文)。如果您连接的是基于云的向量数据库实例,则必须通过 HTTP 头部 X-VectorDB-Key 提供您的向量数据库 API 密钥。

响应

图像相似度搜索将返回一个响应对象,其中包含前 K 个匹配项,如果请求了原始向量,则还会一并返回。响应格式如下:

{
    "similar_images": 匹配对象列表
    "vectors": 浮点数列表的列表
}

其中,匹配对象的定义如下:

{
    "id": 字符串,
    "score": 浮点数,
    "metadata": {"source_document" : 字符串}
}

使用 Docker 命令构建和运行单个镜像

如果您希望使用 docker builddocker run 来构建和运行单个镜像,而不是使用 docker-compose,请按照以下步骤操作:

  1. cd src/
  2. docker build --file api/Dockerfile -t vectorflow_api:latest . 构建镜像——别忘了最后的句点。
  3. docker run --network=vectorflow --name=vectorflow_api -d --env-file=../env_scripts/env_vars.env -p 8000:8000 vectorflow_api:latest 运行 API。运行 worker 时无需指定端口。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|今天
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|昨天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

141.5k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|今天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|今天
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|今天
语言模型图像Agent