Реалізація RAG (Retrieval-Augmented Generation) для AI-бота на сайті

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація RAG (Retrieval-Augmented Generation) для AI-бота на сайті
Складна
~2-4 тижні
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Реалізація RAG AI Bot (Retrieval-Augmented Generation)

RAG поєднує зовнішній пошук знань з мовними моделями. Бот отримує релевантні документи/дані, потім генерує відповіді на основі цього контексту. Краща точність ніж чистий LLM для специфічних Q&A.

Архітектура RAG

Запитання користувача → Векторний пошук → Отриманий контекст → LLM → Відповідь

Реалізація

import OpenAI from 'openai';
import { QdrantClient } from '@qdrant/js-client-rest';

const openai = new OpenAI();
const qdrant = new QdrantClient({ url: 'http://localhost:6333' });

async function ragQuery(userQuestion) {
  // 1. Векторизуй запитання
  const questionEmbedding = await openai.embeddings.create({
    model: 'text-embedding-3-small',
    input: userQuestion,
  });

  // 2. Отримай контекст
  const searchResults = await qdrant.search('knowledge-base', {
    vector: questionEmbedding.data[0].embedding,
    limit: 5,
    score_threshold: 0.7,
  });

  const context = searchResults.points
    .map(p => p.payload.text)
    .join('\n\n');

  // 3. Згенеруй відповідь
  const response = await openai.chat.completions.create({
    model: 'gpt-4o-mini',
    messages: [
      {
        role: 'system',
        content: `Відповідай на основі наданого контексту. Якщо відповіді немає в контексті, скажи про це.

Контекст:
${context}`,
      },
      { role: 'user', content: userQuestion },
    ],
    max_tokens: 500,
  });

  return {
    answer: response.choices[0].message.content,
    sources: searchResults.points.map(p => p.payload.source),
  };
}

Налаштування бази знань

// Індексуй документи
async function indexDocument(doc) {
  const chunks = chunkText(doc.content, { size: 500, overlap: 100 });

  const embeddings = await openai.embeddings.create({
    model: 'text-embedding-3-small',
    input: chunks,
  });

  const points = chunks.map((text, i) => ({
    id: generateId(),
    vector: embeddings.data[i].embedding,
    payload: {
      text,
      source: doc.source,
      docId: doc.id,
    },
  }));

  await qdrant.upsert('knowledge-base', { points });
}

Терміни

  • Налаштування Qdrant + embeddings — 1–2 дні
  • Індексація бази знань — 1 день
  • Реалізація RAG — 2 дні
  • UI + стримінг — 2–3 дні
  • Гарантія якості — 2–3 дні