Как ты реализовал Graph RAG? Почему использовал Qdrant, если он нативно не поддерживает граф?
Ответ от нейросети
sobes.tech AI
Graph RAG (Retrieval-Augmented Generation) реализуется как гибридная система, где для поиска релевантной информации используется графовая структура знаний, а генерация ответов — языковая модель.
Qdrant выбран как векторное хранилище для эффективного поиска по эмбеддингам, несмотря на отсутствие нативной поддержки графов. Графовая логика реализована на уровне приложения: вершины и ребра хранятся в отдельной базе (например, Neo4j или в памяти), а Qdrant отвечает за быстрый поиск похожих векторов (например, эмбеддингов узлов или документов).
Таким образом, при запросе сначала происходит поиск релевантных узлов через Qdrant, затем по связям в графе расширяется контекст, и на основе этого контекста LLM генерирует ответ. Такой подход позволяет использовать сильные стороны обеих технологий: Qdrant — для векторного поиска, граф — для семантических связей.
Пример упрощённой схемы:
# Псевдокод
query_embedding = embed(query)
candidate_nodes = qdrant.search(query_embedding)
related_nodes = graph.expand_relations(candidate_nodes)
context = aggregate_texts(related_nodes)
answer = llm.generate(context)