éèŠãªãã€ã³ã
API-levelã®JSON-modeã¯åœ¢åŒãæ£ãããªãJSONæ§æãã¹ããŒãæºæ ã®å€±æã¯åæ¢ããŸãã æå¹ãªJSONã¯äžè¶³ããŠãããã£ãŒã«ããééã£ãã¿ã€ããç¡å¹ãªåæå€ãå«ããããšãã§ãããã¹ãŠãäžæµã®æ€èšŒã«å€±æããŸãã
ããã³ããã«ã¹ããŒããåã蟌ãããšã¯åºç€ã§ãã ããã³ããã«çŽæ¥æ§é åãããJSONãã³ãã¬ãŒãã瀺ãããšã§ãã¢ãã«ã«ãã£ãŒã«ãåããã¹ãã®æ·±ããããã³ãããºã§ã¯ãªãæ§é ã§ã®ã¿ã€ãã瀺ããŸãã
æå¹ãªåºåäŸã¯ä¿¡é Œæ§ã5â10ãã€ã³ãäžããŸãã ã¢ãã«ã¯æåããåºåãã©ã®ããã«èŠããããèŠããšãããè¯ãåŸããŸãã
ã¿ã€ãã圢åŒãnullãã¬ãŒãã³ã°ã®ããã®ãã£ãŒã«ãã¬ãã«ã®æç€ºãéèŠã§ãã ãåæãã£ãŒã«ããã¯ææ§ã§ã; ãstatus (æ£ç¢ºã«: 'active'ã'inactive'ã'pending' â çç¥åœ¢ãªã)ãã§ã¯ãããŸããã
95%æåçã¯20ã±ãŒã¹ã®ãã¹ãã»ããã§æ¬çªã²ãŒãã§ãã 95%以äžã§ã¯ãæ¬çªç°å¢ã®å€±æã¯ä¿®æ£ã«ãŒããå¿ èŠãšããã»ã©é »ç¹ã«çºçããã³ã¹ããšé å»¶ãåã«ãªããŸãã
ããã³ããèšèšãæ§é ååºåä¿¡é Œæ§ã決å®ãã
JSON-mode API (OpenAI response_formatãAnthropic tool_useãGoogle Gemini responseMimeType) ã¯è§£æå¯èœãªJSONã匷å¶ããŸãããã¹ããŒãæºæ â å¿ é ãã£ãŒã«ãååšãæ£ããããŒã¿åãæå¹ãªåæå€ â ã«ã€ããŠã¯ãããªãåŠçãããŸããããããã®ãšã©ãŒã¯API-levelã®åŒ·å¶ã«ããããããçºçããããã³ããèšèšã³ã³ãããŒã«ãå¿ èŠã§ãã
ð JSON-modeã¯ååã§ã¯ãªã
API-enforced JSON-modeã¯è§£æäžå¯èœãªåºå (JSONã®ã¹ããŒã¹ããšã¹ã±ãŒããããŠããªãåŒçšç¬Š) ãé²ããŸããã¹ããŒãæºæ ã¯é²ããŸãã: JSON-modeãæå¹ã«ããã¢ãã«ã¯ãäžè¶³ããŠãããã£ãŒã«ããééã£ãã¿ã€ããç¡å¹ãªå€ãå«ãæå¹ãªJSONãè¿ãããšãã§ããŸããã¹ããŒãæºæ ã¯ããã³ããåé¡ãAPIåé¡ã§ã¯ãããŸããã
ð æåã«ããã³ããã ãã§ã¹ããŒãããã¹ããã
API-enforced JSON-modeãªã (å€ãAPIãããŒã«ã«LLM) ã®ã¢ãã«ã¯ãããã³ããå ã®ã¹ããŒãã ãã§80â85%ã®æ§é ååºåä¿¡é Œæ§ãéæããŸããããã¯ããŒã¹ã©ã€ã³ã確ç«ããæ®ãã®15â20ãã€ã³ããã©ãã«æçšã«è¿œå ããããã瀺ããŸãã
ã¹ããŒããããã³ããã«çŽæ¥åã蟌ã
ããã³ããã«JSONãã³ãã¬ãŒããšããŠã¹ããŒãã瀺ãããšã¯ãæé«äŸ¡å€ã®ãã¯ããã¯ã§ãã ã¹ããŒãããããºã ãã§èª¬æããããã³ãã (ããã£ãŒã«ãã®ãªã¹ãã) ã¯ææ§ã§ããã¢ãã«ã¯ãã£ãŒã«ãåããã¹ãã®æ·±ãããŸãã¯ã¿ã€ããæç¢ºã«èŠããæšæž¬ããŸãã
ð ãã¹ãããããªããžã§ã¯ããè€æ°è¡ã«åæ£
ãã¹ããããæ§é ã1è¡ã«è©°ã蟌ããšãã¢ãã«ã¯æ·±ããèŠãããšãé£ãããªããŸããè€æ°è¡ã®ãã³ãã¬ãŒãã¯ã€ã³ãã³ãä»ãã§ãã¯ããã«ç°¡åã«åŸãããšãã§ããŸãã
ð nullãšç©ºã®é åãæç€ºçã«è¡šç€º
ãã³ãã¬ãŒãã䜿çšããŠãnullã®èŠãç® (ãnilãã§ã¯ãªãããN/Aãã§ã¯ãªãã nullã ã) ãšç©ºã®é åã®èŠãç® (nullã§ã¯ãªã []) ã瀺ããŸãããã³ãã¬ãŒãã«ãªãå Žåããããã¯èª€ããŸãã
â ææ§ã§ã â æ§é ããããŸãã
ã«ã¹ã¿ããŒããŒã¿ã®ãªã¹ããè¿ããŸãã
â ã¹ããŒããã³ãã¬ãŒãããã£ãŒã«ãã¿ã€ããæ§é ã§è¡šç€º
ãã®JSONãã©ãŒãããã§æ£ç¢ºã«ã«ã¹ã¿ããŒããŒã¿ãè¿ããŸã: { "customer_id": "string", "name": "string", "email": "string", "purchases": ["item1", "item2"], "total_spent": 0.00, "is_premium": true } ãã¹ãŠã®ãã£ãŒã«ããå«ããŸããnullã«æ±ºããŠããŸããã
ã¢ãã«ã«æå¹ãªåºåäŸãèŠãã
åºåäŸã¯ä¿¡é Œæ§ã5â10ãã€ã³ãäžããããŒã¯ã³ãã»ãšãã©æ¶è²»ããŸããã ã¢ãã«ã¯æåããåºåãã¿ãŒã³ãèŠããšãããè¯ãåŸããŸããç¹ã«ææ§ãªã¿ã€ã (æ¥ä»ãªã¹ãã¯é åãŸãã¯ã«ã³ãåºåã?) ãŸãã¯åæå€ ('ACTIVE'ãŸãã¯'active'?) ã®ãã£ãŒã«ãåãã§ãã
ð ã»ãšãã©ã®ã±ãŒã¹ã§1ã€ã®äŸã§åå
2ã€ä»¥äžã®äŸã¯ãå ¥åæ¡ä»¶ã«ãã£ãŠããŒã¿ãæå³ã®ç°ãªãæ§é ãæã€å Žåã«ã®ã¿åœ¹ç«ã¡ãŸããã»ãšãã©ã®ã¿ã¹ã¯ã§ã¯ã2çªç®ã®äŸã¯ä¿¡é Œæ§ã¡ãªãããªãã§ããŒã¯ã³ã³ã¹ããåã«ãªããŸãã
ð happy pathã§ã¯ãªãå¢çã±ãŒã¹ã®äŸãéžæ
ãã¹ãŠã®ãã£ãŒã«ããæºããããäŸã¯ãnullã瀺ããŠãããªãã·ã§ã³ãã£ãŒã«ããæã€ãã®ããŸãã¯1ã€ã®èŠçŽ ãæã€é åã»ã©æçšã§ã¯ãããŸãããããã«ãããã¢ãã«ã¯å¢çã±ãŒã¹ãã©ã®ããã«åŠçããããèŠããŸãã
â äŸãªã â ã¢ãã«ãåæã§æšæž¬
JSON ã§ã«ã¹ã¿ããŒã®è©³çްãè¿ããŸãããã£ãŒã«ã: customer_idãstatusã Input: {{ data }}
â äŸããã©ãŒããããã¿ã€ããåæå€ã®ã¹ãã«ã瀺ã
JSON ã§ã«ã¹ã¿ããŒã®è©³çްãè¿ããŸãããã£ãŒã«ã: customer_id (string)ãstatus (enum: 'active'ã'inactive'ã'pending')ã äŸ: {"customer_id": "CUST-12345", "status": "active"} Input: {{ data }}
ãã£ãŒã«ãã¬ãã«ã®æç€ºãã¹ããŒãã ãã§ã¯ãªã
ã¿ã€ãã圢åŒãèš±å¯ãããå€ãnullåŠçã®ããã®ãã£ãŒã«ãã¬ãã«ã®æç€ºã¯ãä¿¡é Œæ§ã90%ãã95%+ã«äžããŸãã ãããã®æç€ºã¯ææ§ããæé€ããæçµå±€ã§ãã
| ãã£ãŒã«ãã¿ã€ã | äžè¬çãªãšã©ãŒ | ãããé²ããã£ãŒã«ãæç€º |
|---|---|---|
| æŽæ°å¯Ÿæµ®åå°æ°ç¹ | ã¢ãã«ã¯æŽæ°ãæåŸ ããããšãã«æµ®åå°æ°ç¹ãè¿ã | "score (æŽæ° â å°æ°ç¹ãªãã4.0ã§ã¯ãªã4ãªã©)" |
| åæ (5+å€) | ã¢ãã«ã¯ãªã¹ãã«ãªãå€ãçºæ | ãã¹ãŠã®å€ããªã¹ããããŠãã: ããªã¹ãããã®å€ã®ã¿ã䜿çšããŸããç¥èªã¯ãããŸãããã |
| Nullableãã£ãŒã«ã | ã¢ãã«ã¯nullã§ã¯ãªã""ãè¿ã | "å€ãäžæãªå Žåã¯nullãè¿ããŸãããã£ãŒã«ããæ¢ç¥ã®ç©ºã®å Žåã®ã¿""ãè¿ããŸãã" |
| æ¥ä»ã®æåå | ã¢ãã«ã¯ç°ãªããã©ãŒããããäœ¿çš | "date_created (ISO 8601: '2026-05-15')" |
| é å | ã¢ãã«ã¯ç©ºã®é åã«nullãè¿ã | "åžžã«é åãè¿ããŸãã空ã®å Žåã§ããnullã§ã¯ãªã[]ã" |
ð æç€ºã¯å ·äœçã§æ€èšŒå¯èœã§ããå¿ èŠããããŸã
ãè¯ãå質ãã®ãããªãã£ãŒã«ãæç€ºã¯æ€èšŒäžå¯èœã§ãããæ£ç¢ºã«ISO 8601ãŸãã¯ãšã©ãŒãã¯æ€èšŒå¯èœã§ããæ€èšŒå¯èœãªæç€ºã¯ãåŸã§èªåãã¹ãããµããŒãããŸãã
ð ãã©ãŒãããã«regexãŸãã¯äŸã䜿çš
æ¥ä»ãé»è©±ããŸãã¯ãã©ãŒããããã£ãŒã«ãã®å Žåãæ£èŠè¡šçŸãŸãã¯2â3ã®äŸãæå®ããŸãããããºã ãã§ã¯ãªã: ããã©ãŒããã: /^\d{3}-\d{3}-\d{4}$/ (äŸ: 555-123-4567)ã
ã¿ã¹ã¯ãšåŒ·å¶ã«åºã¥ããŠJSONãYAMLããŸãã¯CSVãéžæ
ã»ãšãã©ã®æ§é ååºåã¿ã¹ã¯ã¯JSONãå¿ èŠã§ããYAMLãšCSVã¯äººéã«ãšã£ãŠã¯æžãã®ãéãã§ãããAPI匷å¶ãªãã§ã¯ã¢ãã«ã¯ãããã§ããä¿¡é Œæ§ãäœãã§ãã JSON with API-modeã¯æé«ã®ä¿¡é Œæ§ããã¢ãæã£ãŠããŸãã
| ãã©ãŒããã | APIãªãã®åº | APIã䜿çšããåº | æé©ãªçšé |
|---|---|---|---|
| JSON | 80â85% | 95%+ | ãã¹ããããæ§é ãAPIããã° |
| YAML | 70â75% | 85â90% | 人éãèªããããã¹ãã£ã³ã°ãªã |
| CSV | 65â70% | 80â85% | ãã©ããããŒãã«ããããããŒã¿ãã£ãã㣠|
| XML | 75â80% | 90â95% | ã¬ã¬ã·ãŒã·ã¹ãã ãå¿ èŠ |
ð JSONã¯ããã©ã«ãã®éžæã§ã
ãã¹ããããæ§é ãããå ŽåããŸãã¯API-level匷å¶ã䜿çšã§ããå Žåã¯JSONã䜿çšããŸããããã¯æé«ã®ä¿¡é Œæ§ããã¢ãæäŸããŸãã
ð ãã©ãããªããŒãã«æ§é ã®CSVããã¹ã
CSVã¯åçŽãªããŒãã«ããŒã¿ (1è¡ = 1ã¬ã³ãŒã) ã§é«éã§ãããŒã¯ã³ã§ããå®äŸ¡ã§ããåã3â5åã®ã¿ã®å Žåã¯ãã¹ããŒãã§CSVããã¹ãããŠãã ãã; ãã¹ãã£ã³ã°ãçºçããå Žåã¯JSONã«åãæ¿ããŸãã
ã¢ãã«èªèº«ã®äžæ£ãªåºåãä¿®æ£ããã
æ§é ååºåããã³ããã倱æããå Žåãå ã®æç€ºã圢åŒãæ£ãããªãåºåãããã³ç¹å®ã®æ€èšŒãšã©ãŒãå«ãä¿®æ£ããã³ãããéä¿¡ããŸããã¢ãã«ã¯ãããã³ããæžãçŽããªãã§60â75%ã®å Žåãèªèº«ã®åœ¢åŒãæ£ãããªãå¿çããæå¹ãªåºåãå埩ããŸãã
ä¿®æ£ããã³ããã«ã¯3ã€ã®å¿ é ã®éšåããããŸã: (1) åºåãã©ã®ããã«èŠãããã®åã¹ããŒãã¡ã³ã (ã¹ããŒããŸãã¯ãã©ãŒããã)ã(2) ã¢ãã«ãè¿ãã圢åŒãæ£ãããªãåºåã(3) ç¹å®ã®æ€èšŒãšã©ãŒ â ãå¿ é ãã£ãŒã«ã'invoice_id'ãäžè¶³ããŠãããããéã¯æååã§ããfloatãæåŸ ãããŸããããã®3éšåæ§é ã¯ãç°ãªãå¿çã§ç°ãªã倱æãçæãã代ããã«ãç¹å®ã®åé¡ãä¿®æ£ããããã«ã¢ãã«ã«ååãªã³ã³ããã¹ããæäŸããŸãã
ð ä¿®æ£ã2å倱æããå Žåã¯ããŒã¹ããã³ãããä¿®æ£
ä¿®æ£ããã³ããã2åç®ã®è©Šè¡ã§æå¹ãªåºåãçæããªãå Žåãåé¡ã¯ããŒã¹ããã³ããã«ãããå ¥åããŒã¿ã«ã¯ãããŸãããå埩ã忢ãã倱æãã¿ãŒã³ã蚺æããŸã: ã©ã®ãã£ãŒã«ãã倱æããã©ã®å ¥åæ¡ä»¶ã§ããã£ãŒã«ãæç€ºãŸãã¯ã¹ããŒã倿Žã远å ããŠããœãŒã¹ã§å€±æãé²ããŸãã
â ïž ä¿®æ£ããã³ããã¯é å»¶ãšã³ã¹ãã远å
åä¿®æ£ããã³ããã¯ããã®ã³ãŒã«ã®APIã³ã¹ããšé å»¶ãåã«ãªããŸããä¿®æ£ããã³ããã¯ãšããžã±ãŒã¹ã®å€±æã®ã¿ (<åºåã®10%) ã«äœ¿çšããŸããããã³ããã10%以äžå€±æããå Žåã¯ãæ¬çªç°å¢ã§ä¿®æ£ã«ãŒããæ§ç¯ããã®ã§ã¯ãªããããŒã¹ããã³ãããä¿®æ£ããŠãã ããã
â ææ§ãªåè©Šè¡ â ãšã©ãŒã³ã³ããã¹ããªã
ç¡å¹ãªåºåãè¿ããŸãããããäžåºŠè©ŠããŠãæå¹ãªJSONãè¿ããŸãã {{original_prompt}}
â ã¹ããŒããåºåãç¹å®ã®ãšã©ãŒã䜿çšããä¿®æ£ããã³ãã
ååã®å¿çã¯æ€èšŒã«å€±æããŸããã以äžã«ãªã¹ãããããšã©ãŒã®ã¿ãä¿®æ£ããä¿®æ£ãããJSONãè¿ããŸãã æåŸ ãããã¹ããŒã: { "invoice_id": "string", "amount": 0.00, "status": "string" } ååã®å¿ç: { "invoice_id": null, "amount": "150.00", "status": "PAID" } æ€èšŒãšã©ãŒ: - invoice_id ã¯nullã§ãããå¿ é ã®æååãã£ãŒã«ãã§ããå¿ èŠããããŸã â å ¥åããæœåºããŸã - amount ã¯æåå ("150.00") ã§ãããfloatã§ããå¿ èŠããããŸã (150.00) - status ã¯å°æåã§ããå¿ èŠããããŸã: 'PAID'ã§ã¯ãªã'paid'ã䜿çšããŠãã ãã ä¿®æ£ãããJSONãªããžã§ã¯ãã®ã¿ãè¿ããŸãã
é åãåæåããã«å€ãã£ãŒã«ãã®ããã³ãããã¿ãŒã³
é åãåæåãããã³nullableãã£ãŒã«ãã¯ãã¹ããŒãã ãã鲿¢ããªã3ã€ã®äžè¬çãªæ§é ååºåãšã©ãŒãœãŒã¹ã§ããããããã¯ãããã³ããå ã®ç¹å®ã®æç€ºãã¿ãŒã³ãå¿ èŠã§ãã
| ããŒã¿ã¿ã€ã | äžè¬çãªãšã©ãŒ | ãããé²ãããã³ãããã¿ãŒã³ |
|---|---|---|
| é å (0èŠçŽ ) | ã¢ãã«ã¯nullã§ã¯ãªã[]ãè¿ã | "èŠçŽ ããªãå Žåã¯ç©ºã®é å[]ãè¿ããŸããé åãã£ãŒã«ãã«nullãè¿ãããšã¯ãããŸããã" |
| é å (1+èŠçŽ ) | 1ã€ã®èŠçŽ ã®ã¿ãèŠã€ãã£ãå Žåãã¢ãã«ã¯åäžãªããžã§ã¯ãã§ã¯ãªãé åãè¿ã | "1ã€ã®èŠçŽ ã®ã¿ãããå Žåã§ããåžžã«é åãè¿ããŸããåäžèŠçŽ ã¯{...}ã§ã©ãããããŠããå¿ èŠããããŸã" |
| åæ (2â5å€) | ã¢ãã«ã¯çç¥åœ¢ãäœæããããåæ§ã®å€ãçºæ | "status: æ£ç¢ºã«1: 'active'ã'inactive'ã'pending' â çç¥åœ¢ãå€çš®ãªã" |
| åæ (6+å€) | ã¢ãã«ã¯ãªã¹ãã«ãªãå€ãçºæ | ãã¹ãŠã®å€ãçªå·ä»ããªã¹ãã§äžèŠ§è¡šç€ºãã以äžã®éã: ãäžèšã®ãªã¹ãããã®ã¿å€ã䜿çšããŸããçç¥åœ¢ãçµã¿åããã¯ãããŸãããã |
| Nullableãã£ãŒã«ã | ã¢ãã«ã¯nullã§ã¯ãªã""ãè¿ããããã£ãŒã«ããå®å šã«çç¥ | "å€ãäžæãªå Žåã¯nullãè¿ããŸãããã£ãŒã«ããæ¢ç¥ã®ç©ºã®å Žåã®ã¿""ãè¿ããŸããåžžã«ãã£ãŒã«ããå«ãã â çç¥ããªãã§ãã ããã" |
| æŽæ°å¯Ÿæµ®åå°æ°ç¹ | ã¢ãã«ã¯æŽæ°ãæåŸ ããããšãã«æµ®åå°æ°ç¹ããŸãã¯äž¡æ¹ã«æååãè¿ã | "score (æŽæ° â å°æ°ç¹ãªããäŸ: 4ã§ã¯ãªã4.0)" ãŸã㯠"price (æµ®åå°æ°ç¹ â æ£ç¢ºã«2å°æ°ç¹ãäŸ: 13ã§ã¯ãªã12.99)" |
| ãã¹ãããããªããžã§ã¯ã | ã¢ãã«ã¯ãã¹ãããããªããžã§ã¯ãããã©ããããŒã«æãããã (äŸ: {"address": {"city": ...}} ã§ã¯ãªã "address.city") | ã¹ããŒããã³ãã¬ãŒãå ã®å®å šãªãã¹ããããæ§é ãé©åãªã€ã³ãã³ãä»ãã§è¡šç€ºããŸãããããºã ãã§ã®ãã¹ãã®èª¬æã¯ããã©ããããŒã«æããããããšãå€ãã§ãã |
â ïž nullãšæªå®çŸ©ãšçç¥
JSONã«ã¯æªå®çŸ©å€ããããŸããããã¢ãã«ã¯ãã®ããã«åäœããããšããããŸã â å€ãäžæã ãšæããšãã¯nullãè¿ã代ããã«ãã£ãŒã«ããå®å šã«çç¥ããå ŽåããããŸããäžæµã³ãŒããhasOwnProperty()ãã§ãã¯ã䜿çšããå Žåãçç¥ããããã£ãŒã«ãã¯nullãã£ãŒã«ããšç°ãªããŸãã远å : ãã¹ããŒãã®ãã¹ãŠã®ãã£ãŒã«ããå«ããŠãã ãããå€ãnullã§ãã£ãŠããã
ð ãã¹ããããåæã¯ãšã¯ã¹ãã©æå¿«ããå¿ èŠ
ãã¹ãããããªããžã§ã¯ãå ã®åæã¯ããããã¬ãã«ã®åæãããã¿ã€ããã¹ãŸãã¯çç¥åœ¢ã®åœ±é¿ãåãããããªããŸãããã¹ãããããªããžã§ã¯ãå ã«åæãããå Žåãã¹ããŒããã³ãã¬ãŒãå ã«ãã£ãŒã«ãã衚瀺ãããŠããå Žæã«è¿ãæç€ºãç¹°ãè¿ããŸããäžè¬çãªãã£ãŒã«ãã«ãŒã«ã»ã¯ã·ã§ã³ã ãã§ãªãã
æ§é ååºåä¿¡é Œæ§ã枬å®ãã
æ¬çªç°å¢ã«æ§é ååºåããã³ããããããã€ããåã«ã20ã±ãŒã¹ã®ãã¹ãã»ããã§95%+ãã¹ã¬ãŒãã察象ãšããŸãã95%æªæºã§ã¯ã倱æã¯ååã«é »ç¹ã«çºçããŠä¿®æ£ã«ãŒããå¿ èŠãšããŸã â ããã¯é å»¶ã远å ãã倱æããã³ãŒã«ããšã«APIã³ã¹ããåã«ããŸãã
ãã£ãŒã«ãã¬ãã«ã§ä¿¡é Œæ§ã枬å®ããå šäœã§ã¯ãªãã95%ã®å šäœçãªãã¹ã¬ãŒãã§ããã1ã€ã®åæãã£ãŒã«ãã§60%ã¯æ¢ç¥ã®æ¬çªç°å¢å€±æã¢ãŒããæã€ããã³ããã§ãããã£ãŒã«ãã¬ãã«ã®æž¬å®ã¯ãæ£ç¢ºã«ã©ã®æç€ºã远å ãŸãã¯åŒ·åãããã瀺ããŸãã
- 1ã¹ããŒãã®åãã£ãŒã«ãã®åæ Œ/äžåæ Œåºæºãå®çŸ©ããŸãã åãã£ãŒã«ã: ã¿ã€ããæ£ãããå¿ é ãã£ãŒã«ããååšããåæå€ãèš±å¯ããããªã¹ãã«ãããæ¥ä»åœ¢åŒãå¿ èŠãªãã¿ãŒã³ã«äžèŽããŸããããããããã°ã©ã æ€æ»ãšããŠèšè¿°ããŸã â ããžã¥ã¢ã«ã€ã³ã¹ãã¯ã·ã§ã³ã§ã¯ãªãããã®ã¹ãããã¯ãã¹ããªã©ã¯ã«ãçæããŸãã
- 220ã±ãŒã¹ã®ãã¹ãã»ãããæ§ç¯ããŸãã 10åã®happy-path (å žåçãæŽåœ¢åŒ)ã5åã®ãšããžã±ãŒã¹ (äžè¶³ããŠãããªãã·ã§ã³ãã£ãŒã«ããé·ãããã¹ããç°åžžãªå€ãå€èšèªã³ã³ãã³ã)ã5åã®æµå¯Ÿç (ãã£ãŒã«ãå€ã«åã蟌ãŸããæç€ºãæ¥µç«¯ãªæ¥ä»ãææ§ãªã¿ã€ã)ãå®éã®ããŒã¿ãã¡ã€ã³ããã®çŸå®çãªå ¥åã䜿çšããŠãã ããã
- 3枩床0ã§å®è¡ãããã£ãŒã«ãããšã®åæ Œ/äžåæ Œãèšé²ããŸãã 確å®çã§åçŸå¯èœãªçµæã®ããã«ã枩床0ã§20ã±ãŒã¹ããã¹ãŠå®è¡ããŸããåãã¹ã â å šäœçãªçµæã ãã§ã¯ãªã â ã§ã©ã®ãã£ãŒã«ããåæ ŒãŸãã¯ããã¯ããããèšé²ããŸãããã£ãŒã«ãã¬ãã«ã®å€±æãã¿ãŒã³ã¯ãã©ã®æç€ºãäžè¶³ããŠããããèå¥ããŸãã
- 4æåçãæãäœããã£ãŒã«ããä¿®æ£ããå床ãã¹ãããŸãã ãã£ãŒã«ãæç€ºã远å ãŸãã¯åŒ·åããŸã: ã¿ã€ãã圢åŒãnullåŠçããŸãã¯åæå€ã20ã±ãŒã¹ãå床å®è¡ããŸããåäžã®ã¿ãŒã²ããæç€ºã¯éåžžãå šäœçãªãã¹ã¬ãŒãã5â15ãã€ã³ãäžããŸãã95%以äžã«éãããŸã§ç¹°ãè¿ããŸãã
- 52çªç®ã®ã¢ãã«ã§æå¹ã«ããŸãã 2çªç®ã®ã¢ãã«ã«å¯ŸããŠå®å šãª20ã±ãŒã¹ã»ãããå®è¡ããŸããGPT-4oã§95%+ãClaude 4.6 Sonnetã§70%ã®ããã³ããã¯ã¢ãã«äŸåã§ããäž¡æ¹ã§æåããããã«æç€ºãããæç¢ºã«ããããããã³ãããæ€èšŒãããã¢ãã«ãææžåããåãã¹ããªãã§å€æŽããªãã§ãã ããã
ð æž©åºŠ0ã§ãã¹ããå®è¡
æ§é ååºåãã¹ãã»ãããæž©åºŠ0ã§å®è¡ããŠã確å®çã§åçŸå¯èœãªçµæãååŸããŸããæž©åºŠ0ããã¹ããããã³ããã¯èšèšã«ããä¿¡é Œæ§ â ã©ãããŒã§ã¯ãããŸãããããã³ããã95%+ãã¿ãŒããã¹ãã£ãã¯ããã¹ããåŸã«ã®ã¿æž©åºŠãäžããæ°ããæž©åºŠã§èšå®ãå床ãã¹ãããŠãä¿¡é Œæ§ãä¿æãããããšã確èªããŸãã
ð ãã«ãã¢ãã«æ¯èŒã§PromptQuorumã䜿çš
PromptQuorumã¯20ã±ãŒã¹ã»ãããGPT-4oãClaude 4.6 SonnetãGemini 2.5 Proã§åæã«ãã¹ããããã£ãŒã«ãããšã®ãã¹ã¬ãŒãã䞊ã¹ãŠè¡šç€ºããŸããããã«ãããã¢ãã«äŸåã®å€±æã1åã®å®è¡ã§èå¥ããã3åã§ã¯ãªãã
æ§é ååºåããã³ããã®5ã€ã®äžè¬çãªééã
5ã€ã®æãäžè¬çãªæ§é ååºåããã³ããã£ã³ã°ãšã©ãŒã¯ãã¹ãŠåãçç¶ â 鿬 çãŸãã¯äœç³»çãªå€±æãçæããŸãã â ç°ãªãä¿®æ£ãå¿ èŠã§ããæç€ºã远å ããåã«ãã©ã®ãšã©ãŒãæã£ãŠãããã蚺æããããšã¯æéãç¯çŽããŸãã
â ãããºã§ã¹ããŒãã説æããåã蟌ãŸãªã
Why it hurts: ãããºã®èª¬æã¯ææ§ã§ã â ãèŠçŽ ã®ãªã¹ããã¯é åãã«ã³ãåºåãæååããŸãã¯çªå·ä»ããªã¹ãã®å ŽåããããŸã; ãåèšãã¯æååãŸãã¯floatã®å ŽåããããŸã
Fix: ã¹ããŒããæåŸ ããJSON-templateãšããŠããã³ããã«çŽæ¥åã蟌ã¿ãŸãããã³ãã¬ãŒãã¯ããããºã®èª¬æã§ã¯ãªããæ§é ãéããŠãã£ãŒã«ãåããã¹ãã®æ·±ããããã³å€ã®ã¿ã€ãã瀺ããŠããŸãã
â æ¬ èœããŠããããŸãã¯äžæãªå€ã®åŠçæ¹æ³ãæå®ããªãã§ãã ãã
Why it hurts: ã¢ãã«ã¯ãnullãè¿ã代ããã«äžæãªãã£ãŒã«ãã®åŠ¥åœãªå€ãçºæããŸã â æ¥ä»ã¯ãäžæããéé¡ã¯0ãæ¬ èœããIDã¯ãN/Aãã«ãªããŸã â ãªããã¿ã€ãæ€èšŒããã¹
Fix: nullableåãã£ãŒã«ãã«å¯ŸããŠæç€ºçãªnullåŠçã远å ããŸã: ãå€ãå ¥åãã確å®ã§ããªãå Žåã¯nullãè¿ããŸããå€ãæšæž¬ãŸãã¯çºæããªãã§ãã ãããç©ºã®æååãè¿ããªãã§ãã ãããã
â ããã³ãããéçºããã¢ãã«ã«å¯ŸããŠã®ã¿ãã¹ããã
Why it hurts: æ§é ååºåä¿¡é Œæ§ã¯ã¢ãã«éã§å€§ããç°ãªããŸã â GPT-4oã§95%ã®ããã³ããã¯Claude 4.6 Sonnetã§70%倱æããããšãã§ããã¹ããŒãå¶çŽã§ã®ããŸããŸãªæç€ºãã©ããŒãåå ã§
Fix: ã©ã€ãã©ãªãã¢ãã«äŸåãšããŠåŠçããåã«ãæå°2ã¢ãã«ã«å¯ŸããŠåæ§é ååºåããã³ãããå®è¡ããŸããPromptQuorumãŸãã¯çŽæ¥APIåŒã³åºãã䜿çšã㊠ããã³ãããã¢ãã«å šäœã§ãã¹ã 1ã€ã®ã¹ãããã§ã
â åãããã³ããã§å€±æããåºåãå詊è¡
Why it hurts: 倱æããããã³ããã¯æž©åºŠ0ã§å詊è¡ãããæ¯ååã倱æãçæããŸããããé«ã枩床ã§ã¯ãç°ãªããäŸç¶ãšããŠå€±æããåºåãçæããŸã â ç°ãªããšã©ãŒãåãæ ¹æ¬åå
Fix: ç¹å®ã®æ€èšŒãšã©ãŒãšåœ¢åŒãæ£ãããªãåºåã䜿çšããä¿®æ£ããã³ããã䜿çšãããã倱æãã¿ãŒã³ã蚺æ (ã©ã®ãã£ãŒã«ããã©ã®å ¥åå) ããããŒã¹ããã³ããã«ã¿ãŒã²ãã ãã£ãŒã«ãæç€ºã远å ããŸãã
â å®å šãªæ§é ååºåãœãªã¥ãŒã·ã§ã³ãšããŠJSON-modeãæ±ã
Why it hurts: JSON-modeã¯è§£æäžå¯èœãªåºåãé²ããŸãããã¹ããŒãæºæ ã®å€±æãé²ããŸãã â JSON-modeã䜿çšããã¢ãã«ã¯ãäžè¶³ããŠãããã£ãŒã«ããééã£ãã¿ã€ããç¡å¹ãªåæå€ãå«ãæå¹ãªJSONãè¿ãããšãã§ãããã¹ãŠãäžæµæ€èšŒã«å€±æ
Fix: API-enforced JSON-modeã䜿çšããå Žåã§ããåžžã«ã¹ããŒã-in-prompïœãš ãã£ãŒã«ãæç€ºãå«ããŠãã ãããæ§é ååºåãšJSON-mode åç § APIæ§æâ ãã®ã¬ã€ãã¯ããã³ããã¬ãã«ã®è£å®ãã«ããŒããŠããŸãã
åèè³æ
- æ§é ååºåãšJSON-mode: ãã€ãã©ã®ããã«äœ¿çšããã â GPT-4oãClaudeãGeminiã®ããã®api-levelJSON-modeæ§æãšãã¢ãã«æºæ ããŒãã«
- æ§é ååºåçšã®ãã¹ãããŒã« (2026) â æ§é åæœåºã¯ãŒã¯ãããŒçšã«æ¯èŒãããInstructorãOutlinesãPydantic AIãLangChain
- åºåãå¶åŸ¡ããæ¹æ³: ãã©ãŒããããæž©åºŠãå¶çŽãã³ãŒã â ã¡ã«ãã¯ã¹ãã³ãŒãå¶çŽãæ§é åã¿ã¹ã¯ã忢ã·ãŒã±ã³ã¹ã®æž©åºŠãštop-p
- ããã³ããå質ãè©äŸ¡ããæ¹æ³: ã¡ããªã¯ã¹ããã¹ãããã§ãã¯ãªã¹ã â 20ã±ãŒã¹ãã¹ãã»ããæ§ç¯ããã€ããªåæ Œ/äžåæ Œã¹ã³ã¢ãªã³ã°ãLLM-as-judgeã«ãŒããªãã¯
- ã¢ãã«å šäœã§ããã³ããããã¹ãããæ¹æ³ â GPT-4oãClaude 4.6 SonnetãGemini 2.5 Proå šäœã§åãããã³ãããå®è¡ããŠãã¢ãã«äŸåã®å€±æãæ€åº
- Zero-shotãšå°æ°shotããã³ããã£ã³ã° â ããã³ããã«äŸã远å ããå ŽåãšããŸããŸãªã¿ã¹ã¯ã¿ã€ãã§å«ããæ°
ãœãŒã¹
- OpenAIæ§é ååºåããã¥ã¡ã³ã â OpenAI APIã®response_formatãšJSON-modeã®æè¡ä»æ§
- Anthropictool-useããã¥ã¡ã³ã â Claude tool_useãã©ã¡ãŒã¿ãAPI-levelã§ã®æ§é ååºåã匷å¶ããæ¹æ³
- Google Gemini GenerationConfigããã¥ã¡ã³ã â Geminiã®responseMimeTypeæ§æãã€ãã£ãJSONåºå
- BAMLãã³ãããŒã¯: æ§é ååºå粟床ãã¬ãŒããªã â ã¢ãã«å šäœã§å¶çŽãšå¶çŽã®ãªãçæã®éã®ä¿¡é Œæ§ã®å·®ã«ã€ããŠã®èšŒæ
- NIST AI Risk Management Framework â æ¬çªã·ã¹ãã ã«ãããAIåºåæ€èšŒã®ããã®ã¬ããã³ã¹åå