A IA está cada vez mais presente nas nossas aplicações. É capaz de gerar JSON complexo, extrair dados de documentos ou fornecer respostas estruturadas. Mas há um problema: a IA pode cometer erros, omitir campos ou até inventar informações.
É aqui que um JSON Schema se torna essencial. Funciona como uma estrutura para verificar se as respostas da IA seguem rigorosamente a estrutura esperada, garantindo que os seus dados permaneçam fiáveis e utilizáveis nas suas aplicações 4D.
Por que razão o Esquema JSON é importante ao utilizar IA
Um Esquema JSON permite-lhe:
- Validar automaticamente as respostas produzidas pela IA
- Detetar erros, inconsistências ou campos em falta
- Enviar esses erros de volta à IA para correção automática
- Garantir dados utilizáveis, mesmo que o modelo evolua ou cometa erros
Na prática, o esquema funciona como uma rede de segurança, permitindo-lhe continuar a beneficiar do poder da IA, mantendo um formato previsível e controlado para as suas aplicações 4D.
Utilizar o JSON Schema com o 4D AI Kit
O 4D AI Kit inclui uma funcionalidade muito útil: a capacidade de solicitar à IA que devolva uma resposta JSON estruturada de acordo com um esquema específico.
Isto permite-lhe definir exatamente:
- os campos esperados,
- os seus tipos,
- e até mesmo certas restrições (valores permitidos, intervalos numéricos, etc.).
Esta abordagem é detalhada em duas publicações do blogue da 4D: uma focada em Saídas Estruturadas, que instrui explicitamente a IA a cumprir um formato de resposta predefinido, e outra que apresenta o analisador JSON Schema Draft 2020-12, compatível com a norma mais recente e que permite uma validação mais rigorosa e expressiva do JSON gerado pela IA.
Exemplo: Análise de Texto e Extração de Entidades
Imagine que está a utilizar uma API de análise de texto para reconhecer entidades numa frase. Uma resposta da IA poderia ser semelhante a esta:
{
"model": "gpt-text-analyzer-v2",
"input": "Steve Jobs fundou a Apple em Cupertino.",
"entities": [
{ "type": "PERSON", "text": "Steve Jobs", "confidence": 0.98 },
{ "type": "ORG", "text": "Apple", "confidence": 0.95 },
{ "type": "LOCATION", "text": "Cupertino", "confidence": 0.93 }
]
}
O esquema JSON de validação
Para garantir que a IA respeita esta estrutura, pode definir um esquema JSON compatível com o Draft 2020-12:
{
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"title": "Resposta da Análise de Texto da IA",
"type": "object",
"properties": {
"model": { "type": "string" },
"input": { "type": "string" },
"entities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": { "type": "string", "enum": ["PERSON", "ORG", "LOCATION"] },
"text": { "type": "string" },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 }
},
"required": ["type", "text", "confidence"]
}
}
},
"required": ["model", "input", "entities"]
}
Este esquema garante a estrutura dos dados devolvidos pela IA. O JSON Schema não valida a relevância semântica das respostas, mas impõe uma estrutura rigorosa que permite que as suas aplicações 4D funcionem com dados fiáveis e utilizáveis.
O Prompt do Sistema: Definindo o Comportamento da IA
O prompt do sistema é essencial. Define o papel da IA e impõe uma disciplina rigorosa no formato de saída.
É um motor de análise de texto de IA. A sua tarefa é analisar o texto fornecido e extrair entidades nomeadas. Deve identificar: - pessoas (PERSON) - organizações (ORG) - locais (LOCATION) Devolva o resultado estritamente como um objeto JSON que siga o JSON Schema fornecido. Não adicione quaisquer campos extra. Não adicione explicações ou texto fora do JSON. Se não for encontrada nenhuma entidade, devolva uma matriz vazia para "entities".
Esta instrução:
- define claramente a tarefa,
- reafirma explicitamente as restrições,
- limita fortemente os desvios criativos em relação ao modelo.
Implementação com o 4D AI Kit
Vamos agora ver como implementar este mecanismo no lado 4D utilizando o 4D AI Kit.
Configuração do chat e do esquema
Neste exemplo, o esquema JSON e o prompt do sistema são armazenados nos recursos da aplicação e explicitamente passados para o modelo durante a chamada.
// Retrieve the system prompt
var $systemPrompt:=File("/RESOURCES/prompt.txt").getText()
// Retrieve the JSON Schema to validate the AI response
var $schema:=JSON Parse(File("/RESOURCES/schema.json").getText())
// Define chat parameters
var $params:=cs.AIKit.OpenAIChatCompletionsParameters.new()
$params.model:="gpt-text-analyzer-v2"
$params.response_format:={\
type: "json_schema"; \
json_schema: {name: "analyse_schema"; schema: $schema}}
// Create AI chat helper
var $ai:=cs.AIKit.OpenAI.new($openAIKey)
var $chatHelper:=$ai.chat.create($systemPrompt; $params)
Com esta configuração, a IA sabe exatamente qual o formato que deve produzir, o que reduz significativamente os erros.
Chamar a IA
Depois de configurados o esquema e o formato de resposta, basta chamar a IA e fornecer o texto a analisar.
// Send the user prompt to the AI
var $userPrompt:="Steve Jobs founded Apple in Cupertino."
var $result:=$chatHelper.prompt($userPrompt)
// Convert AI response to object
var $response:=JSON Parse($result.choice.message.text)
Validação da resposta da IA e tratamento de erros
Mesmo quando é fornecido um esquema, é essencial validar a resposta no lado do 4D antes de a utilizar. A IA pode produzir uma resposta inválida devido a truncamento, erros de geração ou contexto ambíguo.
// Validate the JSON against the schema
var $validation:=JSON Validate($response; $schema)
// Handle validation errors
If (Not($validation.success))
// If the JSON is invalid, build an error prompt to send back to the AI
var $errorPrompt:=\
"The JSON you returned does not match the expected schema. "+\
"Here are the validation errors:\n"+\
JSON Stringify($validation.errors)+\
"\nPlease return a corrected JSON that strictly follows the schema."
// Resend the prompt (or send error prompt) to let AI correct its output
$result:=$chatHelper.prompt($userPrompt)
Else
// If the JSON is valid, continue with your processing
// e.g., save to database, display in form, or trigger further actions
End if
Este mecanismo permite implementar um ciclo IA → 4D → IA:
- A IA gera uma resposta JSON.
- O 4D valida o JSON em relação ao esquema.
- Se for detetado um erro, o 4D reenvia a informação em falta ou incorreta para a IA.
- A IA corrige a resposta e devolve um JSON válido.
Este ciclo de feedback automático garante que os seus dados permanecem fiáveis, mesmo quando a IA comete erros.
Benefícios concretos
- JSON gerado por IA que é fiável e consistente
- Correção automática de erros através do ciclo de validação
- Segurança e controlo em toda a sua API → pipelines de IA
- Dados sempre utilizáveis para os seus formulários, processamento ou análise
Conclusão
A integração do JSON Schema com o 4D AI Kit transforma a forma como utiliza a IA. Passa de um fluxo de trabalho de «IA imprevisível» para um processo previsível, controlado, robusto e automatizado.
Ao combinar Structured Outputs, JSON Schema e validação no lado 4D, aproveita ao máximo o poder da IA, garantindo simultaneamente dados fiáveis, seguros e prontos para produção.
Esta abordagem vai muito além da simples análise de texto. O mesmo padrão pode ser aplicado a qualquer cenário em que os dados gerados pela IA devam ser integrados com segurança numa aplicação 4D.
O JSON Schema não torna a IA «inteligente», mas torna-a previsível.
De momento, não é possível deixar comentários nesta publicação.