Архитектура:
- Приложение: Streamlit + LangGraph + PyTorch.
- Ollama (LLM): Запускается исходно в основной ОС (Windows/Mac) для обеспечения полной загрузки графического процессора. доступ без сложного сквозного доступа Docker. Приложение подключается через `http://host.docker.internal:11434`.
- Встраивания/переранжирование: Запуск внутри контейнера Docker с использованием преобразователей предложений и PyTorch.
- Обнаружение оборудования: У меня есть скрипт config.py, который использует torch.cuda.is_available(), чтобы обнаружить графический процессор и сообщить Олламе, следует ли извлекать большую модель () или облегченный (
Код: Выделить всё
gemma3:4b).Код: Выделить всё
gemma3:1b
- Универсальное распространение: Я хочу распространять приложение в формате ZIP. Пользователю нужно только установить Docker и Ollama, а затем запустить сценарий .bat.
- Интеллектуальное обнаружение оборудования: Поскольку сценарий обнаружения работает внутри Docker, как я могу позволить контейнеру «видеть», присутствует ли графический процессор NVIDIA (чтобы выбрать правильную модель), не заставляя весь контейнер представлять собой массивный базовый образ NVIDIA размером более 5 ГБ?
- Постоянство:
- Мне нужно смонтировать ./data/notebooks как том для пользовательских данных.
- Мне нужно сохранить кэш HuggingFace (), поэтому внедрения/переранжирование не загружаются повторно при каждом перезапуске контейнера.
Код: Выделить всё
\~/.cache/huggingface
- Резервный режим ЦП: Приложение должно работать на машинах только с ЦП (с использованием faiss-cpu и torch-cpu), но в идеале оно должно использовать графический процессор для встраивания, если у пользователя есть контейнер NVIDIA Инструментарий.
PlaintextRAG-Study-Assistant/
├── модули/ (логика RAG)
├── данные/
│ ├── блокноты/ (пользовательские файлы)
│
├── app.py / config.py