Skrip Python untuk mengekstrak data dari alat penilaian utang teknis (TD), membuat perintah, dan menjalankan obrolan dengan Model Bahasa Besar (LLM) melalui API Ollama.
Saat ini prototipe hanya mendukung Arcan sebagai alat penilaian TD. Ini juga hanya mendukung proyek Java.
Ini harus diperluas di masa depan untuk mendukung proyek Designite dan C#.
pip install -r requirements.txt
Jalankan analisis satu versi pada proyek Java pilihan Anda.
Dengan menggunakan keluaran analisis, jalankan penggabungan untuk menggabungkan hasilnya dalam satu file.
Di sini keluaran Arcan terletak di ./arcanOutput/myproject
dan kami ingin file gabungan di ./genai4atdOutput/merger-output
. Repositori yang berisi proyek terletak di ./projects/myproject
.
python merger_run.py ./arcanOutput/myproject ./genai4atdOutput/merger-output JAVA -r ./projects/myproject -e
Kita ingin membuat file contoh, yaitu file yang berisi satu bau dari setiap jenis yang diambil dari data, jadi kita akan menggunakan opsi --examples
( -e
).
Penggabungan dapat dilakukan untuk mengambil tambahan baris kode lengkap tempat setiap dependensi digunakan dalam suatu kelas, menggunakan opsi --loc
( -l
). Untuk saat ini, LLM belum memberi kami hasil yang bagus, kami tidak merekomendasikannya.
Sekarang kita memiliki file gabungan di ./genai4atdOutput/merger-output/myproject-merged.csv
dan file contoh di ./genai4atdOutput/merger-output/myproject-merged-examples.csv.
Selanjutnya kita perlu membuat file prompt.
python build_prompt_run.py ./genai4atdOutput/merger-output/myproject-merged-examples.csv ./genai4atdOutput/prompts-output JAVA -dep -def --json
Kami ingin dependensi setiap komponen dalam prompt serta definisi bau dan metrik (dari dokumentasi Arcan) disertakan dalam konteksnya, jadi kami menggunakan opsi --dependencies
( -dep
) dan --definitions
( -def
).
Kami juga menginginkan data bau dalam format JSON. Kami dapat menulisnya dalam bahasa alami, tetapi ini memberi kami petunjuk yang lebih panjang dan tidak ada hasil yang lebih baik daripada JSON.
Sekarang kita memiliki file prompt di ./genai4atdOutput/prompts-output/json/defs/prompt_with_dependencies.json
Terakhir, kita bisa menjalankan chat dengan LLM. API-nya ada di http://localhost:11434/api/chat
dan kami ingin menggunakan model 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
Opsi --json
dan -def
untuk menentukan bahwa prompt dalam format JSON dan berisi definisi.
Jalankan analisis evolusi pada proyek Java pilihan Anda.
Dengan menggunakan keluaran analisis, jalankan pelacak bau. Ini akan melacak bau di seluruh versi untuk melihat apakah baunya bertambah, berkurang, atau hilang. Ketika ada variasi atau hilangnya, ia juga dapat mengambil riwayat diff dan/atau commit dari komponen yang relevan.
Di sini keluaran Arcan terletak di ./arcanOutput/myproject-evo
dan kami ingin file gabungan di ./genai4atdOutput/smell-track-output
. Repositori yang berisi proyek terletak di ./projects/myproject
.
python smell_tracker_run.py ./arcanOutput/myproject ./genai4atdOutput/smell-track-output ./projects/myproject JAVA -diffs -commits -e
Kami menginginkan diffs dan commit history dari komponen yang relevan ketika ada variasi, dan juga file contoh yang hanya berisi bau yang bervariasi atau hilang, jadi kami menggunakan --ATDIVarDiffs
( -diffs
), --ATDIVarCommitHistory
( -commits
) dan --examples
( -e
) pilihan.
Sekarang kita memiliki file track bau di ./genai4atdOutput/smell-track-output/smell_track_myproject_evo.json
dan file contoh di ./genai4atdOutput/smell-track-output/smell_track_myproject_evo_example.json
Selanjutnya kita bisa menjalankan chat dengan LLM. API-nya ada di http://localhost:11434/api/chat
dan kami ingin menggunakan model 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
Kami menggunakan opsi --evolution
( -evo
) untuk menentukan bahwa ini adalah analisis evolusi.