Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: Cached RAG, Retrieval Augmented Generation, caching, LLM, performance optimization

Что такое Cached Augmented Generation (кэшированный RAG)? Слышал про такой подход?

Вопрос проверяет понимание концепции кэшированного RAG (Cached Augmented Generation), который оптимизирует производительность RAG-систем за счет кэширования результатов поиска и генерации.

Короткий ответ

Cached Augmented Generation (кэшированный RAG) — это подход, при котором результаты поиска по базе знаний и сгенерированные ответы сохраняются в кэше. При повторном запросе система сначала проверяет кэш, и если находит совпадение, возвращает готовый ответ, минуя дорогостоящие этапы поиска и генерации. Это значительно снижает задержку и нагрузку на LLM, особенно для часто задаваемых вопросов.

Длинный ответ

Что такое Cached Augmented Generation?

Cached Augmented Generation (кэшированный RAG) — это эволюция классического подхода Retrieval-Augmented Generation (RAG), направленная на повышение производительности и снижение затрат. В традиционном RAG каждый запрос пользователя проходит полный цикл: поиск релевантных документов в векторной базе данных, передача контекста в LLM и генерация ответа. Кэшированный RAG добавляет слой кэширования, который сохраняет результаты предыдущих запросов.

Как это работает?

Система кэширует как промежуточные результаты поиска (например, эмбеддинги запросов и найденные документы), так и финальные ответы LLM. При поступлении нового запроса сначала вычисляется его эмбеддинг и сравнивается с кэшированными. Если находится достаточно похожий запрос (по косинусной близости), система может вернуть кэшированный ответ или использовать кэшированный контекст для быстрой генерации.

Пример реализации

import hashlib
from functools import lru_cache

class CachedRAG:
    def __init__(self, llm, vector_store, cache_size=100):
        self.llm = llm
        self.vector_store = vector_store
        self.cache = lru_cache(maxsize=cache_size)(self._generate)

    def _generate(self, query_hash):
        # Восстанавливаем запрос по хешу (упрощенно)
        query = self._reverse_hash(query_hash)
        # Поиск документов
        docs = self.vector_store.similarity_search(query, k=3)
        context = "\n".join(docs)
        # Генерация ответа
        return self.llm.generate(f"Context: {context}\nQuery: {query}")

    def answer(self, query):
        query_hash = hashlib.md5(query.encode()).hexdigest()
        return self.cache(query_hash)

Где применяется?

  • Чат-боты поддержки с частыми однотипными вопросами
  • Системы вопрос-ответ по документации
  • Персональные ассистенты с повторяющимися запросами

Вывод

Кэшированный RAG особенно полезен в production-средах, где важна скорость ответа и экономия ресурсов. Он позволяет обрабатывать повторяющиеся запросы мгновенно, не нагружая LLM и векторную базу данных, что делает его идеальным для высоконагруженных систем с предсказуемыми паттернами запросов.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

  • Node.js

    Node.js

Ключевые слова

#Cached RAG

#Retrieval Augmented Generation

#caching

#LLM

#performance optimization

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.