برامج Python النصية لاستخراج البيانات من أدوات تقييم الديون الفنية (TD)، وإنشاء المطالبات وتشغيل الدردشات باستخدام نموذج لغة كبير (LLM) من خلال واجهة برمجة تطبيقات Ollama.
حاليًا، يدعم النموذج الأولي Arcan فقط كأداة لتقييم TD. كما أنه يدعم مشاريع Java فقط.
يجب أن يتم توسيعه في المستقبل لدعم مشاريع Designite وC#.
pip install -r requirements.txt
قم بتشغيل تحليل إصدار واحد على مشروع Java الذي تختاره.
باستخدام مخرجات التحليل، قم بتشغيل عملية الدمج لدمج النتائج في ملف واحد.
يوجد هنا مخرج Arcan في ./arcanOutput/myproject
ونريد الملف المدمج في ./genai4atdOutput/merger-output
. يقع المستودع الذي يحتوي على المشروع في ./projects/myproject
.
python merger_run.py ./arcanOutput/myproject ./genai4atdOutput/merger-output JAVA -r ./projects/myproject -e
نريد إنشاء ملف أمثلة، وهو ملف يحتوي على رائحة واحدة من كل نوع مسترجعة من البيانات، لذلك سوف نستخدم خيار --examples
( -e
).
من الممكن لعملية الدمج أيضًا استرداد الأسطر الكاملة من الرموز حيث يتم استخدام كل تبعية في الفصل الدراسي، باستخدام خيار --loc
( -l
). أما الآن، فهي لم تعطنا نتائج رائعة مع LLM، ونحن لا نوصي بها.
الآن لدينا الملف المدمج على ./genai4atdOutput/merger-output/myproject-merged.csv
وملف المثال على ./genai4atdOutput/merger-output/myproject-merged-examples.csv.
بعد ذلك نحتاج إلى إنشاء الملف الفوري.
python build_prompt_run.py ./genai4atdOutput/merger-output/myproject-merged-examples.csv ./genai4atdOutput/prompts-output JAVA -dep -def --json
نريد تضمين تبعيات كل مكون في الموجه بالإضافة إلى تعريفات الروائح والمقاييس (من وثائق Arcan) في السياق، لذلك نستخدم خيارات --dependencies
( -dep
) و --definitions
( -def
).
نريد أيضًا بيانات الرائحة بتنسيق JSON. يمكننا كتابتها باللغة الطبيعية، لكنها أعطتنا مطالبات أطول ولم تكن أفضل من نتائج JSON.
الآن لدينا ملف المطالبة على ./genai4atdOutput/prompts-output/json/defs/prompt_with_dependencies.json
أخيرًا، يمكننا تشغيل الدردشة مع LLM. واجهة برمجة التطبيقات موجودة على http://localhost:11434/api/chat
ونريد استخدام نموذج Llama 3.
python chat_run.py ./genai4atdOutput/prompts-output/json/defs/prompt_with_dependencies.json ./genai4atdOutput/chats-output http://localhost:11434/api/chat llama3 --json -def
خيارات --json
و- -def
لتحديد أن الموجه بتنسيق JSON ويحتوي على تعريفات.
قم بإجراء تحليل التطور في مشروع Java الذي تختاره.
باستخدام مخرجات التحليل، قم بتشغيل جهاز تعقب الرائحة. وسوف يتتبع الروائح عبر الإصدار لمعرفة ما إذا كانت تزيد أو تنقص أو تختفي. عندما يكون هناك اختلاف أو اختفاء، يمكنه أيضًا استرداد سجل الاختلاف و/أو الالتزام للمكونات ذات الصلة.
يوجد هنا مخرج Arcan في ./arcanOutput/myproject-evo
ونريد الملف المدمج في ./genai4atdOutput/smell-track-output
. يقع المستودع الذي يحتوي على المشروع في ./projects/myproject
.
python smell_tracker_run.py ./arcanOutput/myproject ./genai4atdOutput/smell-track-output ./projects/myproject JAVA -diffs -commits -e
نريد الاختلافات وسجلات الالتزام للمكونات ذات الصلة عندما يكون هناك اختلاف، وأيضًا ملف أمثلة يحتوي فقط على الروائح التي اختفت أو اختفت، لذلك نستخدم --ATDIVarDiffs
( -diffs
)، --ATDIVarCommitHistory
( -commits
) و --examples
( -e
) الخيارات.
الآن لدينا ملف تتبع الرائحة على ./genai4atdOutput/smell-track-output/smell_track_myproject_evo.json
وملف المثال على ./genai4atdOutput/smell-track-output/smell_track_myproject_evo_example.json
بعد ذلك يمكننا تشغيل الدردشة مع LLM. واجهة برمجة التطبيقات موجودة على http://localhost:11434/api/chat
ونريد استخدام نموذج Llama 3.
python chat_run.py ./genai4atdOutput/smell-track-output/myproject_evo_smell_track_example.json ./genai4atdOutput/chats-output http://localhost:11434/api/chat llama3 -evo
نحن نستخدم خيار --evolution
( -evo
) لتحديد أن هذا تحليل تطور.