Untuk tugasan pertama kami dalam kelas sumber terbuka, kami ditugaskan untuk membuat keluaran 0.1 untuk alat CLI yang menggunakan LLM. Ia boleh menjadi apa-apa jenis alat asalkan ia memenuhi satu set keperluan: Ia mesti menggunakan pelengkapan sembang OpenAI dan ia mestilah mengenai memproses dan mengubah fail melalui argumen baris arahan.
Untuk tugasan saya, saya memilih untuk mencipta Genereadme, iaitu alat CLI yang menjana fail README untuk fail kod sumber yang disediakan. Saya memilih untuk melakukan projek ini kerana menulis dokumentasi README bukanlah salah satu saman kuat saya, yang mana saya juga mendapati kesulitan. Tetapi memandangkan betapa pentingnya dokumentasi, terutamanya dalam projek besar, langkah dalam proses pembangunan ini tidak boleh diabaikan. Jadi saya fikir, kenapa tidak buat sesuatu yang boleh membantu saya melakukan ini?
GENEREADME ialah alat baris perintah yang mengambil fail, memprosesnya dan menjana fail README dengan penjelasan atau dokumentasi kandungan fail. Alat ini menggunakan penyiapan sembang OpenAI untuk menganalisis fail dan menjana kandungan.
Sediakan kunci API yang sah sama ada dengan mencipta fail .env atau melalui bendera -a atau --api-key:
GROQ_API_KEY=API_KEY or genereadme -a API_KEY genereadme --api-key API_KEY
Pasang kebergantungan:
npm install
Jalankan alat dengan fail sampel sedia ada atau mula menggunakan fail anda sendiri:
genereadme <files> genereadme examples/sum.js genereadme examples/createUser.js examples/sum.js
NOTA: Alat ini menerima sebarang fail, tetapi hanya akan memberikan hasil terjana yang sesuai untuk fail yang mempunyai kod sebagai kandungan.
Fail yang hendak digunakan boleh diletakkan di mana-mana sahaja asalkan anda menyediakan laluan yang sesuai.
Simply install the packages after cloning the repository
npm install
Run and generate!
genereadme examples/sum.js genereadme examples/createUser.js genereadme examples/sum.js examples/createUser.js genereadme examples/sum.js examples/createUser.js --output sample.md
The user can pass any number of files in the command line using the command genereadme
The generated READMEs will be saved as filename_README.md to prevent any naming collision when processing multiple files.
export async function createUser(data) { const user = { Username: data.email, UserPoolId: process.env.AWS_COGNITO_POOL_ID, TemporaryPassword: data.temporaryPassword, UserAttributes: [ { Name: "email", Value: data.email, }, { Name: "name", Value: data.name, }, ], MessageAction: MessageActionType.SUPPRESS, DesiredDeliveryMediums: [DeliveryMediumType.EMAIL], }; const command = new AdminCreateUserCommand(user); try { const createRes = await cognitoClient.send(command); logger.info(`Created user: [${JSON.stringify(createRes)}]`); const addUserToGroupParams = { UserPoolId: process.env.AWS_COGNITO_POOL_ID, Username: data.email, GroupName: data.group, }; const addUserToGroupCommand = new AdminAddUserToGroupCommand(addUserToGroupParams); const addRes = await cognitoClient.send(addUserToGroupCommand); logger.info(`Added user to group: [${JSON.stringify(addRes)}]`); } catch (error) { logger.error(`Error creating user: ${error}`); throw new Error("Error creating user."); } }
It is my first time working directly with LLMs by myself, so it definitely took some time prompt engineering to get a somewhat satisfying result. However, I do know that there are still a lot that can be improved on and I'm already getting ideas on what to do and what else I can add to this project!
Atas ialah kandungan terperinci Keluaran Genereadme v. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!