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を通じた組み込みフックにより、分析やインタラクション追跡が可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト