對於我們在開源課程中的第一個作業,我們的任務是為利用 LLM 的 CLI 工具製作 0.1 版本。它可以是任何類型的工具,只要它滿足一組要求即可:它必須使用 OpenAI 的聊天完成功能,並且必須透過命令列參數處理和轉換檔案。
對於我的作業,我選擇建立 Genereadme,這是一個 CLI 工具,可以為提供的原始碼檔案產生 README 檔案。我選擇做這個專案是因為寫自述文件不是我的強項之一,而且我也覺得這很麻煩。但考慮到文件的重要性,尤其是在大型專案中,開發過程中的這一步驟不容忽視。所以我想,為什麼不做一些可以幫助我做到這一點的東西呢?
GENEREADME 是一個命令列工具,它接收文件、處理它並產生一個 README 文件,其中包含文件內容的解釋或文件。該工具利用 OpenAI 聊天完成來分析文件並產生內容。
透過建立 .env 檔案或透過 -a 或 --api-key 標誌來提供有效的 API 金鑰:
GROQ_API_KEY=API_KEY or genereadme -a API_KEY genereadme --api-key API_KEY
安裝依賴項:
npm install
使用現有範例檔案執行該工具或開始使用您自己的:
genereadme <files> genereadme examples/sum.js genereadme examples/createUser.js examples/sum.js
注意:該工具接受任何文件,但只會為包含程式碼作為內容的文件提供適當的生成結果。
使用的文件可以放在任何地方,只要提供適當的路徑即可。
flag | description | usage |
---|---|---|
-v --version |
Displays the tool's name and the current version. |
genereadme -v genereadme --version |
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 443f14d34bd583aaf9ed0e6bcab20511 c4b0635a269076a7a37ab9e2329f3009 .... The contents of these files will be processed individually to generate their README documentation.
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!
以上是Genereadme v 版本的詳細內容。更多資訊請關注PHP中文網其他相關文章!