Этот проект направлен на использование возможностей крупных языковых моделей для поддержки кодирования.
Система включает в себя клиент и сервер. На стороне клиента существуют различные интересные функции, включая управление фрагментами, базовый интерфейс чат -ботов, выбор моделей, выбор запроса или режим обратной связи. На стороне сервера внедряется логика запроса / обратной связи, Fathermore, FastAPI используется для взаимодействия с API CATGPT.

- Разработайте удобный веб-интерфейс, используя FastAPI или колбу, который побуждает пользователей ввести описание своей проблемы кодирования.
- Интерфейс должен взаимодействовать с LLM для генерации соответствующего фрагмента кода на основе ввода пользователя.
Фронт-энд вводится из пользовательского интерфейса CHATGPT. Он взаимодействует с бэк-эндом с помощью WebSocket. Более подробно, фронт-конце требует пользовательского запроса и передает его на сервер по Websocket. Сервер получит результат от Chatgpt в режиме потоковой передачи FASTAPI, а затем отправит клиенту.
- Включите фиксатор, который позволяет пользователям предоставлять отзывы о сгенерированных фрагментах кода.
- Используйте эту обратную связь, чтобы уточнить будущие поколения.
Здесь есть два параметра -режим запроса и режим обратной связи. В режиме запроса подсказка кодирования используется методом подсказки цепочки мыслей. В режиме обратной связи подсказка обратной связи используется для уточнения отрицательных отзывов пользователя с помощью метода нескольких выстрелов (см. File server/prompts.py ).
Чтобы переключиться между двумя режимами, вы можете выбрать параметры, как ниже: 
- Разработайте сценарии для запуска и использования пользовательского LLM либо локально, либо на сервере GPU.
В папке custom_llm есть скрипт для запуска Custom LLM от vllm . Вы можете ввести свой URL в пользовательский интерфейс и нажать Сохранить: 
Кроме того, вы можете выбрать модель, которую вы хотите, из параметров ниже входного текстового поля. 
- Предоставьте DockerFile, а также инструкции по строительству и заведению приложения в качестве контейнера
Проект поддерживает строительные услуги Dockerfile (ы). Чтобы запустить клиентскую веб -страницу Docker Container, запустите:
cd client/
sudo docker build -t code-supporter-client:latest .
sudo docker run -d -p 8000:80 code-supporter-client:latest
С другой стороны, запустите контейнер Docker Server следующим образом:
cd server/
sudo docker build -t code-supporter-server:latest .
sudo docker run -p 7999:80 -e OPENAI_API_KEY=sk-... code-supporter-server:latest
Чтобы упростить, вы можете запустить клиент и сервер только одной командой (пожалуйста, измените OPENAI_API_KEY в docker-compose.yml ):
sudo docker compose up
В конце концов, перейдите на URL http://localhost:8000/ on Browser, чтобы начать общаться!
- Реализуйте функциональность в том же интерфейсе, чтобы отобразить список ранее сгенерированных фрагментов кода.
- Пользователи должны иметь возможность просматривать, просматривать и удалять эти фрагменты
Клиентская сторона реализует управление фрагментами, где используется localStorage клиента. Более подробно, localStorage - это словарь, в котором ключ - это conversation_id , значение - это разговоры по нескольким поворотам. Пример разговора:

Есть две основные папки, client и server . В то время как первый включает в себя код HTML/CSS/JavaScript, чтобы отобразить веб -страницу сторонника кода, более позднее содержит код сервера, написанный в Python.
В client папке наиболее важным кодом является файл js/chat.js , где он обрабатывает логику итерации сервера/клиента в папке server , использование файлов следующим образом:
apps.py : обслуживание fastapirouters : обрабатывать запросы FASTAPI WebSocket и ITRACT со стороной клиентаprompts.py : объявить подсказкиutils.py : некоторые поддерживающие функции