TGViewer
Записки MLEшника Записки MLEшника @yet_another_mle · 859 subscribers
Post #127 1.12K
Энжоеры langchain тут?

Недавно задумался, а что происходит при llm.with_structured_output.

Интересовали два вопроса:
1. Гарантируется ли формат?
2. А как это работает, если провайдер не умеет “вернуть JSON по схеме”

Копнув глубже, оказалось:
with_structured_output - это не одна функция, а 3 разных режима под капотом:

### 1. json_schema
Провайдер применяет server-side ограничение на формат ответа (constrained decoding)
• работает только если провайдер это реально поддерживает
• через прокси (например OpenRouter) может деградировать

### 2. function_calling
Хитрый трюк:
• схема превращается в tool
• модель возвращает не текст, а вызов функции (tool_call)
• аргументы функции = ваш JSON

### 3. json_mode
Просто добавляем в промпт: “верни JSON вот в таком формате, умоляю”

### Итого
Гарантируется ли формат?
• json_schema (нативный) - почти да (но вот gemini-2.5-flash-mini через openrouter у меня не всегда)
• function_calling - почти да
• json_mode - если хорошо попросишь

LLM - это стохастический попугай. Все, что она умеет - вероятностно генерировать токены. Всегда есть шанс, что промпт проигнорируется, json будет битый или не тот.

Поэтому помним - LLM нам ничего не должна. Она как работа с сетью - в случайный момент может отвалиться. Без retry не обойтись
  • 👍 15
  • 🔥 6
  • 👀 4
  • 👎 1
More from @yet_another_mle
  1. May 14, 2026Кто пробовал Paperclip? Это такой оркестратор агентов, но в виде структуры организации. Вы…
  2. Apr 30, 2026Полезный режим был в ChatGPT — Study Mode Пока собрался про него написать, его уже убрали…
  3. Mar 26, 2026Неожиданно полезный сценарий для Claude Code — дебаг сложных LLM-пайплайнов Один промпт де…
  4. Mar 10, 2026Довольно давно пользуюсь Obsidian, и недавно стал пользоваться Claude Code. Первый — это н…
  5. Jan 26, 2026Полезный сайтик https://deepwiki.directory, с ИИ описанием репозиториев. Из прикольного -…
  6. Jan 20, 2026Yet another сайт со сравнением ллмок, но еще и с метриками на бенчмарках https://llm-stats…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →