nankokit/FileSearchService

C#

0

5 commits

updated Sep 1, 2025

See the code

README

FileSearchService

.NET приложение для семантического поиска по текстовым документам с использованием векторной базы данных Qdrant. Сервис индексирует текстовые файлы, генерирует эмбеддинги и позволяет выполнять поиск через REST API

Основной функционал

  • Индексация:

    • Автоматическая индексация .txt файлов из директории data/ при запуске
    • Поддержка добавления новых файлов с переиндексацией
    • Разбиение больших документов на чанки с уникальными идентификаторами
  • Поиск:

    • Семантический поиск через POST /search с параметрами query и limit
    • Возвращает релевантные чанки текста или пустой список при отсутствии совпадений
  • Управление файлами:

    • Загрузка и автоматическая индексация новых .txt файлов через POST /upload

Технологии

  • C# & .NET 9
  • ASP.NET Core
  • Qdrant для хранения векторных данных
  • Hugging Face API с моделью intfloat/multilingual-e5-large для эмбеддингов
  • Serilog для логирования
  • Docker

Инструкция для запуска

Для использования приложения требуются установленные Docker и Docker Compose

  1. Клонируйте репозиторий:

    git clone https://github.com/nankokit/FileSearchService.git
    cd FileSearchService
    
  2. Добавьте переменную окружения:

    • Создайте файл .env в корне проекта
    • Добавьте в него переменную Hugging Face API token (вставьте ваш токен вместо hf_yourToken...)
    HUGGINGFACE_API_KEY=hf_yourToken...
    
  3. Запустите приложение с помощью Docker Compose:

    docker-compose up --build
    

    Это развернет два сервиса:

    • app: API на порту 8080
    • qdrant: Qdrant на порту 6333
  4. Проверка работоспособности:

    • После запуска откройте браузер и перейдите по адресу http://localhost:8080/swagger для доступа к Swagger UI и тестирования эндпоинтов.
    • Проверьте логи в терминале для подтверждения индексации файлов.
  5. Остановка приложения:

    docker-compose down
    

    Для очистки тома Qdrant (данные будут удалены):

    docker-compose down -v
    

nankokit/FileSearchService

C#

0

5 commits

updated Sep 1, 2025

See the code

README

FileSearchService

.NET приложение для семантического поиска по текстовым документам с использованием векторной базы данных Qdrant. Сервис индексирует текстовые файлы, генерирует эмбеддинги и позволяет выполнять поиск через REST API

Основной функционал

  • Индексация:

    • Автоматическая индексация .txt файлов из директории data/ при запуске
    • Поддержка добавления новых файлов с переиндексацией
    • Разбиение больших документов на чанки с уникальными идентификаторами
  • Поиск:

    • Семантический поиск через POST /search с параметрами query и limit
    • Возвращает релевантные чанки текста или пустой список при отсутствии совпадений
  • Управление файлами:

    • Загрузка и автоматическая индексация новых .txt файлов через POST /upload

Технологии

  • C# & .NET 9
  • ASP.NET Core
  • Qdrant для хранения векторных данных
  • Hugging Face API с моделью intfloat/multilingual-e5-large для эмбеддингов
  • Serilog для логирования
  • Docker

Инструкция для запуска

Для использования приложения требуются установленные Docker и Docker Compose

  1. Клонируйте репозиторий:

    git clone https://github.com/nankokit/FileSearchService.git
    cd FileSearchService
    
  2. Добавьте переменную окружения:

    • Создайте файл .env в корне проекта
    • Добавьте в него переменную Hugging Face API token (вставьте ваш токен вместо hf_yourToken...)
    HUGGINGFACE_API_KEY=hf_yourToken...
    
  3. Запустите приложение с помощью Docker Compose:

    docker-compose up --build
    

    Это развернет два сервиса:

    • app: API на порту 8080
    • qdrant: Qdrant на порту 6333
  4. Проверка работоспособности:

    • После запуска откройте браузер и перейдите по адресу http://localhost:8080/swagger для доступа к Swagger UI и тестирования эндпоинтов.
    • Проверьте логи в терминале для подтверждения индексации файлов.
  5. Остановка приложения:

    docker-compose down
    

    Для очистки тома Qdrant (данные будут удалены):

    docker-compose down -v