下一代问答:基于色度矢量存储的检索增强型人工智能
检索增强生成 (RAG) 代理结合了文档检索和基于 LLM 的响应生成,以提供智能的、上下文感知的答案。在本指南中,您将使用 LangChain、ChromaDB 和 OpenAI 或 HuggingFace 构建 RAG 系统。
🛠️ 技术栈:
Python
朗链
ChromaDB
OpenAI 或 HuggingFace 的 LLM
SentenceTransformers(全部-MiniLM-L6-v2)
📦 安装依赖项
pip install langchain chromadb sentence-transformers openai
🧱 文件夹结构
.
├── rag_chroma_db/ # Chroma vector store
├── docs/
│ └── my_corpus.txt # Your source document
└── rag_agent.py # Main script
📄 代码:RAG Agent with ChromaDB
from langchain.embeddings import SentenceTransformerEmbeddings
from langchain.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import TextLoader
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI # You can also use HuggingFaceHub
# 1. Load documents
loader = TextLoader("docs/my_corpus.txt")
documents = loader.load()
# 2. Split into chunks
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = text_splitter.split_documents(documents)
# 3. Embed and store in Chroma
embedding = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")
vectordb = Chroma.from_documents(documents=chunks, embedding=embedding, persist_directory="rag_chroma_db")
vectordb.persist()
# 4. Set up retriever
retriever = vectordb.as_retriever(search_kwargs={"k": 3})
# 5. Set up LLM
llm = OpenAI(temperature=0)
# 6. Create RAG chain
qa = RetrievalQA.from_chain_type(llm=llm, retriever=retriever, return_source_documents=True)
# 7. Ask questions
query = "What is the main topic of the document?"
result = qa({"query": query})
print("Answer:", result["result"])
print("Sources:", result["source_documents"])
🔐 设置您的 API 密钥
请确保您的环境已设置 OpenAI 密钥:
export OPENAI_API_KEY="your-api-key"
或者用 Python 来说:
import os
os.environ["OPENAI_API_KEY"] = "your-api-key"
🔄接下来做什么?
📄使用 PyMuPDF 或 pdfminer.six 添加 PDF 加载器
🖥️ 使用 Streamlit 或 FastAPI 添加 UI
🤖 将检索器封装成一个 LangChain 工具 + 代理
🔌 使用 HuggingFace LLMs 离线运行
💡 总结:
您现在拥有一个可用的检索增强生成 (RAG) 代理,它使用:
使用 SentenceTransformers 对本地文档进行分块和嵌入
存储在 ChromaDB 向量库中
使用 LangChain RetrievalQA 进行查询
使用 OpenAI GPT 回答
文章来源:https://dev.to/moni121189/next-gen-qa-retrieval-augmented-ai-with-chroma-vector-store-4kie