Maison  >  Article  >  interface Web  >  Première contribution

Première contribution

DDD
DDDoriginal
2024-09-19 06:20:03670parcourir

Devenez contributeur

J'ai récemment apporté ma première contribution à une très bonne application de complétion de chat construite en utilisant TypeScript, en collaboration avec le propriétaire du projet, Majd Al Mounayer. Majd a une grande compréhension du développement, allant de l'ESLint aux actions CI. En examinant son projet, j'ai remarqué qu'une structure de base solide rend une application évolutive et permet aux nouveaux contributeurs d'ajouter plus facilement des fonctionnalités.

Fonctionnalité d'utilisation des jetons numéro 12

First Contribute Obtenez des informations sur les jetons de Groq. #12

First Contribute
décolorationNA publié le

Sur la base des instances Groq, ce serait une bonne idée de fournir aux utilisateurs une option --token_usage ou -t pour surveiller le nombre de jetons renvoyés ou utilisés à des fins d'optimisation. Ceci est important car certains blocs de code peuvent dépasser la limite de jetons appliquée à chaque modèle.

Voir sur GitHub

Après avoir discuté de plusieurs commentaires et compris ce qu'il faut faire pour ajouter cette fonctionnalité dans ce projet.

Demande de tirage

First Contribute Numéro 12 ajoutant des informations sur les jetons par --token-usage & -tu #13

First Contribute
décolorationNA publié le

Description

Ajout de handleTokenFlag pour vérifier le passage des arguments qui ont --token-usage ou -tu si oui, nous stderr pour l'utilisation du jeton.

  • Construire avec succès

First Contribute

  • Testé

First Contribute

  • Peluchage

First Contribute

Liste de contrôle

  • [x] La construction n'échoue pas.

  • [x] Testé localement.

  • [x] Les erreurs de peluchage, le cas échéant, sont résolues.

Instructions de test

Étapes

1. Créer un

  • nouvelles dépendances npm install

2. Allez sur

  • allez sur le cd Optimizeit OptimizeIt
  • npm run dev -- ./examples/dynamicMemory.cpp --token-usage
Voir sur GitHub

Premier commentaire de Mounayer

First Contribute Numéro 12 ajoutant des informations sur les jetons par --token-usage & -tu #13

First Contribute
décolorationNA publié le

Description

Ajout de handleTokenFlag pour vérifier le passage des arguments qui ont --token-usage ou -tu si oui, nous stderr pour l'utilisation du jeton.

  • Construire avec succès

First Contribute

  • Testé

First Contribute

  • Peluchage

First Contribute

Liste de contrôle

  • [x] La construction n'échoue pas.

  • [x] Testé localement.

  • [x] Les erreurs de peluchage, le cas échéant, sont résolues.

Instructions de test

Étapes

1. Créer un

  • nouvelles dépendances npm install

2. Allez sur

  • allez sur le cd Optimizeit OptimizeIt
  • npm run dev -- ./examples/dynamicMemory.cpp --token-usage
Voir sur GitHub

Il a suggéré de souligner que lors de la vérification de l'argument dans la CLI, nous n'avons pas besoin de l'envelopper avec un bloc try-catch, j'ai donc corrigé et apporté une modification.

Deuxième commentaire de Mounayer

First Contribute Numéro 12 ajoutant des informations sur les jetons par --token-usage & -tu #13

First Contribute
décolorationNA publié le

Description

Ajout de handleTokenFlag pour vérifier le passage des arguments qui ont --token-usage ou -tu si oui, nous stderr pour l'utilisation du jeton.

  • Construire avec succès

First Contribute

  • Testé

First Contribute

  • Peluchage

First Contribute

Liste de contrôle

  • [x] La construction n'échoue pas.

  • [x] Testé localement.

  • [x] Les erreurs de peluchage, le cas échéant, sont résolues.

Instructions de test

Étapes

1. Créer un

  • nouvelles dépendances npm install

2. Allez sur

  • allez sur le cd Optimizeit OptimizeIt
  • npm run dev -- ./examples/dynamicMemory.cpp --token-usage
Voir sur GitHub

Lors de l'optimisation, il traite plusieurs fichiers à la fois, le résultat peut être très volumineux. Cela obligerait alors l'utilisateur à faire défiler vers le haut pour voir les jetons, ce qui n'est pas convivial. Je pense que les informations sur le jeton doivent être affichées en bas de la sortie du programme, sous toutes les sorties de fichiers traitées.

D'après la citation, j'ai fait une modification en appelant stderr à la fin de l'application pour afficher le jeton en bas de l'application.

Bug détecté chez Mounayer

First Contribute Numéro 12 ajoutant des informations sur les jetons par --token-usage & -tu #13

First Contribute
décolorationNA publié le

Description

Ajout de handleTokenFlag pour vérifier le passage des arguments qui ont --token-usage ou -tu si oui, nous stderr pour l'utilisation du jeton.

  • Construire avec succès

First Contribute

  • Testé

First Contribute

  • Peluchage

First Contribute

Liste de contrôle

  • [x] La construction n'échoue pas.

  • [x] Testé localement.

  • [x] Les erreurs de peluchage, le cas échéant, sont résolues.

Instructions de test

Étapes

1. Créer un

  • nouvelles dépendances npm install

2. Allez sur

  • allez sur le cd Optimizeit OptimizeIt
  • npm run dev -- ./examples/dynamicMemory.cpp --token-usage
Voir sur GitHub

Ce bug est dû à une mauvaise condition if lors de l'achèvement du traitement de la condition if, vérifiez que l'indicateur de --token-usage est transmis à l'argument ou non, mais je l'utilise ensuite avec une condition else qui renvoie l'erreur si la réponse n'est pas trouvée. .token donc au lieu de

if (tokenUsageInformation && chatCompletion?.usage) {
this.saveTokenUsageInfo(chatCompletion?.usage);
} autre {
lancer une nouvelle erreur (`
Les informations sur l'utilisation du jeton ne sont pas disponibles pour le fichier : ${fileName}
`);

changer pour

si (tokenUsageInformation) {
si (!chatCompletion.usage) {
throw new Error('Les informations sur l'utilisation du jeton ne sont pas disponibles');
>
this.accumulateToken(chatCompletion?.usage);

Cela garantit que l'utilisation du jeton est correctement gérée et si les informations ne sont pas disponibles, une erreur appropriée est générée sans interrompre le flux de l'application.

Dans l'ensemble, contribuer à ce projet m'a permis d'en apprendre davantage sur les différents styles de codage et de m'y adapter. La cohérence de Majd dans l’utilisation d’ESLint a rendu le modèle de développement très clair, contribuant ainsi à garantir un processus de contribution fluide.

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
Article précédent:Les bases de ReactArticle suivant:Les bases de React