Clarify 会从您的项目数据中预填尽可能多的内容;您确认或更正其余部分,然后最终确定。
GraphQL
确定适用的计划后(请参阅 检查合规要求),推荐的流程包括三个调用:
complianceQuestionnaireInfer
questionnaireAnswersSubmit
questionnaireSessionAttest
如果您已有每个答案,您可以改为在一个调用中提交完整响应 — 请参阅下面的提交完整响应。
读取需要 COMPLIANCE_READ 范围;提交答案需要 COMPLIANCE_WRITE。请参阅 OAuth。
COMPLIANCE_READ
COMPLIANCE_WRITE
每个答案 value 都是 JSON 编码的字符串:布尔值是 "true",选择或文本值如 "\"cosmetic\"",多选是 "[\"a\",\"b\"]",数字是 "42"。
value
"true"
"\"cosmetic\""
"[\"a\",\"b\"]"
"42"
complianceQuestionnaireInfer 解析您的项目的适用计划, 打开一个会话,并从您的项目数据预先回答问题。每个 预填的答案都有 provenance: INFERRED 和一个 confidence 分数。
provenance: INFERRED
confidence
传递 intendedUse 来指导推断 — 店面流应发送 CONSUMER。
intendedUse
CONSUMER
mutation InferQuestionnaire($input: ComplianceQuestionnaireInferInput!) {
complianceQuestionnaireInfer(input: $input) {
session {
id
status
lines {
programId
currentQuestion {
code
prompt
answerType
}
lineId
state
remainingRequiredCount
每行的 state 告诉您接下来需要做什么:
READY_TO_ATTEST
PARTIAL
currentQuestion
NOT_INFERRED
已由现有响应满足的计划将被跳过并在 alreadySatisfied 中返回(上面省略)。
alreadySatisfied
会话保存预填的答案 — 而不是最终确定的响应。对于每个 答案,托运人要么:
INFERRED
MANUAL
一次提交一个或多个答案。Clarify 将 currentQuestion 提前到 下一个剩余的问题,当没有剩余时,最终确定该行的 响应(其 responseId 被填充)。
responseId
更正一个答案仅覆盖该答案。最终确定的响应保存 完整的集合 — 接受的答案保持 INFERRED,更正是 MANUAL — 所以您总是保留 AI 提供的内容与个人更改的记录。
例如,托运人接受推断的 intended_use 但更正 contains_color_additives,所以他们只提交那个答案:
intended_use
contains_color_additives
mutation SubmitAnswers($input: QuestionnaireAnswersSubmitInput!) {
questionnaireAnswersSubmit(input: $input) {
answers {
questionCode
provenance
当一行是 READY_TO_ATTEST 时 — 每个必需的答案都已预填并且 托运人同意 — 使用 questionnaireSessionAttest 在一个调用中接受它。它 最终确定每个符合条件的行,或仅最终确定您传递的 lineIds。
lineIds
mutation AttestSession($input: QuestionnaireSessionAttestInput!) {
questionnaireSessionAttest(input: $input) {
要放弃进行中的会话,请调用 questionnaireSessionAbandon(id: ID!)。
questionnaireSessionAbandon(id: ID!)
如果您已有每个答案 — 例如用于 CATALOG_ITEM 的可重用答案集 — 跳过会话并直接使用 questionnaireResponseSubmit 提交。它替换相同 项目和计划的任何先前响应。
CATALOG_ITEM
questionnaireResponseSubmit
mutation SubmitResponse($input: QuestionnaireResponseSubmitInput!) {
questionnaireResponseSubmit(input: $input) {
completedAt
更喜欢在没有推断的情况下回答?questionnaireSessionStart 为 您选择的计划打开一个会话,然后您使用相同的审查和更正和 上面的证明调用。
questionnaireSessionStart
使用 questionnaireResponse(id) 获取最终确定的记录,并使用 containerComplianceReadiness 检查整个容器是否已准备好申报 — 仅当每行都有完整响应时,ready 才为 true。
questionnaireResponse(id)
containerComplianceReadiness
ready
true
query ContainerReadiness($containerType: ContainerType!, $containerId: ID!) {
containerComplianceReadiness(
containerType: $containerType
containerId: $containerId
) {
totalLineCount
outstandingLineCount
ComplianceQuestionnaireInferInput QuestionnaireAnswersSubmitInput QuestionnaireResponseSubmitInput QuestionnaireSessionAttestInput
complianceQuestionnaireInfer questionnaireAnswersSubmit questionnaireResponseSubmit questionnaireSessionAttest
完成问卷
完成问卷
Clarify 会从您的项目数据中预填尽可能多的内容;您确认或更正其余部分,然后最终确定。
GraphQL
确定适用的计划后(请参阅 检查合规要求),推荐的流程包括三个调用:
complianceQuestionnaireInfer打开一个会话,并从您的项目数据中预填答案。questionnaireAnswersSubmit用于更改任何托运人不同意的内容,并回答剩下的问题。questionnaireSessionAttest用于接受并最终确定。如果您已有每个答案,您可以改为在一个调用中提交完整响应 — 请参阅下面的提交完整响应。
读取需要
COMPLIANCE_READ范围;提交答案需要COMPLIANCE_WRITE。请参阅 OAuth。每个答案
value都是 JSON 编码的字符串:布尔值是"true",选择或文本值如"\"cosmetic\"",多选是"[\"a\",\"b\"]",数字是"42"。推断和预填
complianceQuestionnaireInfer解析您的项目的适用计划, 打开一个会话,并从您的项目数据预先回答问题。每个 预填的答案都有provenance: INFERRED和一个confidence分数。传递
intendedUse来指导推断 — 店面流应发送CONSUMER。mutation InferQuestionnaire($input: ComplianceQuestionnaireInferInput!) {complianceQuestionnaireInfer(input: $input) {session {idstatuslines {idprogramIdstatuscurrentQuestion {codepromptanswerType}}}lines {lineIdstateremainingRequiredCount}}}每行的
state告诉您接下来需要做什么:READY_TO_ATTEST- 每个必需的问题都有答案。直接进行 证明(下文)。PARTIAL- 预填了一些答案,但仍有必需的问题。 在currentQuestion处回答它们。NOT_INFERRED- 无法预填任何内容;将其作为普通问卷回答。已由现有响应满足的计划将被跳过并在
alreadySatisfied中返回(上面省略)。审查和更正
会话保存预填的答案 — 而不是最终确定的响应。对于每个 答案,托运人要么:
INFERRED,或questionnaireAnswersSubmit提交新值,其中 变为MANUAL。一次提交一个或多个答案。Clarify 将
currentQuestion提前到 下一个剩余的问题,当没有剩余时,最终确定该行的 响应(其responseId被填充)。更正一个答案仅覆盖该答案。最终确定的响应保存 完整的集合 — 接受的答案保持
INFERRED,更正是MANUAL— 所以您总是保留 AI 提供的内容与个人更改的记录。例如,托运人接受推断的
intended_use但更正contains_color_additives,所以他们只提交那个答案:mutation SubmitAnswers($input: QuestionnaireAnswersSubmitInput!) {questionnaireAnswersSubmit(input: $input) {statuslines {idstatusresponseIdanswers {questionCodevalueprovenanceconfidence}}}}证明
当一行是
READY_TO_ATTEST时 — 每个必需的答案都已预填并且 托运人同意 — 使用questionnaireSessionAttest在一个调用中接受它。它 最终确定每个符合条件的行,或仅最终确定您传递的lineIds。mutation AttestSession($input: QuestionnaireSessionAttestInput!) {questionnaireSessionAttest(input: $input) {idstatuslines {idstatusresponseId}}}要放弃进行中的会话,请调用
questionnaireSessionAbandon(id: ID!)。提交完整响应
如果您已有每个答案 — 例如用于
CATALOG_ITEM的可重用答案集 — 跳过会话并直接使用questionnaireResponseSubmit提交。它替换相同 项目和计划的任何先前响应。mutation SubmitResponse($input: QuestionnaireResponseSubmitInput!) {questionnaireResponseSubmit(input: $input) {idstatuscompletedAtanswers {questionCodevalueprovenance}}}更喜欢在没有推断的情况下回答?
questionnaireSessionStart为 您选择的计划打开一个会话,然后您使用相同的审查和更正和 上面的证明调用。读取响应和准备情况
使用
questionnaireResponse(id)获取最终确定的记录,并使用containerComplianceReadiness检查整个容器是否已准备好申报 — 仅当每行都有完整响应时,ready才为true。query ContainerReadiness($containerType: ContainerType!, $containerId: ID!) {containerComplianceReadiness(containerType: $containerTypecontainerId: $containerId) {readytotalLineCountoutstandingLineCount}}后续步骤
ComplianceQuestionnaireInferInput QuestionnaireAnswersSubmitInput QuestionnaireResponseSubmitInput QuestionnaireSessionAttestInput
complianceQuestionnaireInfer questionnaireAnswersSubmit questionnaireResponseSubmit questionnaireSessionAttest
这个页面有帮助吗?