vercel/streamdown

A drop-in replacement for react-markdown, designed for AI-powered streaming.

何を解決するか

AIモデルからMarkdownコンテンツをストリーミングする際のフォーマットの課題に対処します。標準的なMarkdownパーサーは、未完了または終了していないブロック(例:まだストリーミングが終わっていないコードブロック)を処理する際に問題を抱えやすく、視覚的に不自然なグルーピングが発生します。Streamdownは、これらの部分的なブロックを滑らかに処理することで、途切れのないレンダリング体験を提供します。

動作方法

Streamdownは react-markdown の即時置き換えとして動作します。remend を使って未終了ブロックを解析し、AIから到着する新しいトークンに応じて効率的な更新を実現するためのメモ化レンダリングを含んでいます。また、数式や図表など特殊なコンテンツ用のプラグインとの統合も可能です。

対象ユーザー

AIチャットインターフェースや、LLMの応答をReactフロントエンドにストリーミングするアプリケーションを開発している開発者。

特徴

  • ストリーミング最適化: レイアウトが崩れないように、未完了のMarkdownブロックを特別に設計して処理。
  • 豊富なコンテンツ対応: GitHub Flavored Markdown(テーブル、タスクリスト)、KaTeXによるLaTeX式、Mermaid図表をサポート。
  • 開発者体験: react-markdown の置き換えとして簡単に統合可能で、Shikiの構文強調が内蔵。
  • セキュリティ: rehype-harden を使用して、安全なコンテンツレンダリングを保証。

関連

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