Все гайды
Как настроить RAG-пайплайн с LangChain и ChromaDB
Средний25 мин

Как настроить RAG-пайплайн с LangChain и ChromaDB

Пошаговое руководство по созданию системы retrieval-augmented generation

## Введение RAG (Retrieval-Augmented Generation) позволяет LLM отвечать на вопросы на основе ваших документов. В этом гайде мы соберём полный пайплайн. ## Шаг 1: Установка зависимостей ```bash pip install langchain chromadb openai ``` ## Шаг 2: Загрузка документов ```python from langchain.document_loaders import DirectoryLoader loader = DirectoryLoader('docs/', glob="**/*.md") docs = loader.load() ``` ## Шаг 3: Разбиение на чанки ```python from langchain.text_splitter import RecursiveCharacterTextSplitter splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50) chunks = splitter.split_documents(docs) ``` ## Шаг 4: Создание векторного хранилища ```python from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import Chroma embeddings = OpenAIEmbeddings() db = Chroma.from_documents(chunks, embeddings, persist_directory="./chroma_db") ``` ## Шаг 5: Сборка цепочки ```python from langchain.chains import RetrievalQA from langchain.llms import OpenAI qa = RetrievalQA.from_chain_type( llm=OpenAI(), chain_type="stuff", retriever=db.as_retriever(search_kwargs={"k": 3}) ) print(qa.run("Как настроить окружение?")) ``` ## Оптимизации • Используйте hybrid search (BM25 + semantic) • Добавьте re-ranking с cross-encoder • Кэшируйте частые запросы