ドキュメント

状態

状態

状態とは何か、どう構造化するか、System One モデルに必要なコンテキストをどう与えるか。

状態とは、System One モデルに評価させたい内容のことです。サポートメッセージ、テキストの一節、アプリケーションの現在の状態などがありえます。API リクエストの state フィールドに、答えてほしい質問と一緒に渡します。

各リクエストは、一つの状態を一つ以上の質問に対して評価します。すべての質問は同じ状態を見て、独立に評価されます。一つのリクエストに Choice、Score、Noul の質問を混在させられます。

状態は単純な文字列にも構造化された JSON 値にもできる

最も単純な状態はただの文字列です:

state = "My card was charged twice."

状態は、関連するコンテキスト、例、その他モデルが関連する質問に答えるのに役立つ情報を含む JSON オブジェクトや配列にもできます。状態は、専門家のパネルに判断を求める前に提示する資料だと考えてください。Python では、対応する文字列、辞書、リストをそのまま client.system_one(state=...) に渡します。

形式 役立つ場面 例
文字列 メッセージ、記事、一節 "My card was charged twice."
オブジェクト 名前付きフィールド、関連するレコード、アプリケーションの状態 {"message": "My card was charged twice.", "order_id": "A-104"}
配列 メッセージやレコードの列 ["Hi", "My customer number is TS1337.", "My card was charged twice."]

ほとんどのリクエストではオブジェクトを使い、状態の各部分に説明的な名前を付けて関係を明確に保ちます。ユースケースが単純で、テキストが一つしか要らない場合は文字列で十分です。

サポート会話を状態にする

{
  "ticket": {
    "subject": "Duplicate charge",
    "messages": [
      {"from": "customer", "text": "I was charged twice for order A-104. Please refund the duplicate."},
      {"from": "support", "text": "We are checking the charges."}
    ]
  },
  "order": {
    "id": "A-104",
    "charges": [
      {"amount_usd": 49, "status": "captured"},
      {"amount_usd": 49, "status": "captured"}
    ]
  },
  "refund_policy": "Duplicate charges are eligible for a refund."
}

このオブジェクトは、会話・注文・ポリシーを含んでいても、一つの状態です。判断がこれらの部分を比較する必要があるときは、関連する情報をまとめてください。

内容と質問を分ける

状態は内容とその裏付けとなる事実を含みます。質問は、その素材についてモデルが下すべき判断を定義します。たとえば、返金リクエストとポリシーを状態に置き、顧客が返金を求めたか、ポリシーがそれを支持するかを尋ねます。

instructions、criteria、質問の種類、一つの状態について複数の質問をする方法については、プリミティブ(質問)を参照してください。

リクエストのスキーマについては API リファレンス を、インストール、型付き入力、応答の扱いについてはクライアント SDKを参照してください。