Infusi ialah alat sumber terbuka yang digunakan untuk penjanaan dokumentasi dalam fail kod anda. Ia menggunakan model OpenAI gpt-4 untuk menulis komen. Ia adalah projek saya dan saya menulisnya dalam Python.
Pautan GitHub:
https://github.com/SychAndrii/infusion
explainer.js ialah alat sumber terbuka yang digunakan untuk menerangkan coretan kod dalam fail kod anda. Ia menggunakan model Groq untuk menulis komen. Ia adalah projek rakan sepasukan saya @aamfahim dan dia menulisnya dalam Node.JS
Pautan GitHub:
https://github.com/aamfahim/explainer.js
Saya kini mendaftar dalam kursus sumber terbuka di Politeknik Seneca, di mana kami ditugaskan untuk bekerjasama dengan orang lain dan menyemak kod masing-masing dan memberi beberapa cadangan untuk penambahbaikan menggunakan isu GitHub. Saya akan menerangkan proses ini.
Kebanyakan isu yang dijana untuk kedua-dua repositori dilakukan menggunakan komunikasi segerak melalui panggilan Discord. Selepas itu, kami bercakap secara tidak segerak menggunakan mesej Discord, kerana terdapat isu yang sukar untuk saya menyelaraskan persediaan projek saya menggunakan skrip bash, dan memanggil rakan sepasukan saya setiap kali saya perlu menguji sama ada ia berfungsi pada mesinnya nampaknya tidak perlu. Menguji menggunakan bekas Docker dan subsistem WSL Linux pada mesin saya tidak sama dengan mengujinya pada sistem Al, dan ia menyerlahkan pepijat penting.
Saya tidak mengalami apa-apa yang luar biasa semasa menyemak kod rakan sepasukan saya, kerana saya mempunyai banyak pengalaman dengan pembangunan Node.JS. Saya suka mencipta isu dan kemudian segera mencadangkan penyelesaian kepada mereka walaupun. Satu masalah yang kami hadapi ialah kami tidak dapat memikirkan cara untuk membenarkan saya meletakkan label pada isu yang saya buat, hanya Al yang boleh melakukannya, yang menjengkelkan.
Al mencadangkan banyak ruang untuk penambahbaikan, terutamanya dengan pemasangan alat CLI saya. Apabila dia mula-mula membuat repo saya, ia adalah satu keperluan untuk pengguna akhir pergi dan memasang versi python tertentu secara manual, yang pastinya merupakan tugas yang mengecewakan. Selain itu, beliau menyerlahkan kemungkinan peningkatan lain untuk penggunaan alat yang mudah, seperti memperkenalkan fail .env supaya anda tidak perlu memasukkan kunci API anda setiap kali anda memulakan alat. Saya suka mendapatkan input tentang kod saya daripada orang lain kerana ia membolehkan saya berkembang sebagai pembangun dan ia pastinya mengembangkan pandangan saya tentang kitaran hayat pembangunan.
Kebanyakan masalah yang kami hadapi adalah dengan alat saya, kerana program CLI Al telah ditulis dalam Node.JS dan kami berdua mempunyai banyak pengalaman dengannya. Sebaliknya, kami berdua tidak menyukai ekosistem Python, jadi kami menghadapi banyak masalah untuk berinteraksi dengannya. Semasa menguji repositori Al, saya mendapati dokumen yang ditulis dalam READMEnya mengelirukan atau mengelirukan untuk difahami, terutamanya model dan pilihan kunci api. Kami terpaksa melalui proses percubaan dan kesilapan untuk mengetahui kunci dan model API yang diterima oleh alatnya. Apabila ia datang untuk menguji repositori saya, versi python pada sistem Al adalah sangat lapuk (2.7), jadi dia terpaksa memasang 3.10.6 (versi, diperlukan untuk menggunakan alat saya) secara manual. Namun begitu, masalah itu tidak berakhir. Walaupun dia memasangnya, ia masih tidak dikenali oleh persekitaran maya yang dicipta oleh alat saya dengan pipenv. Selepas itu, kami juga berasa kecewa dengan memasukkan kunci API yang diperlukan untuk penggunaan alat saya setiap kali kami memulakannya. Akhirnya, dokumen README tidak membantu dengan pemasangan. Kami cuba mengikutinya, tetapi kami terus mendapat ralat yang berkaitan dengan beberapa skrip yang tidak dikenali pada PATH. Ketika itulah saya memutuskan bahawa kami memerlukan sejenis alat automasi yang melakukan semua pemasangan untuk anda. Satu pemikiran yang saya ada adalah untuk melabuhkan aplikasi itu, tetapi kemudian ia memerlukan saya untuk memetakan volum Docker ke direktori output dan fail input yang ditentukan untuk alat saya, dan itu akan merumitkan semuanya dua kali. Oleh itu, saya teringat bahawa banyak pengurus pakej sebenarnya adalah alat baris arahan, dan jika anda memasangnya dengan mengklon repo GitHub, maka anda perlu menyediakannya dengan melaksanakan beberapa jenis skrip persediaan bash. Jadi itulah idea yang saya putuskan untuk dilaksanakan. Akhirnya, kami berdua tidak dapat memikirkan cara untuk menetapkan label seperti pepijat atau peningkatan kepada isu yang kami failkan.
https://github.com/aamfahim/explainer.js/issues/13
https://github.com/aamfahim/explainer.js/issues/12
https://github.com/aamfahim/explainer.js/issues/11
https://github.com/aamfahim/explainer.js/issues/10
https://github.com/aamfahim/explainer.js/issues/9
Untuk meringkaskan isu yang saya temui, ia kebanyakannya meliputi kes apabila pilihan yang ditulis dalam fail README projek ini, tidak benar-benar berfungsi atau cara ia berfungsi diterangkan secara mengelirukan.
https://github.com/SychAndrii/infusion/issues/11
https://github.com/SychAndrii/infusion/issues/10
https://github.com/SychAndrii/infusion/issues/9
https://github.com/SychAndrii/infusion/issues/8
Untuk meringkaskan isu yang ditemui dalam repo saya, ia kebanyakannya berkaitan dengan kemudahan penggunaan alat saya. Selain itu, terdapat satu pepijat apabila anda membekalkan fail dengan kod sumber yang betul secara sintaksis kepada alat saya dan ia mengenal pasti ia sebagai fail yang tidak mengandungi kod sumber yang sah.
Saya membetulkan semua isu saya. Kesemuanya mengambil masa kurang daripada 30 minit untuk dibetulkan, tetapi terdapat satu isu, yang mengambil masa 2-3 jam untuk saya selesaikan:
https://github.com/SychAndrii/infusion/issues/8
Sepertinya pelik kerana peningkatan fail README sepatutnya mudah dicapai, tetapi cadangan pertama oleh Al memerlukan saya untuk membuat semula sepenuhnya proses pemasangan alat saya, yang memerlukan saya memperkenalkan 2 skrip untuk pemasangan - satu untuk bash dan satu untuk Powershell. Masalah yang saya tidak dapat selesaikan untuk kebanyakan masa ialah walaupun skrip persediaan ini memasang versi python yang diperlukan dengan betul, versi python ini tidak diturunkan kepada persekitaran maya, yang anda perlu masukkan sebelum menggunakan alat saya. Akhirnya, saya membetulkannya.
Saya pasti telah meningkatkan kemahiran README saya. Cara saya memberikan contoh penggunaan sangat mengelirukan bagi pengguna akhir. Selain itu, saya akhirnya telah menggunakan bahasa bash dan powershell untuk melakukan sesuatu sendiri, bukan untuk tugasan sekolah, bukan kerana ia adalah satu keperluan, tetapi kerana saya ingin memudahkan proses berinteraksi dengan alat saya. Akhirnya, saya memutuskan untuk menghadapi bahasa yang saya tidak tahan - iaitu python. Bekerja dengannya pastinya tidak menyeronokkan bagi saya, tetapi saya fikir adalah penting untuk dapat menggunakannya jika anda ingin mencari pekerjaan hari ini, terutamanya dengan aliran AI.
Atas ialah kandungan terperinci Alat cli penjanaan dokumen infusi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!