Recommendation for Extraction
Structured Data Extraction
Our top recommendation for Structured Data Extraction, based on the public evidence we track, is OpenAI: GPT-5.6 Luna.[1][2][3][4][5] Use for high-volume extraction pipelines where cost efficiency matters: it was 83% cheaper and 21% faster than alternatives while maintaining 24/24 valid JSON outputs in controlled tests. Watch out: Watch for API version drift: gpt-6-luna removed support for text.format of type json_schema, so pin to gpt-5.6-luna explicitly and avoid the gpt-5.6 alias which resolves to Sol. OpenAI: GPT-5.6 Sol is the next-ranked alternative. Consider for general text tasks where LMArena ranking guides selection, as it holds Elo 1483 in blind human preference voting.
About this recommendation
- Updated
- Sep 25, 2026
- Evidence through
- Sep 25, 2026
- Sources
- 21
- Revision
- v79
Decision audit
Why this result
Inspect the inputs and the computed order behind the recommendation.
Models screened
20
live candidates
Evaluation feeds
6
task-weighted
Winner coverage
43%
intended feed weight
Largest provider share
4 of 8
Anthropic
Sources evaluated
The task sets these weights before any model is scored.
| Evaluation feed | Weight | Winner result | Field measured |
|---|---|---|---|
| Structured-output evalunavailable | 40% | feed unavailable | 0/20 |
| LiveBench Data Analysis | 20% | #17 | 18/20 |
| Berkeley Function Calling | 15% | not measured | 3/20 |
| LMArena Text | 10% | #39 | 19/20 |
| price weight | 10% | 100/100 | 20/20 |
| OpenRouter usage | 5% | 99/100 | 20/20 |
Provider concentration
Each exact model is scored separately; provider identity is not a ranking input.
- Anthropic4 models
- OpenAI3 models
- Qwen1 model
Decision table
Every published model is shown in computed order. Practitioner sources are distinct community threads, not the citations repeated in the prose below.
| Rank | Model | Relative score | Coverage | Practitioner evidence | Strongest measured reason |
|---|---|---|---|---|---|
| 01 | GPT-5.6 LunaOpenAI | 65 | 43% | 15 threads · 14 families · 4 cautions | #17 LiveBench Data Analysis · #39 LMArena Text |
| 02 | GPT-5.6 SolOpenAI | 59 | 43% | 3 threads · 3 families · 2 cautions | #6 LiveBench Data Analysis · #13 LMArena Text |
| 03 | Claude Sonnet 4.6Anthropic | 57 | 43% | 6 threads · 5 families · 4 cautions | #18 LiveBench Data Analysis · #21 LMArena Text |
| 04 | Claude Fable 5Anthropic | 57 | 43% | 2 threads · 1 families · 2 cautions | #1 LMArena Text · #3 LiveBench Data Analysis |
| 05 | Qwen3.8 27BQwen | 55 | 43% | 3 threads · 3 families · 1 cautions | #20 LiveBench Data Analysis · #52 LMArena Text |
| 06 | GPT-6 SolOpenAI | 54 | 29% | 1 threads · 1 families · 0 cautions | #2 LiveBench Data Analysis |
| 07 | Claude Sonnet 4.5Anthropic | 54 | 37% | 2 threads · 2 families · 1 cautions | #2 Berkeley Function Calling · #34 LMArena Text |
| 08 | Claude Opus 4.6Anthropic | 53 | 43% | no linked practitioner threads | #2 LMArena Text · #40 LiveBench Data Analysis |
Relative score combines normalized benchmark quality and signal coverage; independent practitioner evidence and freshness are bounded tie-breakers. It is an ordering score, not an absolute quality percentage. The writing model receives this order and cannot change it.
GPT-5.6 Luna delivers reliable structured JSON output with strong cost and latency advantages for extraction workloads, though it requires careful handling of API version compatibility.
Best when: Use for high-volume extraction pipelines where cost efficiency matters: it was 83% cheaper and 21% faster than alternatives while maintaining 24/24 valid JSON outputs in controlled tests.
Tips
- Use for high-volume extraction pipelines where cost efficiency matters: it was 83% cheaper and 21% faster than alternatives while maintaining 24/24 valid JSON outputs in controlled tests.
- Deploy for bounded proposal and classification tasks where Pydantic JSON Schema validation is required, as it supports strict structured output modes.
Watch out for
- Watch for API version drift: `gpt-6-luna` removed support for `text.format` of type `json_schema`, so pin to `gpt-5.6-luna` explicitly and avoid the `gpt-5.6` alias which resolves to Sol.
- Expect ~15% failure rates in production agentic workflows with tool chains, including invalid structured outputs, phantom tool calls, and malformed responses.
GPT-5.6 Sol ranks 13th on LMArena and 7th on LiveBench Data Analysis.
Best when: Consider for general text tasks where LMArena ranking guides selection, as it holds Elo 1483 in blind human preference voting.
Tips
- Consider for general text tasks where LMArena ranking guides selection, as it holds Elo 1483 in blind human preference voting.
Watch out for
- Do not use for structured output workflows: organizations explicitly deprecate Sol in favor of Luna for all Responses API calls, and the `gpt-5.6` alias resolves to Sol which lacks Luna's structured output reliability.
Claude Sonnet 4.6 is the only Anthropic model in its plugin with declared structured-output support, though implementation gaps cause production failures in taxonomy naming workflows.
Best when: Select when you need Anthropic ecosystem integration with native structured output declarations, as it is uniquely flagged for this capability in the Dify plugin.
Tips
- Select when you need Anthropic ecosystem integration with native structured output declarations, as it is uniquely flagged for this capability in the Dify plugin.
- Use for evidence-to-intent reasoning tasks where the prompt explicitly instructs backward reasoning from files to user intent, with structured analysis outputs.
Watch out for
- Avoid for critical production workflows: the plugin declares structured-output support but contains zero handling for `json_schema`, `output_format`, or `structured-outputs-2025-11-13`, causing 100% failure rates in taxonomy naming with 8 retry attempts over 23 minutes.
Claude Fable 5 lacks structured output support entirely, making it unsuitable for JSON extraction workflows despite its positioning in the Anthropic lineup.
Best when: Consider only after reviewing the cited caution.
Watch out for
- Exclude from structured data pipelines: like Opus 4.7 and 4.8, it dropped support for structured outputs, preventing reliable JSON schema adherence.
Qwen3.8 27B offers open-weight deployment with competitive LiveBench scores, though structured output validation failures and limited hosting availability constrain production use.
Best when: Self-host for latency-sensitive interactive traffic on consumer hardware, as it runs at 262K context on a 4090 with low TTFT for classification and conversational tasks.
Tips
- Self-host for latency-sensitive interactive traffic on consumer hardware, as it runs at 262K context on a 4090 with low TTFT for classification and conversational tasks.
- Evaluate for data analysis workloads where LiveBench performance matters, scoring 76.59% on table joining and reformatting tasks.
Watch out for
- Expect structured output validation failures: Ollama returns content that fails Pydantic schema validation for `AdvisoryAnalysis` objects, requiring fallback handling.
- Check provider availability before deployment: not on OpenRouter as of 2026-08-14, with only `qwen3.8-2.4t-a95b` and `qwen3.8-max` variants available from this generation.
GPT-6 Sol ranks third on LiveBench Data Analysis for table joining and reformatting tasks, making it a strong candidate for complex structured data transformations.
Best when: Consider only after reviewing the cited caution.
Watch out for
- Verify Bedrock integration carefully: MD_JSON handler may skip Converse form conversion, causing raw request failures that TOOLS and JSON_SCHEMA handlers handle correctly.
Claude Sonnet 4.5 achieves second place on BFCL for format-sensitive tool calling but lacks native structured output declarations, requiring strict mode enforcement to prevent type mismatches.
Best when: Deploy for multi-turn agentic workflows with tool use where BFCL ranking matters, as it scores 73.24% overall with strong performance on format-sensitive operations.
Tips
- Deploy for multi-turn agentic workflows with tool use where BFCL ranking matters, as it scores 73.24% overall with strong performance on format-sensitive operations.
Watch out for
- Always enable `strict: true` in Bedrock Converse tool specifications: without constrained decoding, the model returns arrays as strings causing `PageDecodeError`, and the plugin does not declare structured-output support for this version.
Anthropic: Claude Opus 4.6 ranks #2 of 146 on LMArena's overall text arena (Elo 1505), based on blind human preference votes.
Best when: Consider only after reviewing the cited caution.
Frequently asked
- What is the top-ranked model for Structured Data Extraction?
- OpenAI: GPT-5.6 Luna ranks first in the current evidence-weighted comparison. Use for high-volume extraction pipelines where cost efficiency matters: it was 83% cheaper and 21% faster than alternatives while maintaining 24/24 valid JSON outputs in controlled tests.[1]
- What should I watch out for with OpenAI: GPT-5.6 Luna?
- Watch for API version drift: `gpt-6-luna` removed support for `text.format` of type `json_schema`, so pin to `gpt-5.6-luna` explicitly and avoid the `gpt-5.6` alias which resolves to Sol.[2][3][4]
- What is an alternative to OpenAI: GPT-5.6 Luna?
- OpenAI: GPT-5.6 Sol is the next-ranked option. Consider for general text tasks where LMArena ranking guides selection, as it holds Elo 1483 in blind human preference voting.[5]
Sources
- 1
“Parent epic: #6842 ## Context Small screening runs are promising but not sufficient for provider decisions: - Exact router-prompt battery, 24 calls/model: Haiku 4.5 and GPT-5.6 Luna both produced valid JSON 24/24 and scored 21/24 against the strict fixture. Luna was about 83% cheaper and 21% faster at median latency. - Full-prompt Gemini 3.7 Flash screen: useful visible answers in 10/12 cases; two malformed function-call failures mapped to Anthropic-specific orchestration. - Production comparis…”
bokelley · GitHub · Aug 25, 2026 - 2
“### Description I have a Foundry Agent that uses gpt-5.6-luna model. Everything works fine. **I switched to use gpt-6-luna model.** Tested both from playground/code, it now fails with this error: Invalid parameter: 'text.format' of type 'json_schema' is not supported with model version `gpt-6-luna-2026-09-22` I have updated the agent, to return text or JSON object instead of json_schema, and it still fails with: unsupported_parameterUnsupported parameter: 'reasoning.effort' is not supported wit…”
lucianteodorescu-milestone · GitHub · Sep 24, 2026 - 3
“## 概要 MJ Prompt Studioの実API利用時に行うすべてのOpenAI Responses API呼び出しを、次の固定構成へ全面移行する。 現在利用可能な`gpt-5.4-mini` / `gpt-5.4-nano`、保存済みの旧モデル設定、機能別のモデル・推論強度選択、環境変数によるモデル上書き、旧モデルへのフォールバックを廃止する。 AI Brief、語彙補助、Prompt Compiler、Prompt Doctor、Parameter Advisor、Reference Analysis、Matrix Lab、Result Review、Final Audit、接続テストを含む全経路で、GPT-5.6 Luna Highだけを使用する。 --- ## 決定事項 - 採用モデルIDは`gpt-5.6-luna`とする。 - `gpt-5.6`エイリアスはSolへ解決されるため使用しない。 - 推論強度は常に`high`を明示する。API既定値へ委ねない。 - `text.verbosity`は常に`low`を明示する。 - 標準モードを使用し、`reasonin…”
stillshore-chirp · GitHub · Jul 31, 2026 - 4
“## 概要 本リポジトリで行うすべての OpenAI Responses API 呼び出しを、次の固定構成へ全面移行する。 `gpt-5-mini`、GPT-5.4 系、GPT-5.5 系、GPT-5.6 Sol、GPT-5.6 Terraを含む旧構成・代替モデル・フォールバックモデルは今後使用しない。 モデルの自動ルーティング、用途別モデル切り替え、失敗時の上位モデルへのエスカレーションも導入しない。通常計画、低確信度時の確認、障壁通知、失敗後の再計画を含め、LLMを呼ぶ全経路を GPT-5.6 Luna High に統一する。 --- ## 決定事項 - 採用モデルIDは `gpt-5.6-luna` とする。 - 推論強度は常に `high` とする。 - `reasoning.effort` を省略してAPI既定値へ委ねない。 - `gpt-5.6` エイリアスは Sol を指すため使用しない。 - `text.verbosity` は `low` を標準とする。構造化出力に必要なフィールドはJSON Schemaで担保する。 - `reasoning.mode: pro`、…”
stillshore-chirp · GitHub · Jul 31, 2026 - 5
“Ranks #13 of 146 on LMArena's overall text arena (Elo 1483), based on blind human preference votes.”
LMArena text arena · Benchmark · Sep 13, 2026 - 6
“## 목적 및 담당 범위 자연어 서비스 요구사항을 입력받아 Requirements와 Gaps로 구조화하고, UI에서 확인할 수 있는 초기 분석 모듈을 구현한다. - 담당: 권지연 - 범위: Input UI → Requirement Extraction / Structuring → Gap Analysis → Handoff - Clarification 이후 기능은 이번 구현 범위에서 제외한다. ## 구현 내용 - [x] 자연어 입력 UI와 FastAPI 연결 - [x] Mock / SnowChat Provider 선택 구조 및 환경 변수 설정 - [x] Requirement Extraction과 Gap Analysis의 호출·Prompt·Schema 분리 - [x] 모델 목록 확인 후 두 단계 모두 `gpt-5.6-luna` 사용 - [x] Pydantic JSON Schema 기반 strict Structured Output 및 반환값 검증 - [x] Requirement–Gap 참조…”
Jiyeon125 · GitHub · Sep 24, 2026 - 7
“## Preliminary shared Luna spike: raw snapshot and independent analysis **Verdict: keep GPT-5.6 Luna as a candidate for bounded proposal/classification work. This experiment does not qualify autonomous issue admission or a production Oracle replacement.** Cross-project context: [XYZ #522](https://github.com/HiQS-Labs/XYZ-forge/issues/522) and [Needle #13](https://github.com/HiQS-Labs/Needle-fork/issues/13). Posted at the operator's request after the results returned. ### What actually ran Two i…”
noelsaw1 · GitHub · Sep 9, 2026 - 8
“## 決定事項 + 追加作業(2026-08-17) - **planning モデルは gpt-5.6-luna で確定**(ユーザー承認済み)。`.env` の `LLM_MODEL` を切替済み - **分類レイヤの方針**: 専用小型モデルは置かない。実測 — 正規表現層ヒット時 2ms / LLMフォールバック(Luna)1.3s。分類コール自体のコストは 〜0.01円で無視可能、実コストは音声ループに直列で乗る 1.3s のレイテンシ → T-139 スコープに「単純ターンの分類+応答 1コール統合(または並行実行)」を最適化項目として含める。層構成は「regex(0ms) → Luna分類 → Luna生成」で維持 - **プロンプトチューニングUIを追加**: `apps/ai/eval/ui/index.html`(タスク分解/意図分類/チャットの3タブ、dialogues.json プリセット、operations テーブル・priority チップ・warnings の整形表示、raw JSON 折りたたみ、実行メモ付き履歴)。起動は `apps/ai/dev.…”
devacxx01 · GitHub · Aug 17, 2026 - 9
“Contrast data point from the hindsight production host: the same workload (retain extraction + agentic reflect with tool chains) now runs on gemini-3.8-flash with zero failures while luna still shows its modes. Same-bridge comparison, identical prompts and tools: | model | structured output | tool-call protocol | production census | |---|---|---|---| | gpt-5.6-luna | - | - | ~15% failures (183 invalid structured, 138 phantom tools, 187 truncated, 68 malformed / 3724 completions) | | glm-5.3-fla…”
mrwogu · GitHub · Sep 10, 2026 - 10
“Hi @Mabdurahman68! I'm [Dosu](https://go.dosu.dev/dosubot) and I'm helping the Dify team. Your analysis is confirmed by the code. `claude-sonnet-4-6.yaml` is the only model file in the Anthropic plugin that declares `structured-output` in its features list [[1]](https://github.com/langgenius/dify-official-plugins/blob/93f1deb4fa4d06fcf81f7843fd55a7fbd6ce2b27/models/anthropic/models/llm/claude-sonnet-4-6.yaml#L5-L11), while `claude-sonnet-4-5-20250929.yaml` and other models do not [[2]](https://…”
dosubot[bot] · GitHub · Aug 18, 2026 - 11
“## What `src/analyze.ts` — the single network call in the entire tool. Takes a `CapturedState`, sends it to `claude-sonnet-4-6`, and returns an `Analysis`: `summary`, `hypothesis`, `ruled_out[]`, `working_set[]`, `next_step`. ## Why This is the point of the project. Everything else is plumbing around one question: *why* were those files open? **The prompt is the product.** It explicitly instructs the model to reason backwards from evidence to intent, and tells it that a mechanical description o…”
kishuxz · GitHub · Aug 17, 2026 - 12
“## Summary On a self-hosted stack with `LAT_AI_GENERATION_PROVIDER=anthropic` (model `claude-sonnet-4-6`), every `gardenTaxonomyWorkflow` run fails in `nameTaxonomyClusterActivity` with: 8 attempts with backoff over ~23 minutes, then the workflow fails; 4 runs/day on the `0 */6 * * *` gardening cron. 13 of 13 runs in our Temporal visibility window failed, zero successes ever, so the project's Topics taxonomy never gets named. Reproduced on `v0.3.102`; `name-taxonomy.ts` and `ai-vercel/src/ai.ts…”
jkbdco · GitHub · Sep 17, 2026 - 13
“Concrete instance filed separately: langgenius/dify-official-plugins#3671 `claude-sonnet-4-6` in `langgenius/anthropic` v0.3.26 declares `structured-output` in its model YAML while `models/llm/llm.py` contains no handling for it — zero matches for `json_schema`, `output_format`, `structured`, or `structured-outputs-2025-11-13`. That is what makes the branch above observable today: the declaration is sufficient to take the native path, the plugin never reads the schema, and the fallback has alre…”
Mabdurahman68 · GitHub · Aug 18, 2026 - 14
“I dont get why Opus 4.7, 4.8, and now Fable all stopped supporting structured outputs? Does no one else care about that? I find it incredibly useful to reliably pass LLM output directly to other APIs libraries”
coreylane · Hacker News · Jun 9, 2026 - 15
“## Why Two workload shapes with opposite requirements are currently served by one always-on GPU: - **Sprinkled interactive traffic** (Discord, chat, vision, classifier, pi turns). Needs a resident model and low TTFT. Served well today by the 4090 running Qwen3.8-27B at 262K context. - **Clumped batch work** (`model-bench` sweeps, bulk classification, embeddings backfills, autonomous queue jobs). Latency-insensitive, preemption-tolerant, and wants a much larger model than the 4090 can hold. The…”
jomcgi · GitHub · Aug 26, 2026 - 16
“Scores 76.59% on LiveBench Data Analysis (#24 of 58), including table joining and reformatting tasks.”
LiveBench Data Analysis · Benchmark · Jun 25, 2026 - 17
“~~~ warning: https://github.com/elhoim/misp-modules/commit/625b54908efbd6acc8343aa3370d401dd370e748 does not look like a git-format patch or unified git diff warning: patch set text truncated from 386710 to approximately 240000 characters for the model context patch: sha256=eef4545d98a68723… commit=unknown files=0 models=qwen3.8:27b warning: model qwen3.8:27b failed: Ollama returned content that did not validate against the structured-output schema: 1 validation error for AdvisoryAnalysis Inval…”
adulau · GitHub · Sep 25, 2026 - 18
“## Proposal Evaluate **Qwen3.8-27B** ([`Qwen/Qwen3.8-27B`](https://huggingface.co/Qwen/Qwen3.8-27B), Apache-2.0, released 2026-08-05) as a member of the generation-2 sentiment panel in `AI_sentiment_analysis/sentiment_core.py` (`PANEL`). The panel is currently Gemma 4 31B, GPT-5.6 Luna, Mistral Small 4 and DeepSeek V4 Flash 0731. > **Blocked today.** Qwen3.8-27B is **not on OpenRouter** as of 2026-08-14. The > catalog carries only `qwen/qwen3.8-2.4t-a95b` and `qwen/qwen3.8-max` from this > gene…”
fmadore · GitHub · Aug 14, 2026 - 19
“Thanks for making `from_provider("bedrock/...")` pick a working mode per model family. The TOOLS and JSON_SCHEMA handlers already convert raw (`response_model=None`) requests to Converse form. MD_JSON seems to be the one handler that skips it. - [x] This is actually a bug report. - [ ] I am not getting good LLM Results - [ ] I have tried asking for help in the community on discord or discussions and have not received a response. - [x] I have tried searching the documentation and have not found…”
kimnamu · GitHub · Sep 23, 2026 - 20
“Scores 73.24% overall on BFCL (#2 of 31), measuring single-turn, multi-turn, web-search, memory, hallucination, and format-sensitive tool calling; mean latency was 4.31s.”
Berkeley Function-Calling Leaderboard · Benchmark · Sep 24, 2026 - 21
“## 背景 #111 で経路 B の応答を tool use で受け取るようにしたが、2026-08-22 23:09 の再投入 (2608.17950v1) で 12 ページ目がモデルの出力 `sections` が配列ではなく文字列で返り、`PageDecodeError` になった (#113 の再試行でも同じ)。 tool use の `inputSchema` は `strict` を付けないと型を保証しない。公式ドキュメントは「strict なしでは型の不一致や必須欠落が起こり得る」と述べ、解決策として `strict: true` (constrained decoding) を提示している。 Claude Sonnet 4.5 は Bedrock Converse (`bedrock-runtime`、cross-region inference 含む) で対象。 - [ToolSpecification API Reference](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime…”
tamaco489 · GitHub · Aug 22, 2026
Rankings synthesized from community evidence and open benchmarks. See methodology. Not driven by vendor marketing.