最初の貢献

DDD
DDDオリジナル
2024-09-19 06:20:03790ブラウズ

貢献者になる

私は最近、プロジェクトのオーナーである Majd Al Mounayer と協力して、TypeScript を使用して構築された非常に優れたチャット補完アプリケーションに初めて貢献しました。 Majd は、ESLint から CI アクションに至るまで、開発をよく理解しています。彼のプロジェクトをレビューしたところ、強固な基礎構造によってアプリケーションがスケーラブルになり、新しい貢献者が機能を追加しやすくなることがわかりました。

問題 12 トークン使用機能

First Contribute Groq からトークン情報を取得します。 #12

First Contribute
フェージングNA 投稿日:

Groq インスタンスに基づいて、最適化の目的で返されるトークンの数または使用されるトークンの数を監視するオプション --token_usage または -t をユーザーに提供することをお勧めします。コードの一部のブロックが各モデルに適用されるトークン制限を超える可能性があるため、これは重要です。

GitHub で表示

いくつかのコメントについて議論し、この機能をこのプロジェクトに追加するために何をすべきかを理解しました。

プルリクエスト

First Contribute 問題 12 --token-usage & -tu によるトークン情報の追加 #13

First Contribute
フェージングNA 投稿日:

説明

handleTokenFlag を追加して、--token-usage または -tu を持つ引数の受け渡しをチェックします。そうであれば、トークンの使用法を標準エラー出力します。

  • ビルド成功

First Contribute

  • テスト済み

First Contribute

  • 糸くず

First Contribute

チェックリスト

  • [x] ビルドは失敗しません。

  • [x] ローカルでテストされました。

  • [x] lint エラーがある場合は解決されます。

テスト手順

手順

1.

を作成します
  • 新しい依存関係 npm install

2.

に移動します
  • OptimizeIt に移動 cd OptimizeIt
  • npm run dev -- ./examples/dynamicMemory.cpp --token-usage
GitHub で表示

ムネエからの最初のコメント

First Contribute 問題 12 --token-usage & -tu によるトークン情報の追加 #13

First Contribute
フェージングNA 投稿日:

説明

handleTokenFlag を追加して、--token-usage または -tu を持つ引数の受け渡しをチェックします。そうであれば、トークンの使用法を標準エラー出力します。

  • ビルド成功

First Contribute

  • テスト済み

First Contribute

  • 糸くず

First Contribute

チェックリスト

  • [x] ビルドは失敗しません。

  • [x] ローカルでテストされました。

  • [x] lint エラーがある場合は解決されます。

テスト手順

手順

1.

を作成します
  • 新しい依存関係 npm install

2.

に移動します
  • OptimizeIt に移動 cd OptimizeIt
  • npm run dev -- ./examples/dynamicMemory.cpp --token-usage
GitHub で表示

彼からの提案は、CLI にチェックインする引数では try-catch ブロックでラップする必要がないことを指摘したので、修正して変更しました。

ムネエからの2番目のコメント

First Contribute 問題 12 --token-usage & -tu によるトークン情報の追加 #13

First Contribute
フェージングNA 投稿日:

説明

handleTokenFlag を追加して、--token-usage または -tu を持つ引数の受け渡しをチェックします。そうであれば、トークンの使用法を標準エラー出力します。

  • ビルド成功

First Contribute

  • テスト済み

First Contribute

  • 糸くず

First Contribute

チェックリスト

  • [x] ビルドは失敗しません。

  • [x] ローカルでテストされました。

  • [x] lint エラーがある場合は解決されます。

テスト手順

手順

1.

を作成します
  • 新しい依存関係 npm install

2.

に移動します
  • OptimizeIt に移動 cd OptimizeIt
  • npm run dev -- ./examples/dynamicMemory.cpp --token-usage
GitHub で表示

optimizeit が複数のファイルを同時に処理すると、出力が非常に大きくなる可能性があります。これにより、ユーザーはトークンを表示するために上までスクロールする必要があり、ユーザーフレンドリーではありません。トークン情報は、すべての処理されたファイル出力の下のプログラム出力の一番下に表示される必要があると思います。

引用文から、アプリケーションの最後に stderr を呼び出して、アプリケーションのほとんどの下部にトークンを表示するように変更を加えました。

Mounayer からバグが検出されました

First Contribute 問題 12 --token-usage & -tu によるトークン情報の追加 #13

First Contribute
フェージングNA 投稿日:

説明

handleTokenFlag を追加して、--token-usage または -tu を持つ引数の受け渡しをチェックします。そうであれば、トークンの使用法を標準エラー出力します。

  • ビルド成功

First Contribute

  • テスト済み

First Contribute

  • 糸くず

First Contribute

チェックリスト

  • [x] ビルドは失敗しません。

  • [x] ローカルでテストされました。

  • [x] lint エラーがある場合は解決されます。

テスト手順

手順

1.

を作成します
  • 新しい依存関係 npm install

2.

に移動します
  • OptimizeIt に移動 cd OptimizeIt
  • npm run dev -- ./examples/dynamicMemory.cpp --token-usage
GitHub で表示

このバグは、完了処理内の if 条件が間違っているためです。if 条件は、--token-usage のフラグが引数に渡されるかどうかをチェックしますが、見つからなかった場合の応答でエラーをスローする else 条件で使用しています。
の代わりに .token
if (tokenUsageInformation && chatCompletion?.usage) {
this.saveTokenUsageInfo(chatCompletion?.usage);
} else {
新しいエラーをスロー(`
ファイルのトークン使用情報は利用できません: ${fileName}
`);


に変更します
if (tokenUsageInformation) {
if (!chatCompletion.usage) {
throw new Error('トークン使用情報が利用できません');
}
this.accumulateToken(chatCompletion?.usage);

これにより、トークンの使用が適切に処理されることが保証され、情報が利用できない場合は、アプリケーション フローを中断することなく、適切なエラーが発生します。

全体として、このプロジェクトに貢献することで、さまざまなコーディング スタイルについてさらに学び、それに適応することができました。 ESLint の使用における Majd の一貫性により、開発パターンが非常に明確になり、スムーズなコントリビューション プロセスの確保に役立ちました。

以上が最初の貢献の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:反応の基本次の記事:反応の基本