RAG入门之数据导入

LangChain 是什么

LangChain 是一个用于构建基于大语言模型(LLM)应用的开源框架。它提供了一套工具和抽象,让开发者能够轻松构建复杂的AI应用。

LangChain 的核心功能

  • 文档加载和处理:支持多种格式(PDF、文本、网页等)
  • 文本分割:将长文档切分成小块
  • 向量存储:文档向量化和相似性搜索
  • 链式调用:组合多个AI操作
  • Agent:智能代理,能够使用工具
  • RAG(检索增强生成):结合外部知识库

主要竞争对手和替代方案

1. LlamaIndex(原名 GPT Index)

ini 复制代码
# LlamaIndex 示例
from llama_index import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader('data').load_data()
index = VectorStoreIndex.from_documents(documents)

特点

  • 专注于数据索引和检索
  • 更简单的API
  • 更好的RAG性能

2. Haystack

ini 复制代码
# Haystack 示例
from haystack import Pipeline
from haystack.nodes import BM25Retriever, FARMReader

retriever = BM25Retriever(document_store=document_store)
reader = FARMReader(model_name_or_path="deepset/roberta-base-squad2")

特点

  • 企业级搜索和问答
  • 强大的NLP流水线
  • 生产环境优化

3. Semantic Kernel(微软)

scss 复制代码
// Semantic Kernel 示例 (C#)
var kernel = new KernelBuilder()
    .WithOpenAIChatCompletionService("gpt-3.5-turbo", apiKey)
    .Build();

特点

  • 微软开发
  • 支持多种编程语言
  • 与Azure集成良好

4. AutoGPT / GPT-Engineer

特点

  • 自主AI代理
  • 自动化任务执行
  • 代码生成专门化

5. Chroma

ini 复制代码
# Chroma 示例
import chromadb
client = chromadb.Client()
collection = client.create_collection("my_collection")

特点

  • 专注向量数据库
  • 简单易用
  • 轻量级

各框架对比

框架 专长 优势 适用场景
LangChain 全栈LLM应用 生态丰富、社区活跃 原型开发、复杂应用
LlamaIndex 数据索引检索 API简洁、RAG性能好 知识库搜索
Haystack 企业搜索 生产级稳定性 大规模部署
Semantic Kernel 多语言支持 微软生态集成 .NET环境
Chroma 向量存储 轻量级、易部署 简单向量搜索

选择建议

  • 初学者/原型:LangChain(生态丰富,文档全面)
  • 专注RAG:LlamaIndex(性能更好)
  • 生产环境:Haystack(稳定性强)
  • 微软技术栈:Semantic Kernel
  • 简单向量搜索:Chroma

如何使用数据加载器读取简单文本?

python 复制代码
from langchain_community.document_loaders import TextLoader

loader = TextLoader("/Users/shuyixiao/PycharmProjects/RAGPracticalCourse/my.text")

document = loader.load()

print(document)

my.text文件内容

txt 复制代码
生成式AI应用工程师(高级)认证 | 阿里云博客专家 | Java应用开发职业技能等级认证 境是人非叶落处,焕景深处已向春~ 代码是我的文字,程序是我的诗篇,我不是程序员,我是诗人。大浪淘沙,去伪存真,破后而立,否极泰来。 真正的有所成,只能是慢慢来...

输出结果

txt 复制代码
/Users/shuyixiao/PycharmProjects/RAGPracticalCourse/.venv/bin/python /Users/shuyixiao/PycharmProjects/RAGPracticalCourse/testLangChain.py 
[Document(metadata={'source': '/Users/shuyixiao/PycharmProjects/RAGPracticalCourse/my.text'}, page_content='生成式AI应用工程师(高级)认证 | 阿里云博客专家 | Java应用开发职业技能等级认证 境是人非叶落处,焕景深处已向春~ 代码是我的文字,程序是我的诗篇,我不是程序员,我是诗人。大浪淘沙,去伪存真,破后而立,否极泰来。 真正的有所成,只能是慢慢来...')]

进程已结束,退出代码为 0

解释一下为什么是Document对象?

Document 是 LangChain 中的标准数据结构,用于统一处理各种文档格式。它包含两个主要部分:

  1. page_content - 文档的实际内容
  2. metadata - 文档的元数据(如来源、创建时间等)

为什么使用 Document 对象?

txt 复制代码
# 统一的数据格式,便于后续处理
# 无论是文本、PDF、网页等,都统一为 Document 格
相关推荐
Lilith的AI学习日记2 小时前
【AI面试秘籍】| 第25期:RAG的关键痛点及解决方案深度解析
人工智能·深度学习·机器学习·chatgpt·aigc·llama
小溪彼岸2 小时前
【Cursor实战】Cursor+Stagewise=前端可视化编程?
aigc·cursor
中杯可乐多加冰2 小时前
采用Bright Data+n8n+AI打造自动化新闻助手:每天5分钟实现内容日更
运维·人工智能·自动化·大模型·aigc·n8n
小溪彼岸3 小时前
【Cursor实战】提高前端开发效率的两个MCP,无需打开控制台也可轻松改bug
aigc·cursor
非鱼feiyu8 小时前
从入门到实践:构建你的第一个 MCP Server
llm·aigc·mcp
xiaohezi12 小时前
RAG 系统文本切分:从固定长度到智能检索的六种方法解析
aigc
墨风如雪12 小时前
重磅炸弹!字节跳动开源BAGEL:70亿参数,统一多模态理解与生成,AI“全能王”诞生记!
aigc
WebCandy16 小时前
DeepSeek-R1-0528,官方的端午节特别献礼
ai·aigc·deepseek·深度思考
猫头虎1 天前
DeepSeek‑R1-0528 重磅升级:蚂蚁百宝箱免费、无限量调用
aigc·ai编程·智能体·deepseek·deepseekr1‑0528·蚂蚁百宝箱·deepseek0528
后端小肥肠1 天前
即梦3.0+Coze王炸联动:10w+小人国微观生活视频轻松量产!(附喂饭级教程)
人工智能·aigc·coze