Hacker News Digest

Тег: #semantic-search

Постов: 2

Show HN: Semantic grep for Claude Code (local embeddings) (github.com)

GitHub-репозиторий BeaconBay/ck
Публичный проект без описания.
Кнопки: «Code», «Issues», «Pull requests», «Actions», «Projects», «Wiki», «Security», «Insights».
Последний коммит: 2 года назад.
Язык: C.
Лицензия: отсутствует.

by Runonthespot • 07 сентября 2025 г. в 11:20 • 147 points

ОригиналHN

#rust#tree-sitter#embeddings#vector-search#semantic-search#code-search#baai-bge-small-en-v1.5#gemma#github

Комментарии (60)

  • Утилита ck — это «семантический grep» на Rust: строет локальный векторный индекс файлов и ищет по смыслу, а не только по ключевым словам.
  • Работает через embeddings (BAAI/bge-small-en-v1.5, планируется Gemma), повторное индексирование запускается автоматически при изменении файлов.
  • Поддерживает почти все языки, но для точного семантического чанкинга требуется донастройка tree-sitter; grep-режим остаётся дефолтом.
  • Пользователи жалуются на медленный поиск в больших проектах, отсутствие TypeScript-LSP и «разрезание» эмодзи; README считают «AI-флаффным».
  • Альтернативы: Codanna, Serena, Roo с Qdrant, SemTools; автор приглашает тестеров и PR для доведения до зрелости.

Show HN: Vectorless RAG (github.com)

## Простой 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 без векторных БД и сложной инфраструктуры.

by page_index • 27 августа 2025 г. в 08:39 • 167 points

ОригиналHN

#python#openai#rag#llm#pageindex#gpt-3.5-turbo#gpt-4#semantic-search#chatbot#github

Комментарии (93)

  • Критики считают «vectorless RAG» переизобретением семантического чанкинга + иерархического поиска и сомневаются в масштабируемости.
  • Основной минус — высокие затраты и латентность: каждый запрос требует прогона LLM по всем документам или их крупным фрагментам.
  • Подход может подойти для малого корпуса или офлайн-задач (юрдоки, медкарты), но не для чатов «здесь и сейчас».
  • Некоторые предлагают гибриды: ANN-вектора для быстрого отбора, затем LLM-переранжирование.
  • Пропущены публичные бенчмарки; сравнение ограничено собственным датасетом MAFIN2.5.