Umělá inteligence se v našich aplikacích objevuje stále častěji. Dokáže generovat komplexní JSON, extrahovat data z dokumentů nebo poskytovat strukturované odpovědi. Existuje však jeden problém: umělá inteligence může dělat chyby, vynechávat pole nebo dokonce vymýšlet informace.
Právě zde se stává nezbytným JSON schéma. Funguje jako rámec pro ověření, zda odpovědi AI striktně dodržují očekávanou strukturu, a zajišťuje tak, že vaše data zůstanou spolehlivá a použitelná ve vašich aplikacích 4D.
Proč je schéma JSON důležité při používání AI
JSON schéma vám umožňuje:
- Automaticky ověřovat odpovědi generované AI
- Detekovat chyby, nesrovnalosti nebo chybějící pole
- Odeslat tyto chyby zpět do AI k automatické opravě
- Zaručit použitelná data, i když se model vyvíjí nebo dělá chyby
V praxi funguje schéma jako záchranná síť – můžete i nadále těžit z výkonu AI a zároveň zachovat předvídatelný a kontrolovaný formát pro vaše aplikace 4D.
Použití schématu JSON s 4D AI Kit
4D AI Kit obsahuje velmi užitečnou funkci, a to možnost požádat AI o vrácení JSON odpovědi strukturované podle konkrétního schématu.
To vám umožňuje přesně definovat:
- očekávaná pole,
- jejich typy
- a dokonce i určitá omezení (povolené hodnoty, číselné rozsahy atd.).
Tento přístup je podrobně popsán ve dvou příspěvcích na blogu 4D: jeden se zaměřuje na strukturované výstupy, které explicitně nařizují AI, aby dodržovala předdefinovaný formát odpovědi, a druhý představuje parser JSON Schema Draft 2020-12, který podporuje nejnovější standard a umožňuje přísnější a expresivnější validaci JSON generovaného AI.
Příklad: Analýza textu a extrakce entit
Představte si, že používáte API pro analýzu textu k rozpoznání entit ve větě. Odpověď AI by mohla vypadat takto:
{
"model": "gpt-text-analyzer-v2",
"input": "Steve Jobs založil společnost Apple v Cupertinu.",
"entities": [
{ "type": "PERSON", "text": "Steve Jobs", "confidence": 0.98 },
{ "type": "ORG", "text": "Apple", "confidence": 0.95 },
{ "type": "LOCATION", "text": "Cupertino", "confidence": 0.93 }
]
}
Validační schéma JSON
Aby bylo zajištěno, že AI tuto strukturu respektuje, můžete definovat schéma JSON kompatibilní s návrhem 2020-12:
{
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"title": "AI Text Analysis Response",
"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"]
}
Toto schéma zaručuje strukturu dat vrácených umělou inteligencí. JSON Schema neověřuje sémantickou relevanci odpovědí, ale vynucuje přísný rámec, který umožňuje vašim 4D aplikacím pracovat se spolehlivými a použitelnými daty.
Systémová výzva: Rámcování chování AI
Systémový prompt je zásadní. Definuje roli AI a vynucuje přísnou disciplínu ohledně formátu výstupu.
Jste engine pro analýzu textu AI. Vaším úkolem je analyzovat poskytnutý text a extrahovat pojmenované entity. Musíte identifikovat: - osoby (PERSON) - organizace (ORG) - místa (LOCATION) Výsledek vraťte výhradně jako objekt JSON, který odpovídá zadanému schématu JSON. Nepřidávejte žádná další pole. Nepřidávejte vysvětlení ani text mimo JSON. Pokud není nalezena žádná entita, vraťte pro „entities“ prázdné pole.
Tento zadávací text:
- jasně definuje úkol,
- výslovně opakuje omezení,
- silně omezuje kreativní odchylky od modelu.
Implementace pomocí 4D AI Kit
Podívejme se nyní, jak tento mechanismus implementovat na straně 4D pomocí 4D AI Kit.
Konfigurace chatu a schématu
V tomto příkladu jsou JSON schéma a systémová výzva uloženy v prostředcích aplikace a explicitně předány modelu během volání.
// 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)
Díky této konfiguraci AI přesně ví, jaký formát musí vytvořit, což výrazně snižuje počet chyb.
Volání AI
Jakmile jsou schéma a formát odpovědi nakonfigurovány, zbývá už jen zavolat AI a poskytnout text k analýze.
// 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)
Ověření odpovědi AI a řešení chyb
I když je schéma poskytnuto, je nezbytné ověřit odpověď na straně 4D před jejím použitím. AI může vygenerovat neplatnou odpověď v důsledku zkrácení, chyb při generování nebo nejednoznačného kontextu.
// 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
Tento mechanismus umožňuje implementovat smyčku AI → 4D → AI:
- AI vygeneruje odpověď ve formátu JSON.
- 4D ověří JSON podle schématu.
- Pokud je zjištěna chyba, 4D odešle chybějící nebo nesprávné informace zpět do AI.
- AI opraví odpověď a vrátí platný JSON.
Tato automatická zpětnovazební smyčka zajišťuje, že vaše data zůstanou spolehlivá, i když AI udělá chybu.
Konkrétní výhody
- JSON generovaný AI, který je spolehlivý a konzistentní
- Automatická oprava chyb prostřednictvím validační smyčky
- Zabezpečení a kontrola napříč vašimi API → AI pipeline
- Data, která jsou vždy použitelná pro vaše formuláře, zpracování nebo analýzu
Závěr
Integrace JSON Schema s 4D AI Kit mění způsob, jakým používáte AI. Přejdete od „nepředvídatelného“ pracovního postupu s AI k předvídatelnému, kontrolovanému, robustnímu a automatizovanému procesu.
Kombinací strukturovaných výstupů, JSON Schema a validace na straně 4D plně využijete sílu AI a zároveň zajistíte spolehlivá, bezpečná a produkčně připravená data.
Tento přístup jde daleko za hranice jednoduché textové analýzy. Stejný vzor lze aplikovat na jakýkoli scénář, kde musí být data generovaná AI bezpečně integrována do aplikace 4D.
JSON Schema nedělá AI „inteligentní“, ale činí ji předvídatelnou.
K tomuto příspěvku zatím nelze přidávat komentáře.