[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

Windows版 Claude Code を irm でインストールして「claude is not recognized」を直すまで

Windows版 Claude Code を irm でインストールして「claude is not recognized」を直すまで

こんにちは! 公式PowerShellインストーラー(irm https://claude.ai/install.ps1 | iex)で Claude Code を入れたのに、claude --version を叩くと「The term 'claude' is not recognized as a name of a cmdlet...」と怒られるときがあります これは Anthropic 公式 GitHub にも報告されている 既知のバグで、インストーラーが PATH の追加を忘れています。実際にインストール作業をやって詰まったので、最短の解決手順をまとめます。 環境 * Windows 11 * PowerShell 7.x(コードは PowerShell

By Qualiteg プロダクト開発部
Claude Opus 4.7 完全ガイド — 公式情報で読み解くモデル仕様とClaude Codeでの実践ノウハウ

Claude Opus 4.7 完全ガイド — 公式情報で読み解くモデル仕様とClaude Codeでの実践ノウハウ

こんにちは! Qualitegプロダクト開発部です! 2026年4月に、AnthropicからClaude Opus 4.7がリリースされました。 今回のアップデートは、単にベンチマークが上がったという話ではありません。命令の解釈の仕方、応答長、ツール呼び出しの頻度、subagentの起動方針まで、モデルの振る舞いそのものが変わっています。 それに伴い、4.6までに作り込んだプロンプトや設定の一部は、外したり再評価したりする必要があります。本記事では、そうした移行時の落とし穴と、4.7時代に合わせた運用作法を、できるだけ実践的にまとめました。 この記事では、まずOpus 4.7で何が変わったのかを確認し、そのうえでClaude Code CLI版とClaude Code Web版でどう使いこなすべきかを見ていきます。 (通常のclaude.aiチャットUIは対象外です。) なお、けっこう長めの記事になっているので、 頭から通読していただく必要はありません。 下の目次から、気になるところや今すぐ困っているところだけ拾い読みしていただいて大丈夫です。 たとえば「とりあえず4.

By Qualiteg プロダクト開発部
サブスクリプションビジネスの完全ガイド【第3回】サブスクリプションビジネスの成長設計

サブスクリプションビジネスの完全ガイド【第3回】サブスクリプションビジネスの成長設計

こんにちは、Qualitegコンサルティングです! サブスクリプションビジネスの完全ガイド 第3回 をお届けいたします! 今回は、 PLG・SLG、ユニットエコノミクス、データ改善の実務ポイントについて解説していきたいとおもいます! この記事でわかること  ・PLG・SLG・ランドアンドエクスパンドの違いと使い分け  ・NRR、LTV/CAC、ペイバック期間など主要指標の実務的な読み方  ・バーンレートとランウェイから資金繰りリスクを把握する方法  ・ファネル分析・コホート分析・A/Bテストによる改善の進め方  ・AIプロダクト特有の原価構造とユニットエコノミクスの注意点 サブスクビジネス完全攻略 シリーズ一覧 第1回 『アープがさぁ...』『チャーンがさぁ...』にもう困らない サブスクビジネス完全攻略 第1回~『アープがさぁ...』『チャーンがさぁ...』にもう困らない完全ガイドなぜサブスクリプションモデルが世界を変えているのか、でもAI台頭でSaaSは終わってしまうの? こんにちは! Qualitegコンサルティングです! 新規事業戦略コンサルタントとして日々

By Qualiteg コンサルティング