Этот проект реализует помощника для работы с кодом, используя Gradio для интерфейса и модель Qwen для генерации кода. Нужен для помощи с разработкой и обучением.
Проект создан в рамках обучающей программы на вебинаре.
- Интерфейс на основе Gradio: Простое веб-приложение для взаимодействия с помощником.
- Модель Qwen: Предобученная языковая модель для помощи в написании кода.
- Настраиваемые параметры: Возможность контролировать количество генерируемых токенов, температуру, и другие параметры через интерфейс.
model.pipeline
: Инициализация модели и токенизатораQwen2-7B-Instruct
, которые загружаются и используются для генерации ответов.- Интерфейс на основе Gradio: Окно чата, где пользователи могут отправлять запросы и получать ответы.
- Поддержка Docker:
Dockerfile
иdocker-compose.yml
для контейнеризации и запуска с поддержкой GPU через NVIDIA runtime.
Приложение обрабатывает ввод пользователя, передавая его в языковую модель. Модель генерирует ответ, который отображается через интерфейс Gradio. Весь контекст чата хранится во время диалога.
- Python: Версия 3.10 или выше.
- Docker: Для контейнеризированного запуска с поддержкой GPU.
-
Клонируйте репозиторий:
git clone https://github.com/KirillErokhin/code_helper.git cd code-helper
-
Создайте окружение и установите зависимости:
Если вы планируете запускать приложение локально, сначала создайте окружение, а затем установите необходимые пакеты Python:
pip install -r requirements.txt
-
Запуск с Docker:
Постройте и запустите приложение в контейнере с поддержкой GPU:
docker compose up --build
Это запустит интерфейс Gradio на порту
7860
. Откройте его в браузере по адресуhttp://localhost:7860
.
Чтобы запустить приложение без Docker:
python3 main.py
Интерфейс Gradio будет доступен через ваш браузер.
- Откройте веб-интерфейс
- Настройте параметры модели, такие как: промпт, количество токенов, температура и т.д. для кастомизации ответа.
- Введите запрос.
- Помощник сгенерирует код, который будет отображен в чате.
Напиши функцию на Python для реверса списка и добавь документацию к коду.
Сгенерированный ответ:
def reverse_list(lst):
"""
Реверсирует переданный список.
Параметры:
lst (list): Список, который нужно реверсировать.
Возвращает:
list: Новый список с элементами в обратном порядке.
"""
return lst[::-1]
- Вы можете изменить системный промпт в Gradio, чтобы настроить поведение модели.
- Для изменения портов или параметров контейнера отредактируйте файл
docker-compose.yml
.
- [] - Возможность добавления картинок на основе мультимодальных open source моделей
- [] - Поддержка FastAPI с стримингом и выводом в Gradio
- [] - Возможность выбора модели для инференса
- [] - Рефакторинг кода