[ChatStream] HTTP セッションミドルウェアの設定

[ChatStream] HTTP セッションミドルウェアの設定

こんにちは! (株)Qualiteg プロダクト開発部 です!

本稿では、 ChatStream に セッションミドルウェアをセットし、Webアプリケーションをステートフルにする方法についてご説明いたします!

ChatStream では Qualiteg が開発した独自のセッションミドルウェアを使用しており、通常の Starlette 用のセッションミドルウェアよりも高い柔軟性を実現しています。(Java Servlet のセッション管理アプローチに近いです)

セッションミドルウェア

開いたブラウザでWebチャットをするときにマルチラウンドの会話を成立するためには
ChatPrompt(会話履歴) が複数ターンの会話のなかで更新されていく必要があります。

デフォルトでは、 ChatStream は HTTP セッションを使用してWebアプリケーションをステートフルにし、
ChatPrompt をブラウザが開いている間保持することができます。

HTTP セッションを使用するには、以下のように FastAPI のミドルウェアを登録します。

from fastersession import FasterSessionMiddleware, MemoryStore
app.add_middleware(FasterSessionMiddleware,
                   secret_key="your-session-secret-key",
                   store=MemoryStore(),
                   http_only=True,
                   secure=True,
                   )
パラメータ名 説明
secret_key クッキーの署名用キー。
store セッションの保存用ストア。
http_only クッキーがクライアントサイドのスクリプト(JavaScriptなど)からアクセスできないようにするか。デフォルトはTrue。
secure ローカル開発環境のためにFalse。本番環境ではTrue。Httpsが必要。

内部処理

このデフォルトの実装では、セッションID を生成し署名をほどこしたのち、クッキーに保存します。

クッキーの保存期間はブラウザが開いている間のみで、かつ、フロントエンドのJavaScript からアクセスできない状態となっています

会話履歴を永続化するその他の方法

デフォルトの実装では ChatPrompt はセッション上に存在します。 またセッション情報はサーバー側でオンメモリで管理され、セッションの持続期間はブラウザが開いている間でした。

本格的なチャットサーバーを構築する場合は、ユーザーを認証し、ユーザーにひもづいた ChatPrompt をデータベース上に保存(永続化)するのが一般的です。

このような処理を行うためには、カスタムリクエストハンドラの実装 を行い、リクエストハンドラ上で、 ChatPrompt の管理と、永続化を行うことができます。

関連:CORS ミドルウェア

CORS ミドルウェア


Read more

ASCII STARTUP TechDay 2025に出展します!

ASCII STARTUP TechDay 2025に出展します!

株式会社Qualitegは、2025年11月17日(月)に東京・浅草橋ヒューリックホール&カンファレンスで開催される「ASCII STARTUP TechDay 2025」に出展いたします。 イベント概要 「ASCII STARTUP TechDay 2025」は、日本のディープテックエコシステムを次のレベルへ押し上げ、新産業を創出するイノベーションカンファレンスです。ディープテック・スタートアップの成長を支えるエコシステムの構築、そして成長・発展を目的に、学術、産業、行政の垣根を越えて知を結集する場として開催されます。 開催情報 * 日時:2025年11月17日(月)13:00~18:00 * 会場:東京・浅草橋ヒューリックホール&カンファレンス * 住所:〒111-0053 東京都台東区浅草橋1-22-16ヒューリック浅草橋ビル * アクセス:JR総武線「浅草橋駅(西口)」より徒歩1分 出展内容 当社ブースでは、以下の3つの主要サービスをご紹介いたします。 1.

By Qualiteg ニュース
大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第4回 プロキシサーバーと統合Windows認証

大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第4回 プロキシサーバーと統合Windows認証

11月に入り、朝晩の冷え込みが本格的になってきましたね。オフィスでも暖房を入れ始めた方も多いのではないでしょうか。 温かいコーヒーを片手に、シリーズ第4回「プロキシサーバーと統合Windows認証」をお届けします。 さて、前回(第3回)は、クライアントPCやサーバーをドメインに参加させる際の「信頼関係」の確立について深掘りしました。コンピューターアカウントが120文字のパスワードで自動認証される仕組みを理解いただけたことで、今回のプロキシサーバーの話もスムーズに入っていけるはずです。 ChatGPTやClaudeへのアクセスを監視する中間プロキシを構築する際、最も重要なのが「確実なユーザー特定」です。せっかくHTTPS通信をインターセプトして入出力内容を記録できても、アクセス元が「tanaka_t」なのか「yamada_h」なのかが分からなければ、監査ログとしての価値は半減してしまいます。 今回は、プロキシサーバー自体をドメインメンバーとして動作させることで、Kerberosチケットの検証を可能にし、透過的なユーザー認証を実現する方法を詳しく解説します。Windows版Squid

By Qualiteg AIセキュリティチーム
エンジニアリングは「趣味」になってしまうのか

エンジニアリングは「趣味」になってしまうのか

こんにちは! 本日は vibe coding(バイブコーディング、つまりAIが自動的にソフトウェアを作ってくれる)と私たちエンジニアの将来について論じてみたいとおもいます。 ちなみに、自分で作るべきか、vibe codingでAIまかせにすべきか、といった二元論的な結論は出せていません。 悩みながらいったりきたり考えてる思考過程をツラツラと書かせていただきました。 「作る喜び」の変質 まずvibe codingという言葉についてです。 2025年2月、Andrej Karpathy氏(OpenAI創設メンバー)が「vibe coding」という言葉を広めました。 彼は自身のX(旧Twitter)投稿で、 「完全にバイブに身を任せ、コードの存在すら忘れる」 と表現しています。 つまり、LLMを相棒に自然言語でコードを生成させる、そんな新しい開発スタイルを指します。 確かにその生産性は圧倒的です。Y Combinatorの2025年冬バッチでは、同社の発表によれば参加スタートアップの約25%がコードの95%をAIで生成していたとされています(TechCrunch, 2

By Qualiteg プロダクト開発部
発話音声からリアルなリップシンクを生成する技術 第5回(後編):Transformerの実装と実践的な技術選択

発話音声からリアルなリップシンクを生成する技術 第5回(後編):Transformerの実装と実践的な技術選択

なぜGPTで成功したTransformerが、リップシンクでは簡単に使えないのか?データ量・計算量・過学習という3つの課題を深掘りし、LSTMとTransformerの実践的な使い分け方を解説。さらに転移学習という第三の選択肢まで、CEATEC 2025で見せた「アバター」の舞台裏を、クオ先生とマナブ君の対話でわかりやすく紐解きます。

By Qualiteg プロダクト開発部