Proyek ini berasal dari ide sederhana: bagaimana jika Anda bisa memberikan seluruh basis kode ke LLM, bukan hanya potongan -potongan kecil? Sebagian besar asisten pengkodean, seperti co-pilot, bekerja pada ruang lingkup terbatas, tetapi saya menginginkan sesuatu yang dapat menangani konteks penuh dari suatu proyek.
Dengan mengintegrasikan basis kode lengkap dengan Retrieval-Agusted Generation (RAG), POC ini bertujuan untuk meningkatkan kualitas dan relevansi saran kode. Tujuannya adalah untuk melihat bagaimana memiliki kode lengkap yang tersedia untuk kueri waktu-nyata dapat meningkatkan produktivitas.
Coderag adalah alat pengambilan kode dan augmentasi yang bertenaga AI yang memanfaatkan model OpenAI (seperti gpt-4 atau gpt-3.5-turbo ) untuk quering, pengindeksan, dan peningkatan codebase real-time. Proyek ini mengintegrasikan sistem Pengambilan-Agung (RAG) untuk membantu pengembang mencari kode yang mulus melalui kode, menerima saran, dan mengimplementasikan perbaikan.
.env untuk tombol API, pemilihan model, dan direktori.git clone https://github.com/yourusername/CodeRAG.git
cd CodeRAGBuat lingkungan virtual (disarankan):
python3 -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Instal Paket yang Diperlukan:
pip install -r requirements.txt Buat file .env di root proyek dan tambahkan variabel berikut:
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 Mulailah backend :
Untuk memulai backend (pengindeksan, embeddings, dan pemantauan):
python main.pyMulai frontend :
Untuk meluncurkan UI StreamLit:
streamlit run app.pymain.py : Script utama untuk menjalankan aplikasi.prompt_flow.py : Menangani permintaan API Openai dan mengelola sejarah pencarian dan percakapan.coderag/config.py : Menyimpan variabel konfigurasi dan lingkungan.coderag/search.py : Mengelola Vektor Database (FAISS) mencari cuplikan kode yang relevan..env : Memegang pengaturan khusus lingkungan (tombol API OpenAI, konfigurasi model, dll.).requirements.txt : Daftar dependensi Python yang diperlukan untuk menjalankan proyek.Jangan ragu untuk membayar repositori ini, membuka masalah, dan mengirimkan permintaan tarik.
git checkout -b feature/your-feature ).git commit -am 'Add new feature' ).git push origin feature/your-feature ).Proyek ini dilisensikan di bawah lisensi Apache. Lihat file lisensi untuk detailnya.