Guias de modelosUsuários avançadosAtualizado em

TypeSafe Jev / API System One

O TypeSafe Jev toma decisões probabilísticas sobre texto, dados estruturados e imagens. Uma requisição pode combinar perguntas noul, choice e score; o Jev 1.14 também permite localização com Box. Não é uma API genérica de completions de chat e não oferece chamadas de ferramentas do Chat.

Endpoint, autenticação e modelo fixo

POST https://api.icodeeasy.cc/v1/systemone
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json

Somente o TypeSafe Jev 1.14 é público, com o ID de modelo fixo jev-1.14.0. Aliases que podem mudar entre versões não são oferecidos:

ID do modeloEntrada de imagemBoxContexto longo de 262K
jev-1.14.0CompatívelCompatívelCompatível

jev-latest, jev-preview e outros nomes não fazem parte deste catálogo público. As respostas são JSON não streaming. Não envie stream nem use System One como /v1/chat/completions, /v1/messages ou /v1/responses.

Texto e state estruturado

state pode ser string, objeto ou array. Você nomeia cada pergunta, e a resposta reutiliza esses nomes e tipos em answers. Este exemplo combina decisão sim/não, escolha fixa e pontuação ordenada:

curl --request POST 'https://api.icodeeasy.cc/v1/systemone' \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "jev-1.14.0",
    "state": "I was charged twice for my subscription. Please refund the extra charge today.",
    "questions": {
      "is_billing": {
        "type": "noul",
        "instructions": "Is this message about billing?"
      },
      "department": {
        "type": "choice",
        "instructions": "Which team should handle this request?",
        "criteria": {
          "billing": "Duplicate charges, invoices, refunds, and payment failures",
          "technical": "Product functionality and technical troubleshooting",
          "other": "Requests outside billing and technical support"
        }
      },
      "urgency": {
        "type": "score",
        "instructions": "How urgent is the request?",
        "criteria": [
          "No deadline and no immediate impact",
          "Needs attention soon but service remains usable",
          "Immediate financial or service impact requires urgent handling"
        ]
      }
    }
  }'

noul retorna probabilidade de sim/não entre 0 e 1; choice retorna a opção e a distribuição de probabilidades; score retorna posição entre níveis, probabilidades e confiança. Probabilidade e confiança não garantem correção; defina limites com suas próprias amostras. Valide model, chaves e tipos das respostas e usage.input_tokens / usage.output_tokens antes de usar o resultado.

Compatibilidade com o SDK

Nas chamadas de texto com o SDK oficial do TypeSafe, defina compression: false explicitamente e não dependa da negociação padrão de compressão. Atualmente, imagens só são aceitas no formato JSON + Base64 mostrado neste guia; o upload multipart padrão de imagens do SDK não é compatível. Para imagens, use a requisição HTTP deste guia em vez dos objetos de imagem ou do fluxo padrão de upload do SDK.

Entrada de imagem PNG / JPEG

Toda requisição com imagem precisa de TypeSafe-Danger-Zone-Images: true. Este exemplo envia PNG em JSON Base64. photo-001 é uma referência local e deve aparecer em state, nas instruções ou nos critérios. Para JPEG, use jpg ou jpeg em format.

curl --request POST 'https://api.icodeeasy.cc/v1/systemone' \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --header 'TypeSafe-Danger-Zone-Images: true' \
  --data '{
    "model": "jev-1.14.0",
    "state": {"photo": "photo-001"},
    "assets": {
      "photo-001": {
        "type": "image",
        "format": "png",
        "data_base64": "<BASE64_PNG_WITHOUT_DATA_PREFIX>"
      }
    },
    "questions": {
      "mug_visible": {
        "type": "noul",
        "instructions": "Is there a coffee mug in `photo`?"
      }
    }
  }'

Não inclua prefixo data: nem quebras de linha no Base64. Use PNG/JPEG estático, com até 16 MiB por arquivo decodificado, largura e altura entre 280 e 1568 pixels e corpo completo de até 32 MiB. A imagem não é redimensionada automaticamente; qualquer asset inválido faz toda a requisição falhar. Tokens de imagem entram em usage.input_tokens.

Localização Box (somente Jev 1.14)

Box é experimental. A requisição precisa de TypeSafe-Danger-Zone-Images: true e da versão fixa pública jev-1.14.0. Box não usa criteria. Acrescente um noul para verificar se o alvo existe:

{
  "model": "jev-1.14.0",
  "state": {"photo": "photo-001"},
  "assets": {
    "photo-001": {
      "type": "image",
      "format": "jpeg",
      "data_base64": "<BASE64_JPEG_WITHOUT_DATA_PREFIX>"
    }
  },
  "questions": {
    "mug_visible": {
      "type": "noul",
      "instructions": "Is there a coffee mug in `photo`?"
    },
    "mug": {
      "type": "box",
      "instructions": "the coffee mug in `photo`"
    }
  }
}

Envie esse JSON ao mesmo endpoint com os headers de autenticação, JSON e Images. As respostas Box trazem top, bottom, left e right como frações de 0 a 1 da altura e largura; multiplique pelas dimensões em pixels. Uma caixa pode aparecer mesmo sem o alvo, portanto combine com a resposta de presença e a confiança em vez de tratá-la como detecção exata.

Contexto longo de 262K

O Jev 1.14 aceita o nível de contexto longo. Os padrões são 64K por requisição e 32K por pergunta. Para usar 262K, inclua explicitamente:

TypeSafe-Danger-Zone-Long-Context: true
curl --request POST 'https://api.icodeeasy.cc/v1/systemone' \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --header 'TypeSafe-Danger-Zone-Long-Context: true' \
  --data '{
    "model": "jev-1.14.0",
    "state": "<LONG_DOCUMENT_OR_STRUCTURED_RECORD>",
    "questions": {
      "has_early_termination": {
        "type": "noul",
        "instructions": "Does the state include a clause allowing either party to terminate early?"
      }
    }
  }'

Com o header, os limites por requisição e por pergunta usam 262K. Não há multiplicador de preço, mas a latência costuma ser maior. Avalie a qualidade com seus próprios textos longos e não ingleses; sucesso em texto curto não comprova o limite exato de 262K nem a preservação do início e do fim do documento.

Cobrança e limites experimentais

  • O preço-base oficial é $0.042 / MTok de entrada. O preço efetivo atual no site é ¥0.30 / MTok de entrada, e a saída custa 0. Fórmula: usage.input_tokens × ¥0.30 / 1,000,000.
  • Tokens de saída aparecem em usage, mas são gratuitos atualmente. Não há preço separado de leitura/escrita de cache nem sobretaxa de contexto longo. Tokens de imagem são cobrados como entrada.
  • System One é uma API não streaming de decisões estruturadas, sem ferramentas do Chat e fora do Chat playground.
  • Imagens e Box são experimentais; formatos, respostas e limites podem mudar entre versões. Box existe apenas no 1.14. Teste suas imagens, idiomas, limites e falhas antes da produção.
  • Contexto longo não significa entrada ilimitada: continuam os limites de contexto, corpo, imagem e taxa. Mantenha validação de versão fixa, modelo da resposta, formato das respostas e usage.

Consulte a página de preços e o catálogo de recursos para os dados atuais.