私は最近、プロジェクトのオーナーである Majd Al Mounayer と協力して、TypeScript を使用して構築された非常に優れたチャット補完アプリケーションに初めて貢献しました。 Majd は、ESLint から CI アクションに至るまで、開発をよく理解しています。彼のプロジェクトをレビューしたところ、強固な基礎構造によってアプリケーションがスケーラブルになり、新しい貢献者が機能を追加しやすくなることがわかりました。
Groq インスタンスに基づいて、最適化の目的で返されるトークンの数または使用されるトークンの数を監視するオプション --token_usage または -t をユーザーに提供することをお勧めします。コードの一部のブロックが各モデルに適用されるトークン制限を超える可能性があるため、これは重要です。
いくつかのコメントについて議論し、この機能をこのプロジェクトに追加するために何をすべきかを理解しました。
handleTokenFlag を追加して、--token-usage または -tu を持つ引数の受け渡しをチェックします。そうであれば、トークンの使用法を標準エラー出力します。
[x] ビルドは失敗しません。
[x] ローカルでテストされました。
[x] lint エラーがある場合は解決されます。
handleTokenFlag を追加して、--token-usage または -tu を持つ引数の受け渡しをチェックします。そうであれば、トークンの使用法を標準エラー出力します。
[x] ビルドは失敗しません。
[x] ローカルでテストされました。
[x] lint エラーがある場合は解決されます。
彼からの提案は、CLI にチェックインする引数では try-catch ブロックでラップする必要がないことを指摘したので、修正して変更しました。
handleTokenFlag を追加して、--token-usage または -tu を持つ引数の受け渡しをチェックします。そうであれば、トークンの使用法を標準エラー出力します。
[x] ビルドは失敗しません。
[x] ローカルでテストされました。
[x] lint エラーがある場合は解決されます。
optimizeit が複数のファイルを同時に処理すると、出力が非常に大きくなる可能性があります。これにより、ユーザーはトークンを表示するために上までスクロールする必要があり、ユーザーフレンドリーではありません。トークン情報は、すべての処理されたファイル出力の下のプログラム出力の一番下に表示される必要があると思います。
引用文から、アプリケーションの最後に stderr を呼び出して、アプリケーションのほとんどの下部にトークンを表示するように変更を加えました。
handleTokenFlag を追加して、--token-usage または -tu を持つ引数の受け渡しをチェックします。そうであれば、トークンの使用法を標準エラー出力します。
[x] ビルドは失敗しません。
[x] ローカルでテストされました。
[x] lint エラーがある場合は解決されます。
このバグは、完了処理内の 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 サイトの他の関連記事を参照してください。