Этот проект исходил из простой идеи: что, если бы вы могли предоставить целую кодовую базу LLM вместо небольших кусочков? Большинство ассистентов по кодированию, такие как со-пилоты, работают над ограниченным объемом, но я хотел что-то, что могло бы справиться с полным контекстом проекта.
Интегрируя полную кодовую базу с поколением-поисковой генерацией (RAG), этот POC стремится улучшить качество и актуальность предложений кода. Цель состоит в том, чтобы увидеть, как наличие полного кода, доступного для запросов в реальном времени, может повысить производительность.
Coderag-это инструмент для поиска кода и увеличения кода, который использует модели OpenAI (такие как gpt-4 или gpt-3.5-turbo ) для запросов, индексации и улучшения в режиме реального времени. Этот проект интегрирует систему поиска-аугмента (RAG), чтобы помочь разработчикам плавно искать код, получать предложения и внедрить улучшения.
.env для клавиш API, выбора модели и каталогов.git clone https://github.com/yourusername/CodeRAG.git
cd CodeRAGСоздайте виртуальную среду (рекомендуется):
python3 -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Установите необходимые пакеты:
pip install -r requirements.txt Создайте файл .env в корне проекта и добавьте следующие переменные:
OPENAI_API_KEY=your_openai_api_key
OPENAI_EMBEDDING_MODEL=text-embedding-ada-002
OPENAI_CHAT_MODEL=gpt-4o
WATCHED_DIR=path_to_your_code_directory
FAISS_INDEX_FILE=path_to_faiss_index
EMBEDDING_DIM=1536 # Modify if you're using a different embedding model Начните бэкэнд :
Чтобы запустить бэкэнд (индексация, внедрения и мониторинг):
python main.pyНачните фронт :
Чтобы запустить пользовательский интерфейс:
streamlit run app.pymain.py : основной сценарий для запуска приложения.prompt_flow.py : обрабатывает запрос API OpenAI и управляет поиском и разговорной историей.coderag/config.py : хранит конфигурацию и переменные среды.coderag/search.py : управляет векторной базой данных (FAISS) для поиска соответствующих фрагментов кода..env : удерживает настройки, специфичные для среды (клавиши API OpenAI, конфигурация модели и т. Д.).requirements.txt : перечисляет зависимости от питона, необходимые для запуска проекта.Не стесняйтесь раскошелиться на этот репозиторий, открыть проблемы и отправлять запросы на привлечение.
git checkout -b feature/your-feature ).git commit -am 'Add new feature' ).git push origin feature/your-feature ).Этот проект лицензирован по лицензии Apache. Смотрите файл лицензии для получения подробной информации.