一日一技:如何正確渲染大模型返回的Markdown?

2025年06月08日18:32:03 科技 1739

一日一技:如何正確渲染大模型返回的Markdown? - 天天要聞

我們經常讓大模型返回markdown格式的文本,然後通過Pythonmarkdown庫把文本渲染成HTML

但不知道大家有沒有發現,大模型返回的Markdown並不是標準的Markdown。特別是當返回的內容包含列表時,大模型返回的內容有問題。例如下面這段文本:

**關於這個問題,我有以下看法**
* 第一點
* 第二點
* 第三點

你粗看起來沒有問題,但當你使用markdown模塊去把它渲染成HTML時,你會發現渲染出來的結果不符合你的預期,如下圖所示:

一日一技:如何正確渲染大模型返回的Markdown? - 天天要聞

這是因為標準的Markdown對換行非常敏感,列表項與它上面的文本之間,必須有一個空行,才能正確解析,如下圖所示:

一日一技:如何正確渲染大模型返回的Markdown? - 天天要聞

不僅是空行,還有多級列表的縮進問題。標準Markdown的子列表項縮進應該是4個空格,但大模型返回的子列表縮進經常只有3個空格,這就導致解析依然有問題。如下圖所示:

一日一技:如何正確渲染大模型返回的Markdown? - 天天要聞

而且這個空行問題和縮進問題,我嘗試過反覆在Prompt裡面強調,但大模型依然會我行我素,無論是國產大模型還是Claude或者Gemini 2.5 Pro這些最新大模型,都有這個問題。

我曾經一度被憋得沒辦法,讓大模型給我返回JSON,我再寫代碼把JSON解析出來手動拼接成標準Markdown。

後來,我發現主要的問題還是Python的markdown庫對格式要求太嚴格了,其實換一個更寬容的庫就可以解決問題。於是我找到了mistune這個庫。使用它,直接就解決了所有問題。如下圖所示:

一日一技:如何正確渲染大模型返回的Markdown? - 天天要聞

mistune的用法非常簡單:

import mistune

html = mistune.html('一段markdown')

並且它天然支持數學公式、腳註等等高級語法。更多高級操作,可以查看它的官方文檔[1]。

參考文獻

[1] 官方文檔: https://mistune.lepture.com/en/latest/guide.html

科技分類資訊推薦

全市同行“圍觀” 湖裡台青創業基地“出圈” - 天天要聞

全市同行“圍觀” 湖裡台青創業基地“出圈”

6月5日下午廈門市台青創業基地觀摩交流會在湖裡區海西MCN兩岸青年三創基地成功舉辦此次活動旨在通過實地觀摩與深入交流,共同探索支持台青創業基地提質增效、轉型升級的有效路徑,進一步提升全市台青創業基地的整體服務水平。
小直屏顏值封神!vivo S30系列開售即巔峰,搶到就是賺到 - 天天要聞

小直屏顏值封神!vivo S30系列開售即巔峰,搶到就是賺到

手機圈又出新爆款!vivo S30系列今天正式登場,配置給力、顏值爆表,還攜手三麗鷗送出專屬定製禮盒。從外觀、系統到影像全面升級,尤其是這次的mini版,輕巧又便攜,堪稱拍照達人的隨身利器。官方已經同步開啟多平台開售,限量禮盒數量有限,錯過
確認了!鴻蒙電腦版微信採用跨平台開發 - 天天要聞

確認了!鴻蒙電腦版微信採用跨平台開發

鴻蒙電腦版微信已於 6 月 6 日晚開啟內測邀請,有意參與的鴻蒙電腦用戶,可在官方渠道報名申請,最終獲得邀請資格的用戶,後續可通過所登記的手機號收到測試邀請鏈接。IT之家注意到,有網友向微信員工 @客村小蔣詢問:“和 QQ 一樣是跨平台開發
補貼後售價20.49萬元起,大六座SUV深藍S09正式上市並開啟交付 - 天天要聞

補貼後售價20.49萬元起,大六座SUV深藍S09正式上市並開啟交付

深藍CEO承諾深藍S09一年不降價,為什麼這一句承諾引起很多關注?因為近年來太多“背刺”老車主的事情,讓咱們害怕買車就降價,感覺自己虧了。其實新車上市沒多久就降價,主要是因為市場競爭壓力,和產品技術迭代太快,這兩個因素造成的結果。
百度發布金融行業大模型,沈抖:產業從提示詞優化走向智能體構建 - 天天要聞

百度發布金融行業大模型,沈抖:產業從提示詞優化走向智能體構建

圖片系AI生成6月6日消息,在2025智能經濟論壇上,百度集團執行副總裁、百度智能雲事業群總裁沈抖宣布,目前已有65%的央企選擇與百度智能雲開展深度合作,同時百度智能雲發布千帆慧金金融大模型,並推出了覆蓋能源、交通、汽車、醫療、環境等領域的精選行業場景智能體家族。百度摸索行業大模型,金融領域做試點行業大模型是...
一日一技:如何正確渲染大模型返回的Markdown? - 天天要聞

一日一技:如何正確渲染大模型返回的Markdown?

我們經常讓大模型返回Markdown格式的文本,然後通過Python的markdown庫把文本渲染成HTML。但不知道大家有沒有發現,大模型返回的Markdown並不是標準的Markdown。特別是當返回的內容包含列表時,大模型返回的內容有