TS TypeSafe 文档中文版 原文 ↗

状态

状态是什么、如何组织它,以及如何给 System One 模型提供它所需的上下文。

状态(State) 是你要求 System One 模型评估的内容。它可能是一条客服消息、一段文本,或者你应用的当前状态。你在 API 请求的 state 字段中传入它,同时传入你希望得到回答的问题。

每个请求都针对一个或多个问题评估一个状态。所有问题看到的是同一个状态,并且各自独立地被评估。你可以在一个请求中混用 Choice、Score 和 Noul 问题。

状态可以是简单的字符串,也可以是结构化的 JSON 值

最简单的状态是一个普通字符串:

python
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."]

大多数请求都使用对象,这样状态的每个部分都有一个描述性的名字,各部分之间的关系也保持清晰。当用例很简单、只需要一段文本时,字符串是合适的。

注意

Jev 只接受文本。状态必须是字符串、JSON 对象或文本值数组。图像、音频和视频(目前)尚不支持。Jev 的主要训练语言是英语;其他语言(包括中日韩文字)虽然可以接受,但目前准确率较低——参见 模型。

作为状态的一段客服对话
{
  "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。