piapia123
ja

LLM の curl 生成

Web

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

curl でモデルを一度呼ぶとき、誰もが手で書きますが、二つのバックエンドは細部がすべて違います。パス(`/api/chat` と `/v1/chat/completions`)、サンプリングパラメータの位置(Ollama は `options` の中、OpenAI は最上位)、`Authorization` の要否、JSON モードの書き方、応答の形。どれかを間違えると、返ってくるエラーはたいてい不親切です —— 400 か、読んでも分からない JSON です。 そこでここでは二つを一つのドロップダウンにまとめ、出力はそのまま端末に貼れるコマンドとリクエスト本文、さらに「二つのバックエンドの違い」を別枠で示します。乗り換えるときは、移動した項目だけ直せば済みます。 ⚠️ このツールはコマンドを作るだけで、リクエストは送りません。環境変数も読みません —— `$OPENAI_API_KEY` はシェルが展開します。ここは重要です。「リクエスト生成」は「リクエスト送信」と取り違えられやすく、当サイトにはバックエンドが無く、あなたに代わって何かを呼ぶこともありません。

機能

  • 二つの API を一つに:Ollama ネイティブ(`/api/chat`)と OpenAI 互換(`/v1/chat/completions`)
  • ⚠️ 両者の違いを別枠で提示。最も間違えやすいのはサンプリングパラメータの位置です
  • 生成した curl コマンドはそのまま端末に貼れます(本文はシングルクォートで囲み、内側のクォートも正しく分割)
  • リクエスト本文は独立したブロックで、他の言語へ移植しやすい形です
  • システムプロンプトは任意。空のままなら空のメッセージを挿しません
  • JSON モードの書き方はバックエンドごとに違うため、選択に合わせて生成します
  • temperature が 0〜2 の外なら生成前にエラーにします。400 になるコマンドを渡しません
  • ⚠️ キーは `$OPENAI_API_KEY` のような変数参照として書きます。環境を読まず、実際のキーにも触れません
  • 処理はすべてブラウザ内で完結し、テキストを出すだけです

使い方

  1. モデルへ送りたいプロンプトを書きます
  2. API を選びます(ローカルの Ollama か、OpenAI 互換のサービス)
  3. 必要ならエンドポイント・モデル名・システムプロンプトを指定します。未入力なら各 API の一般的な既定値を使います
  4. curl コマンド全体をコピーして端末で実行します

よくある質問

代わりにリクエストを送ってくれますか
いいえ。当サイトは完全に静的なサイトでバックエンドがありません。出力はテキストです —— コマンド、リクエスト本文、そして二つの API の違いの対照表です。ネットワークへは接続せず、環境変数も読まず、あなたのキーが何であるかも知りません。実際に呼ぶには、生成したコマンドをご自身の端末で実行してください。
Ollama のコマンドにキーが無いのはなぜですか
Ollama は既定で localhost(127.0.0.1:11434)だけを待ち受け、認証もしないため、ローカル呼び出しにキーは不要だからです。⚠️ ただしそこが最大の注意点でもあります。認証付きのリバースプロキシを挟まずにインターネットへ公開すると、誰でもあなたのマシンでモデルを動かし、GPU とメモリを食い尽くせます。API キーの漏洩よりはるかに深刻です。遠隔で使うなら認証付きのプロキシを前段に置いてください。
temperature を最上位に書いたのに変わらないのはなぜですか
Ollama のサンプリングパラメータは `options` オブジェクトの中にあり(`options.temperature`、`options.num_predict`)、OpenAI 互換 API は最上位に置くからです。Ollama で最上位に書いてもエラーにはなりません。未知の項目は黙って無視されるため、「パラメータを変えたのに出力が変わらない」という現象になります。このツールは選択したバックエンドに合わせて正しい位置に置き、「二つのバックエンドの違い」でその箇所を並べて示します。
Python や JavaScript 版も生成できますか
今のところ curl だけです。理由は curl が共通の下限だからです。入っている環境ならどこでも動き、ドキュメントやチケット、README に貼っても崩れず、HTTP リクエストの各部分(メソッド・ヘッダー・本文)をすべて開いた形で示します。他の言語へ移すときは、その部分を写すだけです。本文は独立した JSON ブロックなので、`requests.post(url, json=body)` や `fetch(url, {body})` にそのまま使えます。

関連ツール