asyncioを使い、StreamlitのUIを非同期化することを目指します。非同期化することで、複数のストリーミングチャットを同時に動かすことが可能になります。LangChainとの統合ではUIの反映をどのコンテクストで行うかが課題になりますが、Chain間の結合など面白い活用法も期待できる実践的な内容です。 はじめに Streamlit+LangChainで複数のストリーミングチャットを同時に動かすことを考えます。最終的に作りたいものはこういったものです。 このようにボタンを押すと、複数のストリーミングチャットが同時に表示されることを考えます。これはちょっと難しくて、 ChatGPTのストリーミングを複数動かす 非同期処理でStreamlitとのUIをつなぎこむ これ1週間ぐらいずっと悩んでいた内容で、ネットを探しても解決方法が全然なかったものです。ようやく解決方法見つけたのでメモして