Rumah  >  Artikel  >  hujung hadapan web  >  Keluaran Genereadme v

Keluaran Genereadme v

DDD
DDDasal
2024-09-18 19:26:07724semak imbas

Keluaran v0.1

Untuk tugasan pertama kami dalam kelas sumber terbuka, kami ditugaskan untuk membuat keluaran 0.1 untuk alat CLI yang menggunakan LLM. Ia boleh menjadi apa-apa jenis alat asalkan ia memenuhi satu set keperluan: Ia mesti menggunakan pelengkapan sembang OpenAI dan ia mestilah mengenai memproses dan mengubah fail melalui argumen baris arahan.

Genereadme

Untuk tugasan saya, saya memilih untuk mencipta Genereadme, iaitu alat CLI yang menjana fail README untuk fail kod sumber yang disediakan. Saya memilih untuk melakukan projek ini kerana menulis dokumentasi README bukanlah salah satu saman kuat saya, yang mana saya juga mendapati kesulitan. Tetapi memandangkan betapa pentingnya dokumentasi, terutamanya dalam projek besar, langkah dalam proses pembangunan ini tidak boleh diabaikan. Jadi saya fikir, kenapa tidak buat sesuatu yang boleh membantu saya melakukan ini?

Genereadme v release cleobnvntra / genereadme

GENEREADME ialah alat baris arahan yang mengambil fail kod sumber dan menjana fail README.md yang menerangkan kod dalam fail dengan menggunakan LLM.

GENEREADME

GENEREADME ialah alat baris perintah yang mengambil fail, memprosesnya dan menjana fail README dengan penjelasan atau dokumentasi kandungan fail. Alat ini menggunakan penyiapan sembang OpenAI untuk menganalisis fail dan menjana kandungan.

Genereadme v release

Penggunaan

Sediakan kunci API yang sah sama ada dengan mencipta fail .env atau melalui bendera -a atau --api-key:

GROQ_API_KEY=API_KEY

or

genereadme -a API_KEY
genereadme --api-key API_KEY

Pasang kebergantungan:

npm install

Jalankan alat dengan fail sampel sedia ada atau mula menggunakan fail anda sendiri:

genereadme <files>
genereadme examples/sum.js
genereadme examples/createUser.js examples/sum.js

NOTA: Alat ini menerima sebarang fail, tetapi hanya akan memberikan hasil terjana yang sesuai untuk fail yang mempunyai kod sebagai kandungan.
Fail yang hendak digunakan boleh diletakkan di mana-mana sahaja asalkan anda menyediakan laluan yang sesuai.


Pilihan bendera

bendera huraian penggunaan -v
flag description usage
-v
--version
Displays the tool's name and the current version. genereadme -v
genereadme --version
--versi Memaparkan nama alat dan versi semasa. 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!

Atas ialah kandungan terperinci Keluaran Genereadme v. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn