Repolode
deepseek-ai

deepseek-ai/deepseek-recipe

LLM APIの形式をDeepSeekのConversationに変換し、プロンプトを生成するRustライブラリとPythonバインディング。

代替できる製品:DeepSeek-V4-ProDeepSeek-V4.1-Flash

スター
1,254
フォーク
116
未解決の Issue
29
最終コミット
昨日

これは何?

deepseek-recipeは、異なるプロトコルを使うAPIクライアントと推論バックエンドの間に共通レイヤーを設けるための、Pythonバインディング付きRustクレート群です。担当するのはプロトコル間の変換です。Messages、Chat Completions、Responses形式のリクエストを受け取り、Conversationに変換してプロンプト(またはtoken IDs)を生成し、さらにDeepSeekモデルの出力を解析して、クライアントが指定した形式のレスポンスに戻します。

難しい処理は意図的に呼び出し元に任せています。モデル推論、ツール実行、HTTP通信はすべて外部から提供し、クレートが扱うのは変換、プロンプト生成、解析だけです。テキストと画像、thinking mode、クライアント側のツール呼び出し、Chat Completionsの`prefix`による継続、ストリーミングレスポンス、`json_schema`または`regex`による構造化出力、log probabilityの受け渡しに対応しています。画像はbase64と外部URLに対応し、DeepSeek V4.1向けにはOpenCVによる前処理を行えます。また、信頼できないURLを取得するサービス向けに`DestinationFilter`オプションも用意されています。トークナイザーでエンコードしたプロンプトにも対応しており、推論トークン数のカウントや、モデルのコンテキスト上限に応じた`max_tokens`の解決に使えます。

RustとPythonのどちらも同等に利用できます。Rustのサンプルでは、serdeでChat Completionsリクエストを読み込み、V4.1のプロンプトを生成します。Pythonパッケージ`deepseek_recipe`(Python 3.10以降)でも同じ処理ができます。ブラウザデモでは、プロンプトの生成、特殊トークンのハイライト、モデル出力の解析を行い、Chat Completions、Responses、Messages形式のレスポンスに変換できます。

主な機能

  • 01Messages、Chat Completions、Responsesの各リクエストを共通のConversation形式に変換し、モデル出力をいずれかの形式に戻します。
  • 02DeepSeek V4およびV4.1のConversationからプロンプトを生成し、トークナイザーを指定すればtoken IDsにもエンコードできます。
  • 03ストリーミングレスポンス、thinking mode、クライアント側のツール呼び出し、Chat Completionsの`prefix`による継続に対応します。
  • 04Chat Completionsの`response_format`(`json_schema`または`regex`)とResponsesの`text.format`(`json_schema`)による構造化出力に対応します。
  • 05画像はbase64または外部URLで指定でき、V4.1向けにはOpenCVで前処理します。
  • 06`max_tokens`をコンテキスト上限に合わせて解決します。デフォルトの上限はthinking mode以外では8192、thinking modeでは65536、`max`のreasoning effortでは131072です。
  • 07`logprobs`と`top_logprobs`を`InferenceOptions`に変換し、確率の計算はバックエンドに任せます。
  • 08Pythonバインディング(`deepseek_recipe`)、Axumのサンプルサーバー、FastAPIのサンプルサーバー、ブラウザデモが付属します。

ユースケース

  • セルフホストのDeepSeek推論バックエンドをラップし、Messages、Chat Completions、Responsesの各クライアントに対応する。
  • プロトコルごとに実装し直すことなく、既存のモデルエンドポイントにストリーミング、ツール呼び出し、構造化JSON出力を追加する。
  • Conversationをモデル向けの正確なプロンプトに変換し、学習データや評価データを準備する。
  • プロンプトや推論出力のトークン数を数えたり、`max_tokens`がモデルのコンテキスト上限内か確認したりする。
  • 付属のブラウザデモを使って、プロンプトの形式や出力の解析をデバッグする。

クイックスタート

  1. 1

    Python パッケージをインストールする

    python3 -m pip install deepseek-recipe
  2. 2

    Chat Completions リクエストを変換し、README のサンプルコードでプロンプトをレンダリングする

使う前に知っておきたいこと

  • このライブラリはモデル推論、ツール実行、HTTP 通信を行いません。これらは呼び出し元が用意する必要があります。
  • DeepSeek V4 は画像を受け付けないため、画像コンテンツはテキストのプレースホルダーに置き換えられます。
  • Rust のサンプルで画像関連の依存関係を使うには、ソースからビルドする必要があります。手順は README の別の開発ガイドに記載されています。

トピック

よくある質問

deepseek-recipe とは?
LLM APIの形式をDeepSeekのConversationに変換し、プロンプトを生成するRustライブラリとPythonバインディング。 deepseek-recipeは、異なるプロトコルを使うAPIクライアントと推論バックエンドの間に共通レイヤーを設けるための、Pythonバインディング付きRustクレート群です。担当するのはプロトコル間の変換です。Messages、Chat Completions、Responses形式のリクエストを受け取り、Conversationに変換してプロンプト(またはtoken IDs)を生成し、さらにDeepSeekモデルの出力を解析して、クライアントが指定した形式のレスポンスに戻します。
deepseek-recipe は無料で使えますか?ライセンスは?
deepseek-recipe は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
deepseek-recipe は今もメンテナンスされていますか?
活発にメンテナンス中。deepseek-recipe の最終コミットは 2026年10月19日 です。
deepseek-recipe は何に使えますか?
セルフホストのDeepSeek推論バックエンドをラップし、Messages、Chat Completions、Responsesの各クライアントに対応する。 プロトコルごとに実装し直すことなく、既存のモデルエンドポイントにストリーミング、ツール呼び出し、構造化JSON出力を追加する。 Conversationをモデル向けの正確なプロンプトに変換し、学習データや評価データを準備する。 プロンプトや推論出力のトークン数を数えたり、`max_tokens`がモデルのコンテキスト上限内か確認したりする。 付属のブラウザデモを使って、プロンプトの形式や出力の解析をデバッグする。
deepseek-recipe のインストール方法は?
Python パッケージをインストールする: python3 -m pip install deepseek-recipe Chat Completions リクエストを変換し、README のサンプルコードでプロンプトをレンダリングする
deepseek-recipe はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/deepseek-ai/deepseek-recipe

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト