Maison >interface Web >js tutoriel >Version Genereadme v

Version Genereadme v

DDD
DDDoriginal
2024-09-18 19:26:07728parcourir

Version v0.1

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.

Genereadme

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 v release cleobnvntra / Genereadme

GENEREADME est un outil de ligne de commande qui récupère un fichier de code source et génère un fichier README.md qui explique le code du fichier à l'aide d'un LLM.

GENEREADME

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.

Genereadme v release

Utilisation

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é.


Options de drapeau

drapeau description utilisation ête> -v
flag description usage
-v
--version
Displays the tool's name and the current version. genereadme -v
genereadme --version
--version Affiche le nom de l'outil et la version actuelle. genereadme -vgenereadme --version
View on GitHub

Get started

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

How it works

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.

Arguments

  • 2334ac29606bf8a170583e4f7533b1f4: The file to be processed and generate a README for.

Options

  • -v or --version: Displays the tool's name and the current version.
  • -h or --help: Displays the help message for the tool.
  • -o or --output: Outputs the generated results into the specified output filename.
  • -a or --api-key: Allows the user to use their own valid API key.
  • -t or --temperature: Allows the user to set their preferred temperature for the chat completion.
  • -tu or --token-usage: Shows the amount of tokens used for the prompt and the completion.

Genereadme v release

Examples

genereadme examples/createUser.js

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.");
    }
  }

generated README for createUser.js

Genereadme v release

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn