جاء هذا المشروع من فكرة بسيطة: ماذا لو كان بإمكانك توفير قاعدة كود كاملة إلى 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ابدأ الواجهة الأمامية :
لإطلاق واجهة المستخدم SPEMANLIT:
streamlit run app.pymain.py : البرنامج النصي الرئيسي لتشغيل التطبيق.prompt_flow.py : يتعامل مع Queryping 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. انظر ملف الترخيص للحصول على التفاصيل.