ホームページ  >  記事  >  バックエンド開発  >  早送りおよび 3 方向マージ

早送りおよび 3 方向マージ

Barbara Streisand
Barbara Streisandオリジナル
2024-09-28 12:16:02936ブラウズ

Fast-forward and three-way merges

プロジェクト 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 サイトの他の関連記事を参照してください。

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