microsoft/SwiftStreamingMarkdown

A performant markdown library for iOS & macOS that supports streaming

解決的問題

SwiftStreamingMarkdown 是為即時從大型語言模型(LLM)串流傳輸文字的聊天式使用者介面所設計。傳統的 Markdown 渲染器在新文字到達時更新畫面,常導致 UI 卡頓或突兀的轉換;此套件提供流暢、高效率的串流轉換與優化渲染,確保在 iOS 與 macOS 上維持流暢的使用者體驗。

工作原理

該套件提供專用的 StreamedMarkdownView,它會消耗一個 StreamedMarkdownSource。與從頭重新渲染整個文件不同,它會逐步解析並渲染隨文字到達的 Markdown 源快照,最大限度減少主執行緒的工作,避免 UI 延遲。它針對 CommonMark 與 GitHub 風格 Markdown 的子集,特別針對 LLM 通常產生的回應類型進行優化。

適用對象

正在為 iOS 與 macOS 開發 AI 聊天應用,需要支援複雜元素(如 LaTeX 數學公式與引用)的專業、精緻流式文字體驗的開發者。

主要特色

  • 流暢串流:內建動畫,使新接收的文字更新更自然,避免突兀的變動。
  • LLM 優化:特別支援 LLM 常見輸出的語法,包括表格、圍欄程式碼區塊與任務清單。
  • 高階渲染:原生支援內嵌與區塊式 LaTeX 數學公式渲染。
  • 來源溯源:包含專用 UI 用於內嵌引用貼紙(citation pills),支援基於來源的 LLM 回應。
  • 高度可客製化:透過 MarkdownRenderConfig 高度配置字型與主題。
  • 事件追蹤:透過 MarkdownListener 提供內建鈎子,用於分析與互動追蹤。

相關

  • 專案
  • 專案
  • 專案
  • 專案