Alat cli penjanaan dokumen infusi
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.
Cara komunikasi
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.
Pengalaman menyemak kod seseorang
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.
Pengalaman seseorang menyemak kod saya
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.
Isu semasa menyemak dan menguji
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.
Isu yang saya 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.
Isu yang difailkan pada repo saya
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.
Isu yang saya berjaya selesaikan
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.
Apa yang saya pelajari
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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kunci untuk menangani pengesahan API adalah untuk memahami dan menggunakan kaedah pengesahan dengan betul. 1. Apikey adalah kaedah pengesahan yang paling mudah, biasanya diletakkan dalam tajuk permintaan atau parameter URL; 2. BasicAuth menggunakan nama pengguna dan kata laluan untuk penghantaran pengekodan Base64, yang sesuai untuk sistem dalaman; 3. OAuth2 perlu mendapatkan token terlebih dahulu melalui client_id dan client_secret, dan kemudian bawa bearertoken dalam header permintaan; 4. Untuk menangani tamat tempoh token, kelas pengurusan token boleh dikemas dan secara automatik menyegarkan token; Singkatnya, memilih kaedah yang sesuai mengikut dokumen dan menyimpan maklumat utama adalah kunci.

Dalam Python, pembolehubah yang ditakrifkan di dalam fungsi adalah pembolehubah tempatan dan hanya sah dalam fungsi; Ditakrifkan secara luaran adalah pembolehubah global yang boleh dibaca di mana sahaja. 1. Pembolehubah tempatan dimusnahkan kerana fungsi dilaksanakan; 2. Fungsi ini boleh mengakses pembolehubah global tetapi tidak dapat diubahsuai secara langsung, jadi kata kunci global diperlukan; 3. Jika anda ingin mengubah suai pembolehubah fungsi luar dalam fungsi bersarang, anda perlu menggunakan kata kunci nonlocal; 4. Pembolehubah dengan nama yang sama tidak mempengaruhi satu sama lain dalam skop yang berbeza; 5. Global mesti diisytiharkan apabila mengubah suai pembolehubah global, jika tidak, kesilapan unboundlocalerror akan dibangkitkan. Memahami peraturan ini membantu mengelakkan pepijat dan menulis lebih banyak fungsi yang boleh dipercayai.

Untuk menguji API, anda perlu menggunakan Perpustakaan Permintaan Python. Langkah -langkahnya adalah untuk memasang perpustakaan, menghantar permintaan, mengesahkan respons, menetapkan masa dan cuba semula. Pertama, pasang perpustakaan melalui PipinstallRequests; kemudian gunakan permintaan.get () atau requests.post () dan kaedah lain untuk menghantar permintaan GET atau pos; Kemudian semak respons.status_code dan response.json () untuk memastikan hasil pulangan mematuhi jangkaan; Akhirnya, tambah parameter tamat masa untuk menetapkan masa tamat, dan menggabungkan perpustakaan semula untuk mencapai percubaan automatik untuk meningkatkan kestabilan.

Untuk mewujudkan API moden dan cekap menggunakan Python, FastAPI disyorkan; Ia berdasarkan kepada jenis python standard yang diminta dan secara automatik dapat menghasilkan dokumen, dengan prestasi yang sangat baik. Selepas memasang FastAPI dan Asgi Server UVicorn, anda boleh menulis kod antara muka. Dengan menentukan laluan, menulis fungsi pemprosesan, dan data yang kembali, API boleh dibina dengan cepat. FastAPI menyokong pelbagai kaedah HTTP dan menyediakan sistem dokumentasi Swaggersui dan Redoc yang dihasilkan secara automatik. Parameter URL boleh ditangkap melalui definisi laluan, manakala parameter pertanyaan boleh dilaksanakan dengan menetapkan nilai lalai untuk parameter fungsi. Penggunaan rasional model Pydantic dapat membantu meningkatkan kecekapan dan ketepatan pembangunan.

Bagaimana cara mengendalikan fail JSON yang besar di Python? 1. Gunakan Perpustakaan IJSON untuk mengalir dan mengelakkan limpahan memori melalui parsing item demi item; 2. Jika dalam format Jsonlines, anda boleh membacanya dengan garis dan memprosesnya dengan json.loads (); 3. Atau memecah fail besar ke dalam kepingan kecil dan kemudian memprosesnya secara berasingan. Kaedah ini dengan berkesan menyelesaikan masalah batasan memori dan sesuai untuk senario yang berbeza.

Di Python, kaedah melintasi tupel dengan gelung termasuk secara langsung melelehkan unsur -unsur, mendapatkan indeks dan elemen pada masa yang sama, dan memproses tuple bersarang. 1. Gunakan gelung untuk terus mengakses setiap elemen dalam urutan tanpa menguruskan indeks; 2. Gunakan penghitungan () untuk mendapatkan indeks dan nilai pada masa yang sama. Indeks lalai adalah 0, dan parameter permulaan juga boleh ditentukan; 3. Di samping itu, tuple tidak berubah dan kandungan tidak dapat diubah suai dalam gelung. Nilai yang tidak diingini boleh diabaikan oleh \ _. Adalah disyorkan untuk memeriksa sama ada tuple kosong sebelum melintasi untuk mengelakkan kesilapan.

Ya, apythonclasscanhavemulleConstructorsThoughalternetechniques.1.usedefaultargumentsIntheS

Di Python, menggunakan gelung untuk fungsi julat () adalah cara biasa untuk mengawal bilangan gelung. 1. Gunakan apabila anda mengetahui bilangan gelung atau perlu mengakses elemen dengan indeks; 2. Julat (berhenti) dari 0 hingga Stop-1, julat (mula, berhenti) dari awal hingga berhenti-1, julat (mula, berhenti) menambah saiz langkah; 3. Perhatikan bahawa julat tidak mengandungi nilai akhir, dan mengembalikan objek yang boleh diperolehi daripada senarai dalam Python 3; 4. Anda boleh menukar ke senarai melalui senarai (julat ()), dan gunakan saiz langkah negatif dalam urutan terbalik.
