低コストのオープンモデルで高い成果を得られるよう、OpenAIのCodexをフォークしてRustで構築したコーディングエージェント向けターミナルツール。
deepseek-ai/deepseek-recipe
LLM APIの形式をDeepSeekのConversationに変換し、プロンプトを生成するRustライブラリとPythonバインディング。
- スター
- 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
Python パッケージをインストールする
python3 -m pip install deepseek-recipe - 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 の数値は毎日更新されます。
関連プロジェクト
LLMとコンピュータビジョンを使ってあらゆるサイトのWebワークフローを実行するオープンソースのブラウザ自動化ツール。PlaywrightにAIコマンドを追加します。
OpenAIのモデル向けに設計された高速なBPEトークナイザーで、テキストをトークンに変換し、元に戻せます。
OpenCodeやClaude Codeなどのコーディングエージェントを、ホスト型またはローカルのオープンモデル向けに設定して起動するCLIツール。
AI生成コードをコンテナなしで実行できる、Rust製の安全なPythonサンドボックス。