Dieses Projekt stammte aus einer einfachen Idee: Was wäre, wenn Sie einem LLM anstelle von kleinen Teilen eine gesamte Codebasis zur Verfügung stellen könnten? Die meisten Codierungsassistenten wie Co-Piloten arbeiten an einem begrenzten Bereich, aber ich wollte etwas, das den vollen Kontext eines Projekts bewältigen könnte.
Durch die Integration der vollständigen Codebasis in die Abruf-Generation (RAG) zielt dieser POC darauf ab, die Qualität und Relevanz von Codevorschlägen zu verbessern. Ziel ist es, zu sehen, wie der vollständige Code für Echtzeitabfragen die Produktivität verbessern kann.
Codierag ist ein KI-angetanter Code-Abruf- und Augmentation-Tool, mit dem die Modelle von OpenAI (wie gpt-4 oder gpt-3.5-turbo ) für Echtzeit-Codebasis-Abfragen, -indexierung und -verbesserung nutzt. Dieses Projekt integriert ein RAG-System (Abruf-Augmented Generation), um Entwicklern dabei zu helfen, den Code nahtlos zu durchsuchen, Vorschläge zu erhalten und Verbesserungen zu implementieren.
.env Datei für API-Schlüssel, Modellauswahl und Verzeichnisse verwaltet.git clone https://github.com/yourusername/CodeRAG.git
cd CodeRAGErstellen Sie eine virtuelle Umgebung (empfohlen):
python3 -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Installieren Sie die erforderlichen Pakete:
pip install -r requirements.txt Erstellen Sie eine .env -Datei im Stammvermögen des Projekts und fügen Sie die folgenden Variablen hinzu:
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 Starten Sie das Backend :
Um das Backend zu beginnen (Indizierung, Einbettungen und Überwachung):
python main.pyStarten Sie die Frontend :
So starten Sie die optimistische Benutzeroberfläche:
streamlit run app.pymain.py : Das Hauptskript zum Ausführen der Anwendung.prompt_flow.py : Die API von Openai abfragt und die Suche und den Konversationsverlauf verwaltet.coderag/config.py : Speichert Variablen Konfiguration und Umgebungsvariablen.coderag/search.py : Verwaltet Vektordatenbank (FAISS) Suchanfragen nach relevanten Codeausschnitten..env : Umgebungsspezifische Einstellungen (OpenAI-API-Schlüssel, Modellkonfiguration usw.).requirements.txt : Listet die Python -Abhängigkeiten auf, die für die Ausführung des Projekts erforderlich sind.Fühlen Sie sich frei, dieses Repository zu geben, Probleme zu öffnen und Pull -Anfragen einzureichen.
git checkout -b feature/your-feature ).git commit -am 'Add new feature' ).git push origin feature/your-feature ).Dieses Projekt ist unter der Apache -Lizenz lizenziert. Weitere Informationen finden Sie in der Lizenzdatei.