教程 rag langchain chroma react
从任何源到 RAG 管道只需 5 分钟
学习如何使用 Skill Seekers v3.0.0 将文档、GitHub 仓库、PDF 或代码库转换为 LangChain + Chroma RAG 管道
Skill Seekers 团队 •
从任何源到 RAG 管道只需 5 分钟
在本教程中,您将学习如何将任何源转换为 RAG 管道:
- 抓取 React 文档(或任何源)
- 将其转换为 LangChain 文档
- 存储在 Chroma 向量数据库中
- 使用自然语言查询
先决条件
pip install skill-seekers langchain chromadb openai
第 1 步:抓取您的源
从文档
skill-seekers scrape --format langchain --config configs/react.json
从 GitHub 仓库
skill-seekers scrape --format langchain --github https://github.com/facebook/react
从 PDF
skill-seekers scrape --format langchain --pdf ./react-docs.pdf
从本地代码库
skill-seekers analyze --directory ./my-react-project --format langchain
这将:
- 从您选择的源提取内容
- 将页面转换为 LangChain 文档
- 保存到
output/react-langchain/
第 2 步:加载文档
from skill_seekers.cli.adaptors import get_adaptor
adaptor = get_adaptor('langchain')
documents = adaptor.load_documents("output/react-langchain/")
print(f"加载了 {len(documents)} 个文档")
第 3 步:存储到 Chroma
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
# 初始化嵌入
embeddings = OpenAIEmbeddings()
# 创建向量存储
vectorstore = Chroma.from_documents(
documents,
embeddings,
collection_name="react-docs",
persist_directory="./chroma_db"
)
print("文档已存储到 Chroma!")
第 4 步:查询
# 搜索 React hooks 信息
results = vectorstore.similarity_search("如何使用 useState?")
print(results[0].page_content)
# 带过滤器搜索
results = vectorstore.similarity_search(
"useEffect 清理",
filter={"category": "hooks"}
)
完整脚本
#!/usr/bin/env python3
"""从任何源的 RAG 管道。"""
from skill_seekers.cli.adaptors import get_adaptor
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
# 加载文档
adaptor = get_adaptor('langchain')
documents = adaptor.load_documents("output/react-langchain/")
# 存储到 Chroma
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(
documents,
embeddings,
collection_name="react-docs",
persist_directory="./chroma_db"
)
# 查询
query = "如何使用 useState?"
results = vectorstore.similarity_search(query, k=3)
print(f"查询:{query}\n")
for i, doc in enumerate(results, 1):
print(f"结果 {i}:")
print(doc.page_content[:500] + "...")
print()
高级:其他向量数据库
Skill Seekers v3.0.0 支持 6 种向量数据库:
# Weaviate
skill-seekers scrape --format weaviate --config react.json
# Qdrant
skill-seekers scrape --format qdrant --config react.json
# FAISS
skill-seekers scrape --format faiss --config react.json
# Pinecone(通过 Markdown 导出)
skill-seekers scrape --target markdown --config react.json
下一步
- 尝试使用 GitHub 仓库
- 处理 PDF 手册
- 分析您自己的代码库
- 试验不同的分块大小
- 添加元数据过滤
- 使用云存储部署到生产环境
就是这样!您现在拥有了一个适用于任何源的 RAG 管道。