microsoft/SwiftStreamingMarkdown

A performant markdown library for iOS & macOS that supports streaming

何を解決するか

SwiftStreamingMarkdown は、大規模言語モデル(LLM)からリアルタイムでテキストをストリーミングするチャット形式のUIを想定して設計されています。従来のMarkdownレンダラーは、新しいテキストが到着するたびにビューを更新する際にUIの停止や不自然な遷移を引き起こすことがありますが、このライブラリはスムーズで高パフォーマンスなストリーミング遷移と最適化されたレンダリングを提供し、iOSおよびmacOS上で流れるようなユーザー体験を維持します。

動作方法

このライブラリは、StreamedMarkdownSource を消費する専用の StreamedMarkdownView を提供します。完全に再レンダリングするのではなく、到着するたびにMarkdownソースのスナップショットを段階的に解析・レンダリングすることで、メインスレッドの作業を最小限に抑え、UIの遅延を防ぎます。CommonMarkおよびGitHub風Markdownのサブセットをターゲットとしており、LLMが通常生成するタイプの出力に特化しています。

対象ユーザー

iOSおよびmacOS向けAIチャットアプリを開発しており、LaTeX数式や引用のサポートを備えたプロフェッショナルで洗練されたストリーミングテキスト体験を必要とする開発者。

主な特徴

  • スムーズなストリーミング:新しく受信したテキストに内蔵されたアニメーションにより、不自然な更新を回避。
  • LLM最適化:テーブル、囲みコードブロック、タスクリストなど、LLMがよく出力する構文を特別にサポート。
  • 高度なレンダリング:インラインおよびブロック形式のLaTeX数式をネイティブでサポート。
  • ソース根拠付き:ソース根拠付きLLM出力に対応するための専用UI(インライン引用ピル)を含む。
  • カスタマイズ可能MarkdownRenderConfig を通じてタイプセッティングやテーマを高度にカスタマイズ可能。
  • イベント追跡MarkdownListener を通じた組み込みフックにより、分析やインタラクション追跡が可能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト