オープンソース クラスでの最初の課題では、LLM を利用する CLI ツールのリリース 0.1 を作成するという任務がありました。一連の要件を満たす限り、どのような種類のツールであってもかまいません。OpenAI のチャット補完を使用する必要があり、コマンド ライン引数を使用してファイルを処理および変換する必要があります。
私の課題では、提供されたソース コード ファイルの README ファイルを生成する CLI ツールである Genereadme を作成することにしました。私がこのプロジェクトを行うことにしたのは、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 中国語 Web サイトの他の関連記事を参照してください。