สคริปต์ Python เพื่อดึงข้อมูลจากเครื่องมือประเมินหนี้ทางเทคนิค (TD) สร้างพร้อมท์และดำเนินการแชทด้วย Large Language Model (LLM) ผ่าน Ollama API
ปัจจุบันต้นแบบรองรับ Arcan เป็นเครื่องมือประเมิน TD เท่านั้น นอกจากนี้ยังรองรับเฉพาะโครงการ Java เท่านั้น
ในอนาคตควรมีการขยายเพื่อรองรับโครงการ Designite และ C#
pip install -r requirements.txt
รันการวิเคราะห์เวอร์ชันเดียวบนโปรเจ็กต์ Java ที่คุณเลือก
ใช้ผลลัพธ์ของการวิเคราะห์ เรียกใช้การรวมเพื่อรวมผลลัพธ์ไว้ในไฟล์เดียว
ที่นี่เอาต์พุต Arcan อยู่ที่ ./arcanOutput/myproject
myproject และเราต้องการไฟล์ที่ผสานที่ ./genai4atdOutput/merger-output
genai4atdOutput/merger-output พื้นที่เก็บข้อมูลที่มีโปรเจ็กต์อยู่ที่ ./projects/myproject
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 ได้ API อยู่ที่ 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
myproject-evo และเราต้องการไฟล์ที่ผสานที่ ./genai4atdOutput/smell-track-output
genai4atdOutput/smell-track-output พื้นที่เก็บข้อมูลที่มีโปรเจ็กต์อยู่ที่ ./projects/myproject
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 ได้ API อยู่ที่ 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
) เพื่อระบุว่านี่คือการวิเคราะห์วิวัฒนาการ