Mermaid/Django, fenced-output от LLM

LLM возвращает Mermaid-код внутри блока ```mermaid. Перед блоком может стоять пояснение. После блока может остаться текст. Внутри встречаются Markdown, комментарии с # и строки до первой команды flowchart, sequenceDiagram или другой валидной головы Mermaid.

Backend сначала извлекает содержимое fenced-блока. Потом ищет первую строку с поддерживаемым типом диаграммы. Строки до нее удаляются. Комментарии переводятся из # в %%. Ответ без валидной головы получает статус 503.

Браузер получает очищенный код. Перед рендером Mermaid выполняет parse. Код с синтаксической ошибкой не передается в render.

Статья на Хабр Проект: AI Chat Stepik: LLM-Chat + Mermaid + ЮKassa

#mermaid #django #nextjs #python #typescript #llm #openrouter #ai #svg #fullstack

Mermaid/Django, fenced-output от LLM | Сетка — социальная сеть от hh.ru