Baru-baru ini saya membuat sumbangan pertama saya kepada aplikasi penyelesaian sembang yang sangat baik yang dibina menggunakan TypeScript, dengan kerjasama pemilik projek, Majd Al Mounayer. Majd mempunyai pemahaman yang hebat tentang pembangunan, dari ESLint hingga tindakan CI. Semasa saya menyemak projeknya, saya mendapati bahawa struktur asas yang kukuh menjadikan aplikasi berskala dan lebih mudah untuk penyumbang baharu menambah ciri.
Berdasarkan contoh Groq, adalah idea yang baik untuk memberikan pengguna pilihan --token_usage atau -t untuk memantau bilangan token yang dikembalikan atau digunakan untuk tujuan pengoptimuman. Ini penting kerana beberapa blok kod mungkin melebihi had token yang digunakan pada setiap model.
Daripada membincangkan beberapa ulasan dan memahami perkara yang perlu dilakukan untuk menambah ciri ini dalam projek ini.
Menambahkan handleTokenFlag untuk menyemak hantaran hujah yang mempunyai --token-usage atau -tu jika ya kami stderr untuk penggunaan token.
[x] Binaan tidak gagal.
[x] Diuji secara tempatan.
[x] Ralat linting jika ada diselesaikan.
Menambahkan handleTokenFlag untuk menyemak hantaran hujah yang mempunyai --token-usage atau -tu jika ya kami stderr untuk penggunaan token.
[x] Binaan tidak gagal.
[x] Diuji secara tempatan.
[x] Ralat linting jika ada diselesaikan.
Cadangan daripadanya menunjukkan bahawa pada hujah menyemak ke dalam CLI kita tidak perlu membungkusnya dengan blok cuba-tangkap jadi saya membetulkan dan membuat perubahan.
Menambahkan handleTokenFlag untuk menyemak hantaran hujah yang mempunyai --token-usage atau -tu jika ya kami stderr untuk penggunaan token.
[x] Binaan tidak gagal.
[x] Diuji secara tempatan.
[x] Ralat linting jika ada diselesaikan.
Apabila mengoptimumkan memproses beberapa fail sekaligus, output boleh menjadi sangat besar. Ini kemudian akan memaksa pengguna untuk menatal ke atas untuk melihat token yang tidak mesra pengguna. Saya berpendapat bahawa maklumat token perlu dipaparkan di bahagian bawah kebanyakan keluaran program di bawah semua output fail yang diproses.
Dari petikan saya membuat perubahan dengan memanggil stderr di penghujung aplikasi untuk memaparkan token di bahagian bawah kebanyakan aplikasi.
Menambahkan handleTokenFlag untuk menyemak hantaran hujah yang mempunyai --token-usage atau -tu jika ya kami stderr untuk penggunaan token.
[x] Binaan tidak gagal.
[x] Diuji secara tempatan.
[x] Ralat linting jika ada diselesaikan.
Pepijat ini kerana salah jika keadaan di dalam penyelesaian memproses keadaan if semak bendera --token-usage sedang dihantar ke hujah atau tidak tetapi kemudian saya menggunakannya dengan keadaan lain yang membuang ralat jika tidak menemui respons .token jadi bukannya
if (tokenUsageInformation && chatCompletion?.usage) {
this.saveTokenUsageInfo(chatCompletion?.usage);
} lain {
buang Ralat baharu(`
Maklumat Penggunaan Token tidak tersedia untuk fail: ${fileName}
`);
tukar kepada
jika (tokenUsageInformation) {
jika (!chatCompletion.usage) {
buang Ralat baharu('Maklumat penggunaan token tidak tersedia');
}
this.accumulateToken(chatCompletion?.usage);
Ini memastikan bahawa penggunaan token dikendalikan dengan betul, dan jika maklumat tidak tersedia, ralat yang sesuai ditimbulkan tanpa melanggar aliran aplikasi.
Secara keseluruhannya, menyumbang kepada projek ini membolehkan saya mengetahui lebih lanjut tentang gaya pengekodan yang berbeza dan menyesuaikan diri dengannya. Konsistensi Majd dalam menggunakan ESLint menjadikan corak pembangunan sangat jelas, membantu memastikan proses sumbangan lancar.
Atas ialah kandungan terperinci Sumbangan Pertama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!