상태
상태가 무엇이고, 어떻게 구성하며, 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."
}
이 객체는 대화, 주문, 정책을 담고 있지만 하나의 상태입니다. 결정이 이 부분들을 비교해야 할 때는 관련 정보를 함께 둡니다.
내용과 질문을 분리하기
상태에는 내용과 뒷받침하는 사실이 들어갑니다. 질문은 모델이 그 자료에 대해 내려야 할 판단을 정의합니다. 예를 들어, 환불 요청과 정책을 상태에 두고, 고객이 환불을 요청했는지, 정책이 그것을 뒷받침하는지 묻습니다.
지시문, 판정 기준, 질문 유형, 그리고 하나의 상태에 여러 질문을 던지는 방법은 프리미티브(질문)을 참조하십시오.
요청 스키마는 API 레퍼런스를, 설치와 타입이 지정된 입력, 응답 처리는 클라이언트 SDK를 참조하십시오.