Ollama API:3行でクライアントを切り替え
無検閲でOpenAI互換のチャットAPIを数分で開始。100kコンテキストウィンドウのモデルにクライアント設定を切り替え、すぐにコンテンツ生成を開始。
- ベース URL
https://api.ollamaapi.com/v1- モデル
uncensored
前提条件とベースURL
この無検閲LLM APIを利用するには、APIキーを持つアカウントと、環境にインストールされたOpenAI互換のSDKが必要です。すべてのリクエストのベースURLはhttps://api.ollamaapi.com/v1です。このエンドポイントは既存のOpenAIクライアントへのそのまま置き換え可能として設計されており、設定内のベースURLとAPIキーのみを更新する必要があります。APIはServer-Sent Events (SSE)によるストリーミングと関数呼び出しを備えたテキスト入力/テキスト出力の補完をサポートします。埋め込み、画像生成、ファインチューニングはサポートしていません。最適な体験のために、SDKのバージョンがこれらの機能に対応していることを確認してください。すべての補完にはモデルIDuncensoredを使用します。
認証と最初のリクエスト
認証は、Authorizationヘッダー内のBearerトークンによって処理されます。サイト上でサインアップすると、すぐにAPI キーを受け取ることができます。トライアルにはクレジットカードは必要ありません。次のcURLコマンドを使用して、最初のメッセージを送信してください。YOUR_API_KEYを実際のキーに置き換えてください。リクエストは標準のチャット完了エンドポイントを対象としています。成功すると、無検閲モデルからのテキスト応答が返されます。特定のLLMをホストするGPUサーバーを利用するには、modelフィールドをuncensoredに設定してください。
curl https://api.ollamaapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
プロンプトはあなたのデータの学習には使用されないことを覚えておいてください。APIは未成年者の性的コンテンツに対して厳格な制限を課しますが、それ以外は法的な成人向けや論争的なトピックを拒否せずに許可します。
Python SDK統合
公式のOpenAI Python SDKを使用するのが最も簡単な統合方法です。pipを使用してライブラリをインストールし、カスタムベースURLとAPI キーを使用してクライアントを初期化してください。この設定により、GPT-4で使用するのと同じクライアントコードを、無検閲モデルを対象として使用することができます。以下のコードは、シンプルなチャット完了リクエストを示しています。必要に応じてmax_tokensおよびtemperatureパラメータを調整してください。応答オブジェクトには、response.choices[0].message.contentに生成されたテキストが含まれます。
from openai import OpenAI
client = OpenAI(base_url="https://api.ollamaapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
このアプローチが機能するのは、当APIが完全にOpenAI互換であるためです。当サービス専用の別クライアントライブラリは必要ありません。
Node.js SDKセットアップ
JavaScriptまたはTypeScriptプロジェクトでは、OpenAI Node SDKはエンドポイントとシームレスに動作します。パッケージをインストールし、ドメインを指すbaseURLでクライアントを設定します。apiKeyフィールドにAPIキーを渡します。リクエスト構造はOpenAIの形式と完全に一致します。これにより、大幅なリファクタリングなしに既存のNode.jsアプリケーションにAPIを組み込むことができます。モデルIDはuncensoredのままです。APIキーの再生成が必要な場合はダッシュボードで管理できます。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ollamaapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
ソース管理にAPI キーが公開されないよう、環境変数が正しく設定されていることを確認してください。API キーはサインアップ直後に表示されます。
ストリーミングレスポンス
リアルタイムのトークン生成が必要なアプリケーションの場合、APIはServer-Sent Events (SSE)をサポートしています。リクエストでstreamパラメータをtrueに設定してください。サーバーはレスポンスの部分的なデルタを含む一連のチャンクを送信します。これは、生成されたテキストを表示したいチャットインターフェースに最適です。ストリーミング動作はOpenAIストリーミングAPIと同一であるため、既存のストリーミングロジックは最小限の変更で動作するはずです。最終チャンクでレスポンスが完了したことを示すまでストリームを処理してください。
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
ストリーミングはトークン料金やコンテキストウィンドウの制限に影響しません。
制限、エラー、コンテキスト
APIはプロンプトと補完を合わせた100,000トークンのコンテキストウィンドウを持ちます。これにより、大規模なドキュメント処理や長い会話が可能です。レート制限はキーあたり1分あたり300リクエストに設定されています。これを超えると429エラーが発生します。認証エラーは401ステータスを返し、通常は無効または取り消されたキーによるものです。資金不足は402エラーを返します。リクエストボディは8 MBに制限されます。サブスクリプションはなく、前払いクレジットで従量課金制です。クレジットは期限切れにならず、残高を失うことなく利用を無期限に一時停止できます。最低$20からチャージできます。
質問と回答
このAPIは画像や音声の生成に対応していますか?
いいえ、このAPIはテキストの補完専用です。埋め込み、画像生成、音声、動画はサポートしていません。テキストからテキストへの対話に特化した単一の無検閲大規模言語モデルに焦点を当てています。
料金体系はどのように機能しますか?
前払いクレジットの従量課金制で、期限切れはありません。入力トークンは100万トークンあたり$0.15、出力トークンは100万トークンあたり$0.50です。暗号通貨(USDTまたはUSDC)でチャージでき、大口入金にはボーナスクレジットが利用可能です。
私のデータは学習に使用されますか?
いいえ、APIに送信されたプロンプトは学習に使用されません。このサービスはプライバシーを重視しており、アカウント作成にはメールアドレスとパスワードのみが必要です。
技術仕様
購入前に確認できるよう、API の実際の制限と機能をすべてまとめました。
| 項目 | 内容 |
|---|---|
| 形式 | OpenAI 互換:どの OpenAI SDK でも base URL とキーを変えるだけで動作 |
| 認証 | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.ollamaapi.com/v1 |
| エンドポイント | POST /v1/chat/completions · GET /v1/models |
| モデル ID | uncensored |
| パラメータ | temperature、top_p、stop、seed、presence_penalty、frequency_penalty |
| コンテキスト長 | 100,000 トークン(入力+出力) |
| ストリーミング | 対応 — SSE、最後のチャンクにトークン使用量 |
| 最大出力 | 100,000 トークンのウィンドウの残りまで。max_tokens は任意(個別の上限なし) |
| JSON モード | response_format: {"type": "json_object"} |
| 関数呼び出し | 対応 — tools、tool_choice。応答に tool_calls(ストリーミングでも)、結果は role: tool で返送 |
| レート制限 | キーごとに毎分 300 リクエスト |
| リクエストサイズ | 最大 8 MB |
| レスポンスヘッダー | X-Request-Id、X-Balance-USD、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrency |
| 同時実行 | キーごとに同時 8 リクエストまで |
| 無料トライアル | $0.50、7 日間、カード不要 · トライアルキー: 同時2件、毎分60件。初回チャージ後に上限が8件・300件へ拡大 |
| ボーナス | $50 以上で +5%、$100 以上で +10%、$200 以上で +15% |
| 料金 | 入力 100 万トークン $0.15 · 出力 100 万トークン $0.50 |
| 課金 | 前払いクレジットから実使用量で課金。エラーと拒否は無料 |
| 有効期限 | 購入クレジットは失効なし、サブスクなし |
| チャージ | USDT(TRC20)または USDC(Base)、$20〜$500 の任意の整数額 |
| コンテンツ | 成人向けコンテンツ可。未成年者を含む性的コンテンツは拒否 |
| キー | アカウントごとに有効なキーは 1 つ。新しいキーで旧キーは無効 |
| ログイン | Google またはメール+パスワード |
エラーコード
エラーは固定の type を持つ JSON で返ります。失敗・拒否されたリクエストは課金されません。
| コード | タイプ | 意味 |
|---|---|---|
400 | bad_request | JSON 不正、メッセージ空、パラメータ誤り、またはコンテキスト超過 |
401 | missing_key · invalid_key · key_revoked | キーなし・誤り・新しいキーに置換済み |
402 | no_credit | 残高ゼロ — チャージすれば即再開 |
403 | content_blocked | 未成年者を含む性的コンテンツ — 拒否、課金なし |
404 | not_found | 不明なエンドポイント |
413 | request_too_large | 本文が 8 MB 超 |
429 | rate_limited · concurrency | 毎分 300 回または同時 8 件を超過 — 待って再試行 |
503 | upstream_busy | モデル混雑 — 数秒後に再試行 |