Синтакс-помощник 1С
Веб-интерфейс для семантического поиска по текстовым данным с использованием векторной базы данных Qdrant и моделей sentence-transformers.
Ключевые возможности
- Загрузка файлов: Поддерживаются форматы
.txt,.md,.bsl,.docx,.json. Возможна загрузка.zipархивов с файлами этих форматов. - Семантический поиск: Поиск по векторной базе данных с использованием ИИ-моделей.
- Управление коллекциями: Создание, удаление и просмотр содержимого коллекций (векторных пространств) в Qdrant.
- Администрирование:
- Просмотр логов сервера с пагинацией. - Перезапуск сервера через веб-интерфейс. - Просмотр содержимого коллекций с пагинацией.
Установка и запуск
Вариант 1: Локальная установка
1. Клонирование репозитория
git clone
cd 2. Установка зависимостей
pip install -r requirements.txt3. Запуск
python run.pyСервер будет доступен по адресу http://localhost:8123.
Вариант 2: Развертывание в Docker (рекомендуется)
Предварительные требования
- Docker Engine 20.10+
- Docker Compose 2.0+
1. Клонирование репозитория
git clone
cd 2. Сборка и запуск контейнера
# Остановка существующих контейнеров (если есть)
docker-compose down
# Сборка образа и запуск контейнера
docker-compose up --build -d
# Проверка статуса
docker-compose ps3. Проверка работоспособности
# Проверка логов контейнера
docker-compose logs -f
# Проверка доступности API
curl http://localhost:8123/api/collections4. Доступ к приложению
- Веб-интерфейс: http://localhost:8123
- API документация (Swagger): http://localhost:8123/docs
- Админ-панель: http://localhost:8123
Управление контейнером
# Остановка контейнера
docker-compose down
# Перезапуск контейнера
docker-compose restart
# Просмотр логов
docker-compose logs -f
# Обновление кода и пересборка
docker-compose down
docker-compose up --build -dAPI Endpoints
Поиск (POST)
POST /api/search/
Content-Type: application/json
{
"query": "ваш поисковый запрос",
"collection_name": "имя_коллекции",
"limit": 10,
"score_threshold": 0.5
}Коллекции
GET /api/collections- список коллекцийPOST /api/collections/{name}- создание коллекцииDELETE /api/collections/{name}- удаление коллекцииGET /api/collections/{name}/points- просмотр точек коллекции
Загрузка файлов
POST /upload- загрузка файлаGET /tasks/{task_id}- статус задачи загрузки
Администрирование
POST /api/admin/restart- перезапуск сервераGET /api/admin/logs/list- список лог-файловGET /api/admin/logs/view/{filename}- просмотр лога
Структура проекта
СинтаксисПомошник/
├── app/
│ ├── routers/
│ │ ├── admin.py # Администрирование
│ │ ├── collections.py # Управление коллекциями
│ │ ├── search.py # Семантический поиск
│ │ ├── upload.py # Загрузка файлов
│ │ └── web.py # Веб-страницы
│ ├── processing.py # Обработка текста
│ └── tasks.py # Фоновые задачи
├── templates/ # HTML-шаблоны
├── static/ # Статические файлы
├── logs/ # Логи приложения
├── qdrant_db/ # Локальная БД Qdrant
├── config.py # Конфигурация
├── main.py # Точка входа FastAPI
├── run.py # Скрипт запуска
├── Dockerfile # Docker-образ
├── docker-compose.yml # Docker Compose
└── requirements.txt # Зависимости PythonКонфигурация
Основные настройки в config.py:
MODEL_NAME: Модель для векторизации (по умолчанию: "Qwen/Qwen3-Embedding-0.6B")CHUNK_SIZE: Размер чанка текста (по умолчанию: 500 символов)CHUNK_OVERLAP: Перекрытие чанков (по умолчанию: 50 символов)QDRANT_DB_PATH: Путь к локальной БД Qdrant
Поддерживаемые форматы файлов
.txt- текстовые файлы.md- Markdown файлы.bsl- файлы 1С.os- файлы 1С.zip- архивы с файлами вышеуказанных форматов
Логирование
Логи сохраняются в директории logs/:
server.log- основной лог сервераserver.log.YYYY-MM-DD- архивированные логи по датам
Устранение неполадок
Контейнер не запускается
# Проверка логов
docker-compose logs
# Проверка портов
netstat -an | grep 8123
# Пересборка образа
docker-compose down
docker system prune -f
docker-compose up --build -dПроблемы с доступом к API
# Проверка статуса контейнера
docker-compose ps
# Проверка доступности
curl http://localhost:8123/api/collections
# Перезапуск контейнера
docker-compose restartОчистка данных
# Удаление контейнера и данных
docker-compose down -v
rm -rf qdrant_db/
rm -rf logs/Разработка
Локальная разработка
# Установка зависимостей для разработки
pip install -r requirements.txt
# Запуск в режиме разработки
python main.pyОтладка в Docker
# Запуск с выводом логов
docker-compose up
# Подключение к контейнеру
docker exec -it syntax-helper-web-1 bashЛицензия
[Укажите вашу лицензию]
