code2prompt
adalah alat baris perintah (CLI) yang mengubah basis kode Anda menjadi satu prompt LLM dengan pohon sumber, templating prompt, dan penghitungan token.
Anda dapat menjalankan alat ini di seluruh direktori dan itu akan menghasilkan perintah Penurunan Harga yang diformat dengan baik yang merinci struktur pohon sumber, dan semua kode. Anda kemudian dapat mengunggah dokumen ini ke model GPT atau Claude dengan jendela konteks lebih tinggi dan memintanya untuk:
.gitignore
.Anda dapat mengkustomisasi template prompt untuk mencapai kasus penggunaan yang diinginkan. Ini pada dasarnya melintasi basis kode dan membuat prompt dengan semua file sumber digabungkan. Singkatnya, ini mengotomatiskan penyalinan dan penempelan beberapa file sumber ke dalam prompt Anda dan memformatnya serta memberi tahu Anda berapa banyak token yang digunakan kode Anda.
Unduh biner terbaru untuk OS Anda dari Rilis.
Memerlukan:
git clone https://github.com/mufeedvh/code2prompt.git
cd code2prompt/
cargo build --release
menginstal dari registri crates.io
.
cargo install code2prompt
Untuk bangunan yang tidak dipublikasikan:
cargo install --git https://github.com/mufeedvh/code2prompt
code2prompt
tersedia di AUR
. Instal melalui pembantu AUR mana pun.
paru/yay -S code2prompt
Jika Anda menggunakan nix, Anda dapat menggunakan nix-env
atau profile
untuk menginstal.
# without flakes:
nix-env -iA nixpkgs.code2prompt
# with flakes:
nix profile install nixpkgs#code2prompt
Hasilkan prompt dari direktori basis kode:
code2prompt path/to/codebase
Gunakan file templat Setang khusus:
code2prompt path/to/codebase -t path/to/template.hbs
Filter file menggunakan pola glob:
code2prompt path/to/codebase --include= " *.rs,*.toml "
Kecualikan file menggunakan pola glob:
code2prompt path/to/codebase --exclude= " *.txt,*.md "
Kecualikan file/folder dari pohon sumber berdasarkan pola pengecualian:
code2prompt path/to/codebase --exclude= " *.npy,*.wav " --exclude-from-tree
Tampilkan jumlah token dari prompt yang dihasilkan:
code2prompt path/to/codebase --tokens
Tentukan tokenizer untuk jumlah token:
code2prompt path/to/codebase --tokens --encoding=p50k
Tokenizer yang didukung: cl100k
, p50k
, p50k_edit
, r50k_bas
.
Catatan
Lihat Tokenizer untuk lebih jelasnya.
Simpan prompt yang dihasilkan ke file output:
code2prompt path/to/codebase --output=output.txt
Cetak keluaran sebagai JSON:
code2prompt path/to/codebase --json
Output JSON akan memiliki struktur berikut:
{
"prompt" : " <Generated Prompt> " ,
"directory_name" : " codebase " ,
"token_count" : 1234 ,
"model_info" : " ChatGPT models, text-embedding-ada-002 " ,
"files" : []
}
Hasilkan pesan komit Git (untuk file bertahap):
code2prompt path/to/codebase --diff -t templates/write-git-commit.hbs
Hasilkan Permintaan Tarik dengan perbandingan cabang (untuk file bertahap):
code2prompt path/to/codebase --git-diff-branch ' main, development ' --git-log-branch ' main, development ' -t templates/write-github-pull-request.hbs
Tambahkan nomor baris ke blok kode sumber:
code2prompt path/to/codebase --line-number
Nonaktifkan kode pembungkus di dalam blok kode penurunan harga:
code2prompt path/to/codebase --no-codeblock
Saya awalnya menulis ini untuk penggunaan pribadi untuk memanfaatkan jendela konteks 200K Claude 3.0 dan ini telah terbukti sangat berguna jadi saya memutuskan untuk menjadikannya sumber terbuka!
code2prompt
hadir dengan serangkaian templat bawaan untuk kasus penggunaan umum. Anda dapat menemukannya di direktori templates
.
document-the-code.hbs
Gunakan templat ini untuk menghasilkan perintah untuk mendokumentasikan kode. Ini akan menambahkan komentar dokumentasi ke semua fungsi publik, metode, kelas dan modul dalam basis kode.
find-security-vulnerabilities.hbs
Gunakan templat ini untuk menghasilkan perintah untuk menemukan potensi kerentanan keamanan di basis kode. Ini akan mencari masalah keamanan umum dan memberikan rekomendasi tentang cara memperbaiki atau memitigasinya.
clean-up-code.hbs
Gunakan templat ini untuk menghasilkan perintah untuk membersihkan dan meningkatkan kualitas kode. Ini akan mencari peluang untuk meningkatkan keterbacaan, kepatuhan terhadap praktik terbaik, efisiensi, penanganan kesalahan, dan banyak lagi.
fix-bugs.hbs
Gunakan templat ini untuk menghasilkan perintah untuk memperbaiki bug di basis kode. Ini akan membantu mendiagnosis masalah, memberikan saran perbaikan, dan memperbarui kode dengan usulan perbaikan.
write-github-pull-request.hbs
Gunakan templat ini untuk membuat deskripsi permintaan tarik GitHub dalam penurunan harga dengan membandingkan git diff dan git log dari dua cabang.
write-github-readme.hbs
Gunakan templat ini untuk menghasilkan file README berkualitas tinggi untuk proyek tersebut, cocok untuk dihosting di GitHub. Ini akan menganalisis basis kode untuk memahami tujuan dan fungsinya, dan menghasilkan konten README dalam format Markdown.
write-git-commit.hbs
Gunakan templat ini untuk menghasilkan komitmen git dari file bertahap di direktori git Anda. Ini akan menganalisis basis kode untuk memahami tujuan dan fungsinya, dan menghasilkan konten pesan git commit dalam format Markdown.
improve-performance.hbs
Gunakan templat ini untuk menghasilkan petunjuk guna meningkatkan kinerja basis kode. Ini akan mencari peluang pengoptimalan, memberikan saran spesifik, dan memperbarui kode dengan perubahan.
Anda dapat menggunakan templat ini dengan meneruskan tanda -t
diikuti dengan jalur ke file templat. Misalnya:
code2prompt path/to/codebase -t templates/document-the-code.hbs
code2prompt
mendukung penggunaan variabel yang ditentukan pengguna di templat Setang. Variabel apa pun dalam templat yang bukan bagian dari konteks default ( absolute_code_path
, source_tree
, files
) akan diperlakukan sebagai variabel buatan pengguna.
Selama pembuatan prompt, code2prompt
akan meminta pengguna memasukkan nilai untuk variabel yang ditentukan pengguna ini. Hal ini memungkinkan penyesuaian lebih lanjut dari perintah yang dihasilkan berdasarkan masukan pengguna.
Misalnya, jika templat Anda menyertakan {{challenge_name}}
dan {{challenge_description}}
, Anda akan diminta memasukkan nilai untuk variabel ini saat menjalankan code2prompt
.
Fitur ini memungkinkan pembuatan templat yang dapat digunakan kembali dan disesuaikan dengan berbagai skenario berdasarkan informasi yang diberikan pengguna.
Tokenisasi diimplementasikan menggunakan tiktoken-rs
. tiktoken
mendukung pengkodean berikut yang digunakan oleh model OpenAI:
Pengkodean nama | model OpenAI |
---|---|
cl100k_base | Model ChatGPT, text-embedding-ada-002 |
p50k_base | Model kode, text-davinci-002 , text-davinci-003 |
p50k_edit | Gunakan untuk model edit seperti text-davinci-edit-001 , code-davinci-edit-001 |
r50k_base (atau gpt2 ) | Model GPT-3 seperti davinci |
Untuk konteks lebih lanjut tentang berbagai tokenizer, lihat OpenAI Cookbook
code2prompt
memudahkan pembuatan prompt untuk LLM dari basis kode Anda. Itu melintasi direktori, membangun struktur pohon, dan mengumpulkan informasi tentang setiap file. Anda dapat menyesuaikan pembuatan prompt menggunakan templat Setang. Prompt yang dihasilkan secara otomatis disalin ke clipboard Anda dan juga dapat disimpan ke file output. code2prompt
membantu menyederhanakan proses pembuatan perintah LLM untuk analisis kode, pembuatan, dan tugas lainnya.
Cara berkontribusi:
Berlisensi di bawah Lisensi MIT, lihat LISENSI untuk informasi lebih lanjut.
Jika Anda menyukai proyek ini dan merasa berguna, silakan berikan proyek tersebut dan pertimbangkan untuk mendukung penulisnya!