ホームへ戻る

GitHub Repo

LangChainコミュニティがMistralのストリーミングエラーの見落としを報告、途中で切れた回答が成功結果として扱われる可能性

10月26日のLangChainコミュニティからの報告によると、Mistral連携ではストリーム内のエラーイベントが見落とされ、未完了のテキストが正常に返される可能性があります。別の参加者は再現とローカルでの修正を報告しましたが、確認時点で公開修正PRや正式な修正版はありません。

Dirck van Baburen · Public domain · Image source
zh-Hant

LangChainのPython版Mistral連携で、ストリーミング時のエラー処理に関する報告がありました。10月26日に公開されたissueによると、サーバーがまずテキストを返し、その後同じストリーム内でエラーイベントを送信した場合、ChatMistralAIは例外を発生させず、受信済みのチャンクを正常な回答として扱う可能性があります。別の参加者はコメントで、ローカル環境で再現できたと述べています。現時点ではコミュニティからの報告であり、メンテナーによる確認はまだです。issueと再現コード

報告ではhttpx.MockTransportを使ってHTTP 200のSSEレスポンスを模擬し、2つのテキストチャンクに続けてサービスエラーを送信しています。完了理由や終了マーカーは含まれていないため、実際のモデルを呼び出す必要はありません。添付された結果では、同期・非同期のストリーミングと、ストリーミングを有効にした同期・非同期の呼び出しの計4経路すべてで、途中までのテキストが返され、完了理由は空のまま、例外も発生しませんでした。この実験が検証するのは、模擬イベントに対するクライアントの処理動作であり、本番サービスでの発生頻度を証明するものではありません。再現結果

報告者の分析によると、ストリーム処理はchoicesフィールドのないイベントをスキップするため、エラーメッセージも見落とされます。公式ドキュメントでは、この連携がトークン単位のストリーミング、ネイティブな非同期処理、ツール呼び出しに対応していることが確認できます。これらの機能を使うアプリケーションでは、呼び出しが正常に戻ったことだけでは生成が完了したと判断できない可能性があります。また、再試行や失敗監視のトリガーが失われるおそれもあります。これは報告された動作から導かれる影響であり、実際のワークフローでの検証が必要です。連携機能のドキュメント

コメントした参加者は、イベントをスキップする前にエラー内容を確認して例外を発生させる修正案を提示し、ローカルテストに合格したと述べています。ただし、issueには公開修正PRへのリンクはまだありません。チームはまず、「部分的なテキストを受信した後にエラーが発生する」ケースを連携テストに追加し、完了状態と例外が適切に伝播するかを確認できます。そのうえで、メンテナーによる確認、公開修正、リリース版を追跡し、アップグレードの計画を決めるとよいでしょう。修正の進捗

出典

  1. Mistral 串流錯誤事件遭略過的社群回報 #41490
  2. ChatMistralAI integration