Контекст и память: RAG

Урок 3 курса «AI клиентская поддержка — чат-боты, FAQ, автоответы»

cover

Чтобы бот знал о твоём бизнесе

Проблема

ChatGPT не знает специфику твоего бизнеса. Каждый раз приходится в промпте описывать всё.

Решение: RAG (Retrieval-Augmented Generation)

Принцип:
1. У тебя есть документы (FAQ, инструкции, кейсы)
2. AI ищет в них нужный кусок
3. Использует найденное для ответа

Простая реализация

Шаг 1: подготовить документы

  • FAQ.md
  • Pricing.md
  • Cases.md
  • TermsOfService.md

Шаг 2: эмбеддинги

from openai import OpenAI
client = OpenAI()

def embed(text):
    response = client.embeddings.create(
        input=text,
        model="text-embedding-3-small"
    )
    return response.data[0].embedding

Шаг 3: поиск

import numpy as np

def find_similar(query, docs_with_embeddings):
    query_emb = embed(query)
    similarities = [
        np.dot(query_emb, doc["emb"]) for doc in docs_with_embeddings
    ]
    best = max(range(len(similarities)), key=lambda i: similarities[i])
    return docs_with_embeddings[best]["text"]

Шаг 4: ответ

relevant_doc = find_similar(user_question, all_docs)

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": f"Используй для ответа: {relevant_doc}"},
        {"role": "user", "content": user_question}
    ]
)

Готовые решения

Vector DB

  • Pinecone (бесплатно до 1М vectors)
  • Chroma (open source, локально)
  • Qdrant (open source, на своём сервере)

Готовые платформы

  • Voiceflow — drag-and-drop AI ботов
  • Botpress — open source альтернатива
  • Make.com + OpenAI — без кода

Задание

Подготовь свой FAQ.md в 20 пунктов. Залей в Voiceflow или Botpress. Получишь бота за 1 вечер.