Maison >interface Web >js tutoriel >Version Genereadme v
Pour notre premier devoir dans le cours open source, nous avons été chargés de créer une version 0.1 pour un outil CLI qui utilise les LLM. Il peut s'agir de n'importe quel type d'outil à condition qu'il remplisse un ensemble d'exigences : il doit utiliser la complétion de chat d'OpenAI et doit concerner le traitement et la transformation de fichiers via des arguments de ligne de commande.
Pour ma mission, j'ai choisi de créer Genereadme, qui est un outil CLI qui génère un fichier README pour les fichiers de code source fournis. J'ai choisi de réaliser ce projet car écrire une documentation README n'est pas un de mes points forts, ce qui me pose également problème. Mais compte tenu de l’importance des documentations, en particulier dans les grands projets, cette étape du processus de développement ne peut être ignorée. Alors je me suis dit, pourquoi ne pas créer quelque chose qui pourrait m'aider à faire ça à la place ?
GENEREADME est un outil de ligne de commande qui récupère un fichier, le traite et génère un fichier README avec une explication ou une documentation du contenu du fichier. L'outil utilise la complétion du chat OpenAI pour analyser le fichier et générer du contenu.
Fournissez une clé API valide soit en créant un fichier .env, soit via l'indicateur -a ou --api-key :
GROQ_API_KEY=API_KEY or genereadme -a API_KEY genereadme --api-key API_KEY
Installer les dépendances :
npm install
Exécutez l'outil avec les exemples de fichiers existants ou commencez à utiliser les vôtres :
genereadme <files> genereadme examples/sum.js genereadme examples/createUser.js examples/sum.js
REMARQUE : L'outil accepte n'importe quel fichier, mais ne fournira que des résultats générés appropriés pour les fichiers dont le contenu est du code.
Les fichiers à utiliser peuvent être placés n'importe où à condition de fournir le chemin approprié.
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!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!