いどばたシステム 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によって「入力途中からのレスポンス」を順次画面に表示できるようになり、体感的に高速でインタラクティブなチャットが可能になります。

主な変更点

  • バックエンド:
    • IdobataMcpServiceprocessQueryStreamメソッドを追加し、OpenRouterのストリーミングAPIを用いたデータ取得処理を実装。
    • /api/chat/streamエンドポイントを新規に用意し、SSEでデータをクライアントへ継続送信できるように。
  • フロントエンド:
    • ChatApiClientsendMessageStreamを実装し、SSEを手動でパースしながら取り扱う機能を追加。
    • ChatPanelでストリーミングデータをリアルタイム表示できるUIに改修。

期待されるメリット

  • 長い応答に対してタイムアウトが発生しにくい
  • ユーザが途中結果をすぐに閲覧でき、応答がリッチに感じられる
  • MCPツール紐付けなどの高度な機能にも影響を与えず、チャットをシームレスに拡張可能

現在の議論ポイント

  • エラー時やネットワーク切断時におけるストリームのクリーンアップとメモリリーク対策
  • SSE接続が途中で止まってしまった場合の復旧方法
  • 非ストリーミング機能との互換性維持

協力方法

  • フロントエンドやSSEの取り扱いに詳しい方のレビューが歓迎されています。
  • 環境変数 OPENROUTER_API_KEY を設定したローカル環境での動作検証やバグ報告も募集中です。

参加の呼びかけ

  • 「いどばたシステム」の開発は多様なスキルを持つコントリビュータが支えています。今回のPR #414のようにリアルタイムチャットに関する機能は、多くの方にとって大きな利便性向上につながります。
  • ぜひ気になる方はIssueやPull Requestにコメントを残したり、コードをレビューしてみてください。バグの報告やドキュメント編集など、どんな小さな貢献でも大歓迎です。

このレポートが、さらなるOSS開発への参加をうながすきっかけになれば幸いです。
引き続き、「いどばたシステム」へのご支援、よろしくお願いします!

未来を共に創る

実証実験に参画されたい方、寄付にご協力いただける方、開発・デザイン・改善・コミュニティ運営に興味のある方は、こちらから。