يهدف هذا المشروع إلى الاستفادة من إمكانات نموذج اللغة الكبيرة لدعم الترميز.
يتضمن النظام العميل والخادم. على جانب العميل ، هناك العديد من الميزات المثيرة للاهتمام بما في ذلك إدارة مقتطفات ، وواجهة chatbot الأساسية ، واختيار النماذج ، واختيار الاستعلام أو وضع التعليقات. على جانب الخادم ، يتم تطبيق منطق الاستعلام / التغذية المرتدة ، ويتم استخدام Fastapi للتفاعل مع واجهات برمجة تطبيقات ChatGPT.

- قم بتطوير واجهة ويب سهلة الاستخدام باستخدام fastapi أو قارورة تدفع المستخدمين إلى إدخال وصف لمشكلة الترميز الخاصة بهم.
- يجب أن تتفاعل الواجهة مع LLM لإنشاء مقتطف رمز مقابل بناءً على إدخال المستخدم.
الواجهة الأمامية مستمدة من chatgpt واجهة المستخدم. يتفاعل مع الخلفية باستخدام WebSocket. في مزيد من التفاصيل ، يأخذ الواجهة الأمامية استعلام المستخدم ونقله إلى الخادم بواسطة WebSocket. سيحصل الخادم على ناتج عن chatgpt بواسطة وضع دفق fastapi ثم إعادة إرساله إلى العميل.
- قم بدمج صورة يتيح للمستخدمين تقديم ملاحظات على مقتطفات التعليمات البرمجية التي تم إنشاؤها.
- الاستفادة من هذه الملاحظات لتحسين الأجيال القادمة.
هنا ، هناك خياران وضع استعلام ووضع التغذية المرتدة. في وضع الاستعلام ، يتم استخدام موجه الترميز عن طريق تقنية المطالبة بالسلسلة. في وضع التغذية المرتدة ، يتم استخدام موجه التغذية المرتدة لتحسين التعليقات السلبية للمستخدم من خلال تقنية قليلة الطالبة (انظر server/prompts.py ).
للتبديل بين وضعين ، يمكنك اختيار خيارات مثل أدناه: 
- تطوير البرامج النصية لتشغيل واستخدام LLM مخصص إما محليًا أو على خادم GPU.
في مجلد custom_llm ، يوجد برنامج نصي لتشغيل LLM Custom by vllm . يمكنك إدخال عنوان URL الخاص بك إلى واجهة المستخدم والنقر فوق حفظ: 
بالإضافة إلى ذلك ، يمكنك اختيار الطراز الذي تريده من خيارات أسفل مربع نص الإدخال. 
- قدم dockerfile جنبا إلى جنب مع تعليمات لبناء وتشغيل التطبيق كحاوية
يدعم المشروع خدمات البناء بواسطة Dockerfile (S). لتشغيل حاوية Docker صفحة ويب العميل ، قم بتشغيل:
cd client/
sudo docker build -t code-supporter-client:latest .
sudo docker run -d -p 8000:80 code-supporter-client:latest
من ناحية أخرى ، قم بتشغيل حاوية Docker خادم كما يلي:
cd server/
sudo docker build -t code-supporter-server:latest .
sudo docker run -p 7999:80 -e OPENAI_API_KEY=sk-... code-supporter-server:latest
لتبسيط ، يمكنك تشغيل العميل والخادم من خلال أمر واحد فقط (يرجى تغيير OPENAI_API_KEY في docker-compose.yml ):
sudo docker compose up
بعد كل شيء ، انتقل إلى url http://localhost:8000/ on browser لبدء الدردشة!
- قم بتنفيذ الوظائف داخل الواجهة نفسها لعرض قائمة بمقتطفات التعليمات البرمجية التي تم إنشاؤها مسبقًا.
- يجب أن يكون المستخدمون قادرين على عرض هذه المقتطفات ومراجعتها وحذفها
يقوم جانب العميل بتنفيذ إدارة المقتطف حيث يتم استخدام localStorage من العميل. في مزيد من التفاصيل ، يعد localStorage قاموسًا حيث يكون المفتاح conversation_id ، والقيمة هي تحويلات في منعطفات متعددة. مثال محادثة:

هناك نوعان من المجلدات الرئيسية ، client server . على الرغم من أن أول واحد يتضمن رمز HTML/CSS/JavaScript لتقديم صفحة ويب مؤيدي الرمز ، فإن اللاحق يحتوي على رمز الخادم مكتوب في Python.
في مجلد client ، فإن الرمز الأكثر أهمية هو ملف js/chat.js ، حيث يتعامل مع منطق تكرار الخادم/العميل في مجلد server ، واستخدام الملفات على النحو التالي:
apps.py : خدمة fastapirouters : تعامل مع طلبات websocket fastapi والتكرار مع جانب العميلprompts.py : إعلان المطالباتutils.py : بعض الوظائف الداعمة