Демонстрация запуска и использования на Youtube:
Проект состоит из нескольких сервисов для работы с векторной базой данных на основе документации 1C:
- Embedding Service - сервис генерации векторных представлений
- ПолучитьТекстСтруктурыКонфигурацииФайлами.epf - обработка для выгрузки структуры конфигурации 1С
- Loader - веб-интерфейс для загрузки архива выгрузки из 1С в векторную БД Qdrant
- MCP Server - сервер для ответов на вопросы с использованием RAG
MCP сервер теперь поддерживает мультивекторный поиск с использованием RRF (Reciprocal Rank Fusion):
- Два векторных представления:
object_nameиfriendly_nameдля каждого объекта - RRF алгоритм: автоматическое объединение результатов поиска по разным векторам
- Улучшенная точность: более релевантные результаты поиска
- Backward compatibility: возможность отключить мультивекторный поиск
📖 Подробнее о мультивекторном поиске
chmod +x start.sh && chmod +x stop.sh
# Запуск всех сервисов
./start.sh
# Или вручную
docker-compose up --build# Остановка всех сервисов
./stop.sh
# Или вручную
docker-compose downПосле запуска будут доступны:
- Loader (Streamlit): http://localhost:8501 - веб-интерфейс для загрузки файлов
- Embedding Service: http://localhost:5000 - API для генерации эмбеддингов
- Qdrant: http://localhost:6333/dashboard - векторная база данных
- MCP Server: http://localhost:8000/mcp - сервер для ответов на вопросы
- MCP Inspector: http://localhost:6274 - веб-интерфейс проверки/отладки MCP серверов
mcp-1c-v1/
├── embeddings/ # Сервис генерации эмбеддингов
│ ├── Dockerfile
│ ├── embedding_service.py
│ ├── config.json
│ └── requirements.txt
├── loader/ # Веб-интерфейс для загрузки данных
│ ├── Dockerfile
│ ├── loader.py
│ ├── config.py
│ └── requirements.txt
├── mcp/ # MCP 1С RAG сервер
│ ├── Dockerfile
│ ├── mcp_server.py
│ ├── config.py
│ └── requirements.txt
├── inspector/ # MCP Inspector
│ ├── Dockerfile
│ ├── mcp_server.py
│ ├── config.py
│ └── requirements.txt
├── ПолучитьТекстСтруктурыКонфигурацииФайлами.epf # Обработка для 1С для выгрузки структуры
├── docker-compose.yml # Конфигурация всех сервисов
├── start.sh # Скрипт запуска
└── stop.sh # Скрипт остановки
- Запустите все сервисы:
./start.sh - Выгрузите описание структуры конфигурации из 1С:
ПолучитьТекстСтруктурыКонфигурацииФайлами.epf - Откройте веб-интерфейс загрузчика: http://youraddress:8501
- Загрузите ZIP-архив с markdown файлами и файлом objects.csv
- Нажмите "Начать обработку"
- После загрузки данные будут доступны в Qdrant для поиска через MCP Server
Для агентов (Cursor, RooCode) поддерживающих современный протокол Streamable HTTP, указываем: http://youaddress:8000/mcp Для VSCode Copilot, хоть и заявлена поддержка Streamable HTTP, но у меня работает только как SSE, поэтому указывал: http://youraddress:8000/mcp/sse
Для VSCode Copilot .../YourProject/.vscode/mcp.json
{
"servers": {
"my-1c-mcp-server": {
"headers": {
"x-collection-name": "my_vector_collection"
},
"url": "http://youraddress:8000/mcp/sse"
}
}
}Для Cursor .../YourProject/.cursor/mcp.json
{
"servers": {
"my-1c-mcp-server": {
"headers": {
"x-collection-name": "my_vector_collection"
},
"url": "http://youraddress:8000/mcp"
}
}
}Через заголовок x-collection-name можно указать имя коллекции в Qdrant вместо дефолтного 1c_rag. Т.к. настройки MCP почти везде можно указывать на уровне проекта, то это позволяет один и тот же инстанс MCP сервера использовать для разных проектов с разными коллекциями (для разных конфигураций 1С).
Можно настроить через переменные окружения:
EMBEDDING_SERVICE_URL- URL сервиса эмбеддингов (по умолчанию: http://youraddress:5000)QDRANT_HOST- хост Qdrant (по умолчанию: localhost)QDRANT_PORT- порт Qdrant (по умолчанию: 6333)COLLECTION_NAME- имя коллекции в Qdrant (по умолчанию: 1c_rag), который может быть переопределено в заголовкеx-collection-nameв настройках подключения MCP сервераROW_BATCH_SIZE- размер батча строк (по умолчанию: 250)EMBEDDING_BATCH_SIZE- размер батча эмбеддингов (по умолчанию: 50)
Для просмотра логов отдельного сервиса:
# Логи конкретного сервиса
docker-compose logs -f loader
docker-compose logs -f embedding-service
docker-compose logs -f qdrant
docker-compose logs -f mcp-server
# Логи всех сервисов
docker-compose logs -f