Skip to main content

はじめに

関連するタスクとコンテキストをグループ化するためにユーザーセッションを管理します。 注意事項:
  • ソフトデリートのみ。DELETEはセッションを削除済みとしてマークし(データは保持)、204を返します。
  • 削除されたセッションは読み取りから除外され、取得できません(404)。

セッションの一覧

クエリパラメータ:
  • limit (1–100, デフォルト20)
  • offset (>= 0, デフォルト0)
レスポンス (200):

セッションの取得

パスパラメータ:
  • sessionId (UUIDまたはexternal_id文字列)
レスポンス (200): セッションメタデータ(トークン使用量とタスク数を含む)。 エラー: 401, 403, 404。

セッションIDのフォーマット

ShannonはセッションのためにデュアルIDパターンをサポートしています:
  1. UUIDフォーマット (内部): a0c2b1e2-fd3e-4567-890a-bcdef1234567
  2. 外部IDフォーマット (カスタム文字列): "user-123-chat", "analytics-session-456"
非UUIDのsession_idでタスクを送信すると、Shannonは以下を行います:
  • データベースストレージ用に内部UUIDを作成
  • context.external_idにカスタムIDを保存
  • すべてのセッションAPI呼び出しでいずれかのフォーマットを受け入れます
:
これにより、UUIDを管理することなく自然なセッション名付けが可能になります。

セッション履歴の取得

パスパラメータ:
  • sessionId (UUIDまたはexternal_id文字列)
セッション内のすべてのタスクと実行詳細を返します。 エラー: 401, 403, 404。

セッションイベントの取得(ターンごとにグループ化)

パスパラメータ:
  • sessionId (UUIDまたはexternal_id文字列)
タスク/ターンごとにグループ化されたチャット履歴を返し、各ターンの完全なイベントを含みます(LLM_PARTIALは除外)。 クエリパラメータ:
  • limit (1–100, デフォルト10) — 返すターンの数
  • offset (>= 0, デフォルト0) — スキップするターンの数
レスポンス (200):
注意事項:
  • final_outputはタスク結果が空の場合、最初のLLM_OUTPUTイベントにフォールバックします。
  • turn番号はグローバル(offset+index)です。
  • セッションが削除されているか、リクエスターの所有でない場合は404を返します。

セッションタイトルの更新

パスパラメータ:
  • sessionId (UUIDまたはexternal_id)
ボディ:
ルール:
  • タイトルはトリムされ、制御文字は削除されます。
  • 最大60文字(UTF-8安全)。長すぎるタイトルは拒否されます。
レスポンス:
  • 200 OK(更新されたタイトル)
  • 400 無効なリクエスト(空または長すぎるタイトル)
  • 401 認証されていない
  • 403 禁止(所有者でない)
  • 404 見つかりません

セッションの削除(ソフトデリート)

パスパラメータ:
  • sessionId (UUIDまたはexternal_id文字列)
動作:
  • セッションを削除済みとしてマークします(deleted_at, deleted_by)、データは削除しません。
  • 冪等性: 所有者に対して常に204を返します。
  • 古い読み取りを防ぐためにセッションキャッシュをクリアします。
レスポンス:
  • 204 No Content
  • 401 認証されていない
  • 403 禁止(所有者でない)
  • 404 見つかりません