Ce projet est venu d'une idée simple: que se passe-t-il si vous pouviez fournir une base de code entière à un LLM au lieu de simples petits morceaux? La plupart des assistants de codage, comme les copilotes, fonctionnent sur une portée limitée, mais je voulais quelque chose qui pourrait gérer le contexte complet d'un projet.
En intégrant la base de code complète à la génération (RAG) (RAG) de la récupération, ce POC vise à améliorer la qualité et la pertinence des suggestions de code. L'objectif est de voir comment avoir le code complet disponible pour la requête en temps réel peut améliorer la productivité.
Coderag est un outil de récupération et d'augmentation de code alimenté par AI qui exploite les modèles d'OpenAI (tels que gpt-4 ou gpt-3.5-turbo ) pour la requête, l'indexation et l'amélioration de la base de code en temps réel. Ce projet intègre un système de génération (RAG) (RAG) de la récupération pour aider les développeurs à rechercher de manière transparente via le code, à recevoir des suggestions et à mettre en œuvre des améliorations.
.env pour les clés API, la sélection du modèle et les répertoires.git clone https://github.com/yourusername/CodeRAG.git
cd CodeRAGCréer un environnement virtuel (recommandé):
python3 -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Installer les packages requis:
pip install -r requirements.txt Créez un fichier .env dans la racine du projet et ajoutez les variables suivantes:
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 Démarrez le backend :
Pour démarrer le backend (indexation, intégres et surveillance):
python main.pyDémarrez le frontend :
Pour lancer l'interface utilisateur rationalisée:
streamlit run app.pymain.py : le script principal pour exécuter l'application.prompt_flow.py : gère la question de l'interrogation de l'API d'Openai et gère la recherche et l'historique conversationnel.coderag/config.py : stocke les variables de configuration et d'environnement.coderag/search.py : gère la base de données vectorielle (FAISS) recherche des extraits de code pertinents..env : contient des paramètres spécifiques à l'environnement (touches API OpenI, configuration du modèle, etc.).requirements.txt : répertorie les dépendances Python nécessaires pour exécuter le projet.N'hésitez pas à alimenter ce référentiel, à ouvrir des problèmes et à soumettre des demandes de traction.
git checkout -b feature/your-feature ).git commit -am 'Add new feature' ).git push origin feature/your-feature ).Ce projet est sous licence Apache. Voir le fichier de licence pour plus de détails.