いどばたシステム 7/2~7/9のGitHub活動まとめ
今週の「いどばたシステム」(digitaldemocracy2030/idobata)におけるGitHub活動をまとめました。
OSS開発に興味のある方は、ぜひ内容をご覧いただき、開発や議論に参加してください!
今週完了したタスク
- 今週はマージされたPR #414がなく、完了した機能追加や修正はありませんでした。
未完了(進行中)のタスクと議論
PR #414 – SSEによるリアルタイムチャットストリーミングの実装
- 作成者: Shutaro+Devin
- “+Devin”は開発者によるAIアシスタント活用を示すための表記です。実際の実装の中心はShutaroさんが行っています。
- 概要: OpenRouterやOpenAIなどのAPIからの応答を、SSE(Server-Sent Events)を利用してストリーミング表示する機能を追加しようとしています。
- 従来はユーザがメッセージを送信すると、待ち時間の後に一括で応答を受け取っていましたが、このPRによって「入力途中からのレスポンス」を順次画面に表示できるようになり、体感的に高速でインタラクティブなチャットが可能になります。
主な変更点
- バックエンド:
IdobataMcpService
にprocessQueryStream
メソッドを追加し、OpenRouterのストリーミングAPIを用いたデータ取得処理を実装。/api/chat/stream
エンドポイントを新規に用意し、SSEでデータをクライアントへ継続送信できるように。
- フロントエンド:
ChatApiClient
にsendMessageStream
を実装し、SSEを手動でパースしながら取り扱う機能を追加。ChatPanel
でストリーミングデータをリアルタイム表示できるUIに改修。
期待されるメリット
- 長い応答に対してタイムアウトが発生しにくい
- ユーザが途中結果をすぐに閲覧でき、応答がリッチに感じられる
- MCPツール紐付けなどの高度な機能にも影響を与えず、チャットをシームレスに拡張可能
現在の議論ポイント
- エラー時やネットワーク切断時におけるストリームのクリーンアップとメモリリーク対策
- SSE接続が途中で止まってしまった場合の復旧方法
- 非ストリーミング機能との互換性維持
協力方法
- フロントエンドやSSEの取り扱いに詳しい方のレビューが歓迎されています。
- 環境変数
OPENROUTER_API_KEY
を設定したローカル環境での動作検証やバグ報告も募集中です。
参加の呼びかけ
- 「いどばたシステム」の開発は多様なスキルを持つコントリビュータが支えています。今回のPR #414のようにリアルタイムチャットに関する機能は、多くの方にとって大きな利便性向上につながります。
- ぜひ気になる方はIssueやPull Requestにコメントを残したり、コードをレビューしてみてください。バグの報告やドキュメント編集など、どんな小さな貢献でも大歓迎です。
このレポートが、さらなるOSS開発への参加をうながすきっかけになれば幸いです。
引き続き、「いどばたシステム」へのご支援、よろしくお願いします!
未来を共に創る
実証実験に参画されたい方、寄付にご協力いただける方、開発・デザイン・改善・コミュニティ運営に興味のある方は、こちらから。