プロジェクト Infusion の作業中:
https://github.com/SychAndrii/infusion
私は、LLM からのリアルタイムでのストリーミング応答と、プログラム完了時の適切な終了コードの使用という 2 つの新しい機能を実装することにしました。ただし、変更をメイン ブランチに統合するための従来のプル リクエストを作成する代わりに、私はリポジトリ内でローカルにマージを実行し、マージの結果をリモート リポジトリにプッシュするように命じられました。
最初の問題は終了コードを実装することでした:
https://github.com/SychAndrii/infusion/issues/34
マージコミットでクローズされました:
https://github.com/SychAndrii/infusion/commit/b01f493a8eb3c86aad00760f41f8adf0b93b231e
Python にはステータス コードを返す sys パッケージが用意されているため、このタスクの実装は非常に簡単でした。私のプログラムには 4 つのエラー ステータス コードがあることにしました:
0 - プログラムは正常に終了しました。
1 - 無効なオプションが指定されました。
2 - 無効なファイルが提供されました。
3 - 不明なエラー。
ステータス コードを追加することに加えて、より多くの関数を使用してより直感的になるようにコードをリファクタリングしました。
2 番目の問題は、ストリーミングを実装することでした。
https://github.com/SychAndrii/infusion/issues/33
マージコミットでクローズされました:
https://github.com/SychAndrii/infusion/commit/b01f493a8eb3c86aad00760f41f8adf0b93b231e
私のプロジェクトで使用している LangChain ライブラリのため、このタスクを実行するのはさらに困難でした。このライブラリは比較的新しいため、astream 関数を使用したストリーミングに関するドキュメントは非常に直感的ではなく、理解するのが困難です。
私はずっと Python が嫌いで、これからも一生Python を使い続けるつもりです。このプロジェクトでは、Python をより快適に使用できるようにしようとしましたが、C#、TypeScript、Kotlin などの言語を使用した後は、Python を真剣に受け止めることができません。
以上が早送りおよび 3 方向マージの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。