Show HN: Vectorless RAG
## Простой RAG с PageIndex
**Цель**
Показать, как за 5 минут построить полноценный Retrieval-Augmented Generation пайплайн на базе PageIndex.
---
### 1. Установка и импорт
```bash
pip install pageindex openai
import pageindex, openai, os
openai.api_key = os.getenv("OPENAI_API_KEY")
2. Загрузка документов
Поддерживаются PDF, DOCX, TXT, MD, PPTX, CSV, JSON.
docs = pageindex.load_documents("data/")
index = pageindex.Index(name="my_docs")
index.add_documents(docs)
3. Поиск и генерация
query = "Какие преимущества RAG?"
chunks = index.search(query, top_k=3)
context = "\n".join(c.text for c in chunks)
prompt = f"Используй контекст:\n{context}\n\nВопрос: {query}"
answer = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
).choices[0].message.content
print(answer)
4. Потоковый чат
chat = index.chat_session(model="gpt-4")
print(chat.ask("Сравни RAG и fine-tuning"))
5. Сохранение и переиспользование
index.save("my_docs.pidx")
# index = pageindex.Index.load("my_docs.pidx")
Советы
- Для больших объёмов используй
batch_size=100
. - Повышай
top_k
при недостаточном контексте. - Добавляй
metadata={"source": "file.pdf"}
для фильтрации.
Готово! Теперь у вас работает RAG без векторных БД и сложной инфраструктуры.