Decisões
Decisões (Jev)
Faça perguntas tipadas sobre seus dados e receba respostas que seu código pode usar: a probabilidade de sim, uma opção de um conjunto ou uma posição em uma escala, com probabilidades calibradas, geralmente em menos de um segundo. Disponível na própria API da TypeSafe, então seus SDKs funcionam sem alterações.
/v1/systemoneJev é o modelo de decisão da TypeSafe, que ela chama de modelo System One: ele entende linguagem natural como um modelo de chat, mas, em vez de escrever texto, responde às perguntas que você define. jev-latest, jev-1.14.0 e typesafe/jev-1.14 também funcionam como IDs de modelo, e jev-1.13 continua disponível para prompts ajustados para ele.
Faça perguntas
# pip install typesafe-sdkfrom typesafe_sdk import Choice, Noul, Score, TypeSafeClientwith TypeSafeClient( base_url="https://api.zurelay.com", api_key="YOUR_ZURELAY_KEY", model="jev-1.14",) as client: response = client.system_one( state={"ticket": "I was charged twice for October, please refund one today."}, questions={ "refund": Noul(instructions="Is the customer asking for money back?"), "team": Choice( instructions="Which team should handle this?", criteria={"billing": "Charges and refunds", "technical": "Bugs and outages"}, ), "urgency": Score( instructions="How urgent is it?", criteria=["can wait", "this week", "today"], ), }, )print(response.nouls["refund"].noul) # 0.98print(response.choices["team"].choice) # billingprint(response.scores["urgency"].score) # 1.9Nos SDKs da TypeSafe, defina a URL base como https://api.zurelay.com, sem /v1: eles adicionam /v1/systemone automaticamente. As variáveis de ambiente TYPESAFE_BASE_URL e TYPESAFE_API_KEY também funcionam. Qualquer cliente HTTP funciona da mesma forma: envie sua chave Zurelay como um token Bearer.
A resposta
{ "id": "req_8Kq2vXbN4tR7mWc1pLs9dYe3", "model": "jev-1.14", "answers": { "refund": { "type": "noul", "noul": 0.98 }, "team": { "type": "choice", "choice": "billing", "probabilities": { "billing": 1.0, "technical": 0.0 }, "confidence": 1.0 }, "urgency": { "type": "score", "score": 1.9, "legend": { "0": "can wait", "1": "this week", "2": "today" }, "probabilities": { "0": 0.0, "1": 0.1, "2": 0.9 }, "confidence": 0.81 } }, "usage": { "input_tokens": 396, "output_tokens": 61, "cost": 0.00001386 }}Cada resposta vem com o nome que você deu à pergunta. usage indica a base da cobrança da requisição, e cost, o custo em dólares americanos. A mesma requisição pode gerar respostas com um ou dois pontos de diferença entre chamadas.
Parâmetros
modelstringobrigatóriojev-1.14,jev-latest(o mesmo modelo) oujev-1.13.statestring, object ou arrayobrigatório- O conteúdo a avaliar: um texto ou dados estruturados, como um registro, um histórico de chat ou o estado atual do seu app. Para se referir a um campo em uma pergunta, use o nome dele entre crases, como `ticket`.
questionsobjectobrigatório- Suas perguntas, cada uma com um nome que você escolhe. As respostas vêm com os mesmos nomes, e os nomes não são enviados ao modelo.
typestringobrigatórionoul,choiceouscore.instructionsstring, object ou arrayobrigatório- A pergunta. Um objeto pode conter a pergunta em um campo e os dados aos quais ela se refere em outros.
criteriaobject ou array- Para
choice(obrigatório): um objeto com até 255 opções, cada uma com uma descrição ounull. Parascore(obrigatório): um array de 2 a 10 níveis, do menor para o maior. Paranoul(opcional):trueefalse, o que significam sim e não.
Tipos de pergunta
Uma requisição pode combinar os três tipos, e fazer várias perguntas custa pouco mais do que fazer uma só: o estado é lido uma vez, e todas as perguntas são respondidas com base nele em paralelo.
Limites
- Até 64K tokens por requisição, somando o estado e todas as perguntas, e 32K para o estado mais a pergunta mais longa.
- Somente texto: uma string, um objeto JSON ou um array. Converta imagens, PDFs ou áudio em texto primeiro.
- Sem streaming: as respostas chegam completas, geralmente em menos de um segundo.
- Uma requisição malformada (sem
instructions, uma pontuação com apenas um nível) é rejeitada com400antes de chegar ao modelo e não custa nada. O mesmo vale para uma requisição acima de 64K tokens, com o códigocontext_length_exceeded.
Como obter boas respostas
Cobrança por decisões
A cobrança do Jev é baseada nos tokens de entrada que ele contabiliza: seu estado e suas perguntas, mais cerca de 270 tokens próprios em cada requisição. As respostas são grátis, como na TypeSafe. Uma requisição curta de cerca de 300 tokens custa aproximadamente $0.00001, então um milhão delas custa cerca de $10. Os cabeçalhos usage e x-zurelay-input-tokens de cada resposta indicam a base da cobrança, todas as requisições aparecem no seu registro de requisições, e as que falham não custam nada.
Teste seu próprio conteúdo e suas perguntas no Playground do painel: selecione Jev, cole o conteúdo, configure as perguntas ao lado, e o botão Obter código gera a mesma requisição em Python, Node.js ou cURL.
Tem dúvidas ou falta algo? Fale com nossa equipe de suporte e responderemos por e-mail, geralmente em até um minuto.