ホームガイド
アプリケーションへの無検閲AIの統合方法
更新日 LLM Sin Censura
アプリに無検閲AIを統合することで、大手プロバイダーの頻繁な拒否レスポンスなしでモデルからの直接の回答を得ることができます。この技術ガイドでは、OpenAI互換のエンドポイントへの接続、コンテキストウィンドウの管理、ストリーミングの処理方法について説明し、シームレスで無検閲のユーザー体験を構築する方法を示します。
無検閲AIとは?
無検閲AIとは、企業的な厳格なポリシーに基づいて、大人向けコンテンツ、論争、ニッチなトピックを拒否しないように調整または設定された大規模言語モデル(LLM)を指します。特定のパターンを検出すると400エラーや汎用的なテキストを返す標準的な商用モデルとは異なり、無検閲モデルは法的であれば、要求されたとおりの内容を正確に返します。
この機能は、創造性、調査、またはモデルの表現の自由が優先される環境において不可欠です。これはモデルが「無知」だったり知能が欠如していることを意味するのではなく、有効な応答をブロックすることがある表面的なモデレーションレイヤーを削除するだけです。開発者にとって、これはエラー処理ロジックを簡素化します。外部フィルターによってどのコンテンツが拒否されるかを予測する必要がないためです。
- 予測可能性: 任意の切断なしで完全なテキストが得られます。
- 制御: コンテンツの表示を決定するのはAPIではなくあなたです。
- 効率性: 誤ったモデレーションによるAPI呼び出しの失敗が少なくなります。
SDKの初期設定
無検閲AIを統合するには、エンドポイントがプロトコルと100%互換性があるため、OpenAIの標準SDKを使用します。これにより、PythonのopenaiやNode.jsのopenaiなど、すでに知っているライブラリを使用できます。ベースURLの設定とAPIキーの提供のみが必要です。
このアプローチの利点は移植性です。将来的に同じ互換エンドポイントを提供するプロバイダーに変更する場合、コードの変更は最小限で済みます。以下に、当社のサービスに向けてPythonでクライアントを設定する方法を示します。
from openai import OpenAI
client = OpenAI(base_url="https://api.llmsincensura.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)互換性とは、リクエストとレスポンスのJSONフォーマットが同じであることを意味し、他のプラットフォームからの移行や標準的なモックを使用したユニットテストの開発を容易にします。
APIキーによる認証
APIのセキュリティは、アカウントごとの単一APIキーによって管理されます。このキーは登録直後に生成され、一度だけ表示されます。デフォルトで複数のキーがあるわけではないことに注意してください。アカウントにはリクエストのための主要な識別子が1つあります。
アクセスを取り消す必要がある場合や、セキュリティのために新しいトークンを生成する必要がある場合は、アカウント設定でキーを再生成できます。これにより、以前のキーは即時無効化されます。これは速度制限を増やす方法ではなく、アクティブな制御ポイントを1つに保つためのセキュリティ対策です。キーは環境変数に保存し、アプリケーションが公開されている場合はクライアント側のコードに公開しないでください。
- 生成: 登録時に表示されます。
- 再生成: 以前のキーを無効化します。
- 使用: ヘッダー
Authorization: Bearer YOUR_KEYに送信されます。
最初のリクエストの送信
基本的な操作は、/v1/chat/completionsへのPOSTリクエストです。モデルをuncensoredとして指定し、必要に応じてトーンを設定するシステムプロンプトを定義し、メッセージ履歴またはユーザーの単純なクエリを提供する必要があります。モデルは入力を処理し、JSON形式で完全なレスポンスを返します。
これは統合が機能していることを検証するための最も単純なフローです。生成されたコンテンツと消費されたトークン数などの使用メタデータを含むモデルのレスポンスをアプリケーションが適切に処理していることを確認してください。
curl https://api.llmsincensura.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は、この目的のためにServer-Sent Events(SSE)をサポートしています。
SDKでストリーミングを有効にすると、複数の部分的イベントが受信されます。これらの断片を連結して完全なレスポンスを構築する必要があります。これはモデルが長いテキストを生成する場合に特に有用で、ユーザーはほぼ瞬時にテキストの表示を開始できます。
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)ストリーミングはストリーミング以外のリクエストよりも多くのトークンを消費しません。データの転送方法が変わるだけです。これはAIに依存する現代的なUIにとって推奨されるプラクティスです。
100kコンテキストの管理
LLM開発における最大の課題の1つはコンテキストの制限です。当社のAPIは100,000トークンのコンテキストウィンドウを提供します。これは、単一のリクエストで拡張されたドキュメント、長い会話履歴、または大きなナレッジベースを読み込むのに十分です。
これを効率的に活用するには、アプリケーションでスライディングウィンドウを管理する必要があります。会話が長くなるにつれて、モデルに送信する履歴から古いメッセージを削除して、制限内に収めることができます。コンテキストには、入力トークン(プロンプト)と出力トークン(completion)の両方が含まれます。
- 容量:合計100kトークン。
- 戦略: メッセージ用のリングバッファを実装する。
- コスト: トークンは使用量に応じて課金されるため、不要なコンテキスト送信を最適化してください。
ツール呼び出しの使用
関数(ツール呼び出し)により、モデルは外部コードと連携できます。get_weatherやsearch_databaseのような関数を定義すると、モデルはそれらを呼び出すための構造化された引数を返します。これはリアルタイムデータや特定のアクションが必要なアプリケーションにとって不可欠です。
当社の無検閲AIは、OpenAI標準と同じ方法でツール呼び出しをサポートします。toolsパラメータでツールを定義し、モデルは呼び出しIDを返します。あなたのコードが関数を実行し、その結果をモデルに送信することで、そのデータに基づいた最終回答を生成させます。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.llmsincensura.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キーは1分あたり300リクエストに制限されます。これは多くのミドルレベルのアプリケーションで十分ですが、トラフィックのピークがある場合は、クライアント側でリクエストキューを実装することを検討してください。
また、リクエストボディは8 MBを超えないようにしてください。これは1回のリクエストで送信できるテキストやJSONファイルのサイズを制限するものです。より多くのデータを送信する必要がある場合は、複数のリクエストに分割するか、送信前に要約することを検討してください。
| リソース | 制限 |
|---|---|
| 速度 | 300 req/min |
| リクエストサイズ | 8 MB |
| モデル | 無検閲 |
課金とチャージ
価格モデルは従量制で、月額サブスクリプションは必須ではありません。百万トークン単位で課金されます。入力トークンは1Mあたり$0.25、出力トークンは1Mあたり$1.00です。この構造は透明で予測可能です。
暗号通貨(USDTまたはUSDC)を使用して、最低$10からアカウントにチャージできます。より大きな金額をチャージするとボーナスが付与されます:$50以上のチャージで5%追加、$100以上のチャージで10%追加です。クレジットは期限切れにならないため、時間的なプレッシャーなしで必要なときに使用できます。
- 入力価格: $0.25 / 1Mトークン。
- 出力価格: $1.00 / 1Mトークン。
- ボーナス: $50以上で+5%、$100以上で+10%。
よくある質問
このモデルはGPTやClaudeのクローンですか?
いいえ。これは当社のGPUサーバー上で実行されるオープンウェイトモデルで、無検閲になるよう特に調整されています。GPT、Claude、Gemini、その他の外部プロバイダーのモデルではなく、APIフォーマットと互換性があります。
1分あたりの300リクエストの制限を超えた場合はどうなりますか?
APIはレート制限エラーを返します。カウントのリセットを待つか、アプリケーションに指数バックオフ付きのリトライロジックを実装する必要があります。APIキーを再生成してもこの制限は増えません。これはアカウントとキー単位での制限だからです。
私のプロンプトはモデルのトレーニングに使用されますか?
いいえ。当社のプライバシーポリシーは厳格です。APIに送信されるプロンプトはモデルのトレーニングには使用されず、データと会話の機密性が保証されます。
このAPIをNSFWコンテンツに使用できますか?
はい。このモデルは法的に成人向けコンテンツを検閲しないように設計されています。ただし、管轄区域に関係なく、未成年者を含む性的コンテンツは常にブロックされます。その他の成人向けコンテンツについては、モデルは便宜上の拒否を行いません。
APIキーはもうすぐ手に入ります
アカウントを作成し、キーをコピーしてベースURLを変更するだけです。これだけです。
APIキーを取得