git clone https://github.com/LOGIC-10/RepoAgent.git
cd RepoAgentPengaturan dengan PDM
Inisialisasi lingkungan virtual Python. Pastikan untuk menjalankan direktori CMD di /RepoAgent di bawah ini:
pdm venv create --name repoagentAktifkan lingkungan virtual
Instal dependensi menggunakan PDM
pdm installSebelum mengkonfigurasi parameter spesifik untuk repoagent, harap pastikan bahwa API OpenAI dikonfigurasi sebagai variabel lingkungan di baris perintah:
export OPENAI_API_KEY=YOUR_API_KEY # on Linux/Mac
set OPENAI_API_KEY=YOUR_API_KEY # on Windows
$Env :OPENAI_API_KEY = " YOUR_API_KEY " # on Windows (PowerShell) Masukkan direktori root repoagent dan coba perintah berikut di terminal:
repoagent run # this command will generate doc, or update docs(pre-commit-hook will automatically call this)
repoagent run --print-hierarchy # Print how repo-agent parse the target repoPerintah RUN mendukung bendera opsional berikut (jika diatur, akan mengganti default konfigurasi):
-m , -Teks --model : Menentukan model yang akan digunakan untuk penyelesaian. Default: gpt-3.5-turbo-t , --temperature Float: Mengatur suhu generasi untuk model. Nilai yang lebih rendah membuat model lebih deterministik. Default: 0.2-r , --request-timeout Integer: Menentukan batas waktu dalam hitungan detik untuk permintaan API. Default: 60-b , --base-url URL: URL dasar untuk panggilan API. Default: https://api.openai.com/v1-tp , --target-repo-path Path: Jalur sistem file ke repositori target. Digunakan sebagai root untuk pembuatan dokumentasi. Default: path/to/your/target/repository-hp , --hierarchy-path : Nama atau jalur untuk file hierarki proyek, yang digunakan untuk mengatur struktur dokumentasi. Default: .project_doc_record-mdp , --markdown-docs-path Text: Jalur folder di mana dokumentasi Markdown akan disimpan atau dihasilkan. Default: markdown_docs-i , --ignore-list Text: Daftar file atau direktori untuk diabaikan selama pembuatan dokumentasi, dipisahkan oleh koma.-l , -Teks --language : Kode ISO 639 atau nama bahasa untuk dokumentasi. Default: Chinese-ll , --log-level [Debug | Info | Peringatan | Kesalahan | Critical]: Mengatur level logging untuk aplikasi. Default: INFOAnda juga dapat mencoba fitur berikut
repoagent clean # Remove repoagent-related cache
repoagent diff # Check what docs will be updated/generated based on current code changeJika ini adalah pertama kalinya Anda menghasilkan dokumentasi untuk repositori target, RepoAgent akan secara otomatis membuat file JSON yang mempertahankan informasi struktur global dan folder bernama Markdown_Docs di direktori root dari repositori target untuk menyimpan dokumen.
Setelah Anda awalnya menghasilkan dokumentasi global untuk repositori target, atau jika proyek yang Anda kloning sudah berisi informasi dokumentasi global, Anda kemudian dapat secara mulus dan otomatis memelihara dokumentasi proyek internal dengan tim Anda dengan mengonfigurasi kait pra-komit di repositori target!
pre-commitRepoagent saat ini mendukung pembangkit dokumentasi untuk proyek, yang membutuhkan beberapa konfigurasi di repositori target.
Pertama, pastikan bahwa repositori target adalah repositori git dan telah diinisialisasi.
git initInstal pra-komit di repositori target untuk mendeteksi perubahan dalam repositori git.
pip install pre-commit Buat file bernama .pre-commit-config.yaml di direktori root dari repositori target. Contohnya adalah sebagai berikut:
repos :
- repo : local
hooks :
- id : repo-agent
name : RepoAgent
entry : repoagent
language : system
pass_filenames : false # prevent from passing filenames to the hook
# You can specify the file types that trigger the hook, but currently only python is supported.
types : [python]Untuk metode konfigurasi spesifik kait, silakan merujuk ke pra-komit. Setelah mengkonfigurasi file YAML, jalankan perintah berikut untuk menginstal Hook.
pre-commit installDengan cara ini, setiap komit git akan memicu kait repoagent, secara otomatis mendeteksi perubahan dalam repositori target dan menghasilkan dokumen yang sesuai. Selanjutnya, Anda dapat membuat beberapa modifikasi pada repositori target, seperti menambahkan file baru ke repositori target, atau memodifikasi file yang ada. Anda hanya perlu mengikuti alur kerja git normal: git add, git commit -m "pesan komit Anda", git dorong kait repoagent akan secara otomatis memicu di git komit, mendeteksi file yang Anda tambahkan pada langkah sebelumnya, dan menghasilkan dokumen yang sesuai.
Setelah dieksekusi, RepoAgent akan secara otomatis memodifikasi file yang dipentaskan di repositori target dan secara formal mengirimkan komit. Setelah eksekusi selesai, "lulus" hijau akan ditampilkan, seperti yang ditunjukkan pada gambar di bawah ini:
Dokumen yang dihasilkan akan disimpan dalam folder yang ditentukan di direktori root gudang target. Rendering dokumen yang dihasilkan seperti yang ditunjukkan di bawah ini:
Kami menggunakan model default GPT-3.5-Turbo untuk menghasilkan dokumentasi untuk proyek XAGENT , yang terdiri dari sekitar 270.000 baris kode. Anda dapat melihat hasil generasi ini di direktori Markdown_Docs dari Proyek Xagent di GitHub. Untuk kualitas dokumentasi yang ditingkatkan, kami sarankan mempertimbangkan model yang lebih canggih seperti GPT-4-1106 atau GPT-4-0125-preview .
Pada akhirnya, Anda dapat secara fleksibel menyesuaikan format output, templat, dan aspek lain dari dokumen dengan menyesuaikan prompt. Kami sangat senang dengan eksplorasi Anda tentang pendekatan yang lebih ilmiah untuk penulisan teknis otomatis dan kontribusi Anda kepada masyarakat.
Kami mengkonseptualisasikan obrolan dengan repo sebagai gateway terpadu untuk aplikasi hilir ini, bertindak sebagai konektor yang menghubungkan repoagen dengan pengguna manusia dan agen AI lainnya. Penelitian di masa depan kami akan fokus pada mengadaptasi antarmuka ke berbagai aplikasi hilir dan menyesuaikannya untuk memenuhi karakteristik unik dan persyaratan implementasi mereka.
Di sini kami menunjukkan prototipe awal dari salah satu tugas hilir kami: Tanya Jawab Otomatis untuk masalah dan penjelasan kode. Anda dapat memulai server dengan menjalankan kode berikut.
pip install repoagent[chat-with-repo]
repoagent chat-with-repoBerikut adalah kasus unggulan yang telah mengadopsi repoagent.
@misc { luo2024repoagent ,
title = { RepoAgent: An LLM-Powered Open-Source Framework for Repository-level Code Documentation Generation } ,
author = { Qinyu Luo and Yining Ye and Shihao Liang and Zhong Zhang and Yujia Qin and Yaxi Lu and Yesai Wu and Xin Cong and Yankai Lin and Yingli Zhang and Xiaoyin Che and Zhiyuan Liu and Maosong Sun } ,
year = { 2024 } ,
eprint = { 2402.16667 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL }
}