Hippocampus
Сервис индексации и поиска: принимает Markdown или текст, режет на фрагменты, считает эмбеддинги и ищет гибридным поиском. Метаданные документов заполняет LLM.
Hippocampus не извлекает текст из файлов и не ходит в Paleograph: это делает KnowledgeBase. Файлы после индексации не хранятся, остаются только фрагменты, векторы и ссылка на источник. Порт 8810: REST, веб-интерфейс и MCP /mcp.
Как устроено
- Эмбеддинги dense и sparse модели BGE-M3 считает ModelsGate. Локально нужен только токенизатор.
- Поля метаданных задаются в конфиге
[[default.meta_fields]]: имя, тип и описание для LLM. Набор меняется без миграции индекса. - Один логический документ определяется тройкой: тенант, экземпляр коннектора, идентификатор во внешней системе.
Мягкий старт
Сервис поднимается без Milvus и ModelsGate. Задания индексации копятся в очереди со статусом pending и причиной ожидания. Поиск в это время отвечает 503. Когда зависимости готовы, очередь разбирается сама.
MCP
| Инструмент | Что делает |
|---|---|
search | Гибридный поиск по фрагментам, документы с метаданными |
get_document | Карточка документа и ссылка на источник |
Индексация и удаление через MCP недоступны, только через REST.
REST
| Метод | Путь | |
|---|---|---|
| POST | /api/v1/jobs | Индексация: файл или текст и поля источника |
| GET | /api/v1/jobs/{id}, /wait | Статус задания |
| POST | /api/v1/search | Вопрос, тенанты, форматы, фильтры метаданных, лимит |
| GET | /api/v1/documents, /documents/{id} | Список и карточка |
| DELETE | /api/v1/documents/{id} | Удалить документ |
| POST | /api/v1/documents/delete | Удалить пачкой |
| GET | /api/v1/meta/fields | Поля метаданных из конфига |
Отдельной переиндексации нет: удалите документ и проиндексируйте снова, или дождитесь синхронизации KnowledgeBase.
Настройки
Переменные с префиксом HIPPOCAMPUS_.
| Ключ | Смысл |
|---|---|
HTTP_PORT | Порт сервиса |
MILVUS_HOST, MILVUS_PORT | Milvus |
MAX_PARALLEL_JOBS | Параллельные задания индексации |
MODELSGATE_URL, MODELSGATE_API_KEY | ModelsGate для эмбеддингов |
EMBEDDING_MODEL | Имя модели эмбеддингов в ModelsGate |
TOKENIZER_PATH | Путь к токенизатору BGE-M3 |
META_EXTRACTION_ENABLED | Заполнять ли метаданные через LLM |
OPENAI_*, MODEL_NAME | LLM для метаданных |
Веб-интерфейс сервиса без авторизации: не публикуйте его наружу.