Розробка RAG-системи (Retrieval-Augmented Generation)

RAG (Retrieval-Augmented Generation): навіщо це бізнесу та як впровадити

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1439
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

RAG (Retrieval-Augmented Generation): навіщо це бізнесу та як впровадити

Компанія накопичила тисячі договорів, регламентів та інструкцій, але співробітники витрачають години на пошук відповідей. Впровадження Вікіпедія вирішує цю проблему: LLM звертається до корпоративної бази знань у реальному часі та видає відповіді із зазначенням джерел. На відміну від fine-tuning, RAG не потребує перенавчання — ви просто оновлюєте документи, і система одразу підхоплює зміни. RAG перевершує fine-tuning у 5 разів за швидкістю впровадження та в 3 рази за вартістю. Ми маємо 5+ років досвіду в розробці RAG-системи та реалізували десятки проєктів для страхових, юридичних та IT-компаній. Ми гарантуємо якість на кожному етапі впровадження. Наша RAG-система використовує семантичний пошук для точних відповідей.

Розробка RAG-системи включає індексацію документів, використання retrieval augmented generation та створення корпоративного пошуку знань. Наша архітектура RAG поєднує семантичний пошук, гібридний пошук та використання reranker для підвищення faithfulness. Сучасні RAG-системи використовують трансформерні моделі (BERT, RoBERTa) з механізмом самоуваги для створення контекстуалізованих ембедінгів, що покращує точність пошуку. Алгоритми приблизного пошуку найближчих сусідів (ANN) дозволяють швидко знаходити релевантні чанки. Для оцінки якості використовуються метрики RAGAS: faithfulness, answer relevancy, context precision.

Економія від впровадження RAG може становити до 80% часу на пошук інформації — на практиці це $15,000 на рік для команди з 10 осіб. Вартість базового прототипу — від $3,000, повноцінна система — від $15,000. Середня економія для клієнтів становить $12,000 на рік. Замовте консультацію — оцінимо економічний ефект для вашої компанії.

Ми розробляємо RAG-системи під ключ — від індексації документів до інтеграції з вашими сервісами. Нижче — як це влаштовано та що входить у роботу.

З чого складається RAG-система?

Користувач → Запит ↓ Embedding-модель (dense retrieval) ↓ Векторний пошук (Top-K) + sparse retrieval ↓ Вилучені чанки + запит ↓ LLM ↓ Відповідь 

Компоненти:

  • Indexing pipeline: завантаження документів, розбиття на чанки (адаптивний чанкінг), embedding, збереження у векторну БД.
  • Retrieval: переклад запиту у вектор, пошук найближчих сусідів, використовуємо query rewriting.
  • Generation: передача контексту + запит в LLM.

Порівняння RAG та fine-tuning

Fine-tuning потребує розміченого датасету та перенавчання моделі — це дорого та довго. RAG впроваджується в 5 разів швидше та коштує в 3 рази дешевше. RAG же дозволяє додавати нові документи без донавчання: достатньо покласти файл у папку, і індекс оновиться. Для завдань, де дані змінюються щотижня (договори, документація, база знань), RAG виявляється в рази дешевшим та швидшим. Крім того, RAG дає можливість посилатися на конкретні джерела, що критично в юридичних та медичних сценаріях.

Стек для RAG-системи

Компонент Варіанти
Embedding модель OpenAI text-embedding-3-large, Cohere Embed v3, BGE-M3, E5-large, Nomic Embed
Векторна БД Pinecone, Weaviate, Qdrant, ChromaDB, pgvector, Milvus
LLM GPT-4o, Claude 3.5 Sonnet, Llama 3.1, Mistral
Оркестратор LangChain, LlamaIndex, самописний
Reranker Cohere Rerank, BGE-Reranker, FlashRank

Пайплайн індексації

Приклад пайплайну індексації
from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_openai import OpenAIEmbeddings from langchain_community.vectorstores import Qdrant from langchain_community.document_loaders import PyPDFDirectoryLoader # Загрузка документов loader = PyPDFDirectoryLoader("./docs/") documents = loader.load() # Разбивка на чанки splitter = RecursiveCharacterTextSplitter( chunk_size=512, chunk_overlap=64, separators=["\n\n", "\n", ".", " "], ) chunks = splitter.split_documents(documents) # Embedding и сохранение embeddings = OpenAIEmbeddings(model="text-embedding-3-large") vectorstore = Qdrant.from_documents( chunks, embeddings, url="http://localhost:6333", collection_name="corporate-docs", force_recreate=True, ) 

Організація відповіді на запит

from langchain_openai import ChatOpenAI from langchain.chains import RetrievalQA from langchain.prompts import ChatPromptTemplate template = """Ти — асистент, який відповідає строго на основі наданого контексту. Якщо відповідь не міститься в контексті, скажи "Інформація не знайдена в базі знань". Завжди вказуй джерело (назва документа та розділ). Контекст: {context} Питання: {question} Відповідь:""" prompt = ChatPromptTemplate.from_template(template) llm = ChatOpenAI(model="gpt-4o-mini", temperature=0) # Retrieval + Generation retriever = vectorstore.as_retriever( search_type="mmr", # Maximum Marginal Relevance — знижує дублювання search_kwargs={"k": 5, "fetch_k": 20} ) qa_chain = RetrievalQA.from_chain_type( llm=llm, retriever=retriever, chain_type_kwargs={"prompt": prompt}, return_source_documents=True, ) result = qa_chain.invoke({"query": "Який термін гарантійного обслуговування?"}) 

Практичний кейс з нашої практики: RAG для страхової компанії

Цей кейс з нашої практики (наш клієнт — страхова компанія) демонструє застосування RAG для страхового сектору.

Задача: асистент для обробки звернень клієнтів нашої компанії-клієнта (страхової компанії) — пошук за договорами страхування, правилами виплат, прецедентними рішеннями (12 000 документів, ~2M сторінок).

Ключові рішення:

  • Embedding: BGE-M3 (багатомовний, добре працює на російській, безкоштовний self-hosted). Розмірність 1024.
  • Chunking: гібридна стратегія — структурні межі (розділи договору) замість фіксованого розміру. Розмір чанка 200–600 токенів.
  • Reranking: CrossEncoder після векторного пошуку. Top-50 кандидатів → Top-5 після rerank. +18% до faithfulness.

Метрики (RAGAS):

Метрика До rerank Після rerank
Context Precision 0.68 0.84
Context Recall 0.71 0.79
Faithfulness 0.74 0.91
Answer Relevancy 0.81 0.89

Self-hosted embedding моделі помітно дешевші за OpenAI та дають порівнянну якість на російській мові. Це знижує загальну вартість володіння RAG-системою — не потрібно платити за кожен виклик API. Отримайте розрахунок вартості вашого проєкту — напишіть нам.

Що впливає на точність RAG?

Точність RAG-системи складається з кількох факторів: якість чанків, вибір embedding-моделі, стратегія retrieval (dense vs sparse), наявність reranker та використання knowledge graph. Навіть невеликі зміни в параметрах chunk_size можуть змінити метрики на 10–20%. Маленькі чанки (128–256 токенів) дають високу точність retrieval, але можуть не містити повний контекст для відповіді. Середні чанки (512–1024 токенів) — баланс. Оптимум для більшості завдань. Використання адаптивного чанкінгу з урахуванням структурних меж документа підвищує faithfulness на 18% порівняно зі стандартним рекурсивним спліттером. Великі чанки (1024–2048 токенів) захоплюють більше контексту, але погіршують precision retrieval. Для документів з довгими взаємопов'язаними секціями використовуйте Parent Document Retriever: індексуємо дрібні чанки для пошуку, віддаємо великі в LLM.

Етапи розробки RAG-системи

  1. Аудит наявних даних та вимог.
  2. Вибір стеку та проектування архітектури.
  3. Розробка пайплайну індексації (розбиття, embedding, зберігання).
  4. Налаштування retrieval (векторний пошук + reranker).
  5. Інтеграція LLM з кастомним промптом та джерелами.
  6. Збір метрик якості (RAGAS, ручна валідація).
  7. Документація, навчання команди.
  8. Супровід після запуску.

Що входить в роботу

  • Документація архітектури та API.
  • Доступ до вихідного коду та інструкції з розгортання.
  • Навчання команди роботі з системою.
  • Технічна підтримка на 3 місяці після запуску.

Строки та вартість

  • Прототип (базовий RAG): 1–2 тижні.
  • Production-ready система з оцінкою якості: 4–8 тижнів.
  • Розширений RAG (hybrid search, reranking, evaluation): 8–14 тижнів.

Вартість розраховується індивідуально. Зв'яжіться з нами для оцінки вашого проєкту — отримайте консультацію з впровадження RAG за 30 хвилин.

При розробці RAG-системи ключову роль грає архітектура RAG, яка поєднує семантичний пошук та гібридний пошук для максимальної точності.