Heim  >  Artikel  >  Backend-Entwicklung  >  CLI-Tool zur Generierung von Infusionsdokumenten

CLI-Tool zur Generierung von Infusionsdokumenten

DDD
DDDOriginal
2024-09-14 08:16:021044Durchsuche

Infusion docs generation cli tool

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 seperti 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. Walau bagaimanapun, walaupun 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 kemudiannya 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

Um die von mir gefundenen Probleme zusammenzufassen: Sie betrafen hauptsächlich Fälle, in denen Optionen, die in der README-Datei dieses Projekts geschrieben wurden, nicht tatsächlich funktionierten oder ihre Funktionsweise irreführend beschrieben wurde.

Probleme, die in meinem Repo eingereicht wurden

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

Um die in meinem Repo gefundenen Probleme zusammenzufassen: Sie bezogen sich hauptsächlich auf die Benutzerfreundlichkeit meines Tools. Darüber hinaus gab es einen Fehler, als Sie meinem Tool eine Datei mit syntaktisch korrektem Quellcode übermittelten und es sie als eine Datei identifizierte, die keinen gültigen Quellcode enthielt.

Probleme, die ich beheben konnte

Ich habe alle meine Probleme behoben. Die Behebung aller Probleme dauerte weniger als 30 Minuten, aber es gab ein Problem, für dessen Behebung ich etwa 2-3 Stunden brauchte:
https://github.com/SychAndrii/infusion/issues/8

Es erscheint seltsam, da eine Erweiterung der README-Datei leicht zu erreichen sein sollte, aber der erste Vorschlag von Al erforderte, dass ich den Installationsprozess meines Tools komplett neu gestaltete, was erforderte, dass ich zwei Skripte für die Installation einführte – eines für Bash und eines für Bash eine für Powershell. Das Problem, das ich die meiste Zeit nicht lösen konnte, bestand darin, dass diese Setup-Skripte zwar die erforderliche Python-Version ordnungsgemäß installierten, diese Python-Version jedoch nicht an die virtuelle Umgebung weitergegeben wurde, in die Sie vor der Verwendung meines Tools eintreten müssen. Irgendwann habe ich das aber behoben.

Was ich gelernt habe

Ich habe meine README-Kenntnisse definitiv verbessert. Die Art und Weise, wie ich Beispielverwendungen bereitgestellt habe, war für den Endbenutzer sehr verwirrend. Außerdem habe ich endlich Bash- und Powershell-Sprachen verwendet, um selbst etwas zu tun, nicht für eine Schulaufgabe, nicht weil es eine Anforderung war, sondern weil ich den Prozess der Interaktion mit meinem Tool vereinfachen wollte. Schließlich habe ich beschlossen, mich der Sprache zu stellen, die ich absolut nicht ausstehen kann – nämlich Python. Die Arbeit damit hat mir definitiv keinen Spaß gemacht, aber ich denke, es ist wichtig, es nutzen zu können, wenn man heute einen Job finden möchte, insbesondere im Hinblick auf den KI-Trend.

Das obige ist der detaillierte Inhalt vonCLI-Tool zur Generierung von Infusionsdokumenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn