對於我們在開源課程中的第一個作業,我們的任務是為利用 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
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中文網其他相關文章!