こんにちは!今日は、Gemini API を使う際に非常に重要な「安全フィルター設定(safety_settings)」について、ゼロから丁寧に解説いたします。API初心者の皆様でも安心して读完できる内容になっていますので、ぜひ最後までお付き合いください。

実は私自身、初めてGemini APIを使った際に、この安全フィルター設定でかなり苦しみました。何度も「コンテンツがブロックされました」というエラーに悩み、最終的にはHolySheep AI に登録してTheirの安定した中継サービスを使うようになりました。HolySheep AIを選らんだ理由は、レートが¥1=$1と非常に安く(日本の 공식汇率¥7.3=$1と比較して85%節約)、WeChat PayやAlipayで対応しており、レイテンシが<50msと非常に高速だからです。

安全フィルター設定(safety_settings)とは?

安全フィルター設定とは、Gemini APIが生成するコンテンツに対して、どのような種類の危险な或不適切なコンテンツをブロックするかを指定する機能です。默认では、Googleの预的良好成度(HarmBlockThreshold)で设定されており、必要に応じてカスタマイズすることで、应用的ニーズに合わせた调整が可能になります。

Safety Settings の4つの主要なカテゴリ

Gemini APIの安全フィルターは、以下の4つのカテゴリで構成されています:

各カテゴリに対して、以下の4段階の閾値を設定できます:

HolySheep AI での設定方法

では、実際にHolySheheep AIの中継服务を通じてGemini APIの安全フィルターを設定してみましょう。HolySheheep AIの利点は、公式APIと全く同じインターフェース可以使用し、レートが85%安く、支払いもWeChat PayやAlipayで対応している点です。

ステップ1:APIキーの取得

まず、HolySheheep AIに登録してAPIキーを取得してください。登録すると、免费クレジットが配布されるので、すぐに试用を始めることができます。

ステップ2:Pythonでの実装

以下のコードは、PythonでHolySheheep AIを通じてGemini API安全フィルターを設定する基本的な例です:

# PythonでのGemini API安全フィルター設定例
import requests

HolySheheep AIのエンドポイント

url = "https://api.holysheep.ai/v1/models/gemini-2.0-flash:generateContent"

APIキー(HolySheheep AIで取得したものに置き換える)

api_key = "YOUR_HOLYSHEEP_API_KEY"

安全フィルターの設定

safety_settings = [ { "category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_MEDIUM_AND_ABOVE" }, { "category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE" }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_ONLY_HIGH" } ]

リクエストボディ

payload = { "contents": [{ "parts": [{ "text": "日本の四季について教えてください" }] }], "safetySettings": safety_settings }

ヘッダー設定

headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" }

APIリクエスト送信

response = requests.post(url, json=payload, headers=headers)

結果の表示

print(f"ステータスコード: {response.status_code}") print(f"レスポンス: {response.json()}")

💡 スクリーンショットポイント:HolySheheep AIのダッシュボードで「API Keys」セクションからキーをコピーする手順を 캡처してください。キーは必ず安全に保管し、ソースコードに直接記載しないでください。

ステップ3:JavaScript/Node.jsでの実装

次に、Node.js环境下での実装例を示します:

// Node.jsでのGemini API安全フィルター設定
const axios = require('axios');

const API_URL = 'https://api.holysheep.ai/v1/models/gemini-2.0-flash:generateContent';
const API_KEY = 'YOUR_HOLYSHEEP_API_KEY';

// 安全フィルターの設定
const safetySettings = [
    {
        category: 'HARM_CATEGORY_HARASSMENT',
        threshold: 'BLOCK_MEDIUM_AND_ABOVE'
    },
    {
        category: 'HARM_CATEGORY_HATE_SPEECH',
        threshold: 'BLOCK_MEDIUM_AND_ABOVE'
    },
    {
        category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
        threshold: 'BLOCK_LOW_AND_ABOVE'
    },
    {
        category: 'HARM_CATEGORY_DANGEROUS_CONTENT',
        threshold: 'BLOCK_ONLY_HIGH'
    }
];

async function generateContent() {
    try {
        const response = await axios.post(
            API_URL,
            {
                contents: [{
                    parts: [{
                        text: '東京の旅游景点について教えてください'
                    }]
                }],
                safetySettings: safetySettings
            },
            {
                headers: {
                    'Content-Type': 'application/json',
                    'Authorization': Bearer ${API_KEY}
                }
            }
        );

        console.log('成功:', JSON.stringify(response.data, null, 2));
        
        // 安全ブロックの確認
        if (response.data.promptFeedback) {
            console.log('プロンプトフィードバック:', response.data.promptFeedback);
        }
        
    } catch (error) {
        console.error('エラー発生:', error.response?.data || error.message);
    }
}

generateContent();

实用的なシナリオ別設定例

シナリオ1:教育向けアプリケーション

學校や教育関連のアプリケーションでは、より嚴重な安全フィルターが必要です:

# 教育向けの严格な安全フィルター設定
safety_settings_education = [
    {
        "category": "HARM_CATEGORY_HARASSMENT",
        "threshold": "BLOCK_LOW_AND_ABOVE"  # 最も厳格
    },
    {
        "category": "HARM_CATEGORY_HATE_SPEECH",
        "threshold": "BLOCK_LOW_AND_ABOVE"
    },
    {
        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
        "threshold": "BLOCK_LOW_AND_ABOVE"
    },
    {
        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
        "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    }
]

シナリオ2:クリエイティブコンテンツ生成

小説や物語の生成など、クリエイティブ用途では适当なブロック設定が重要です:

# クリエイティブ用途のバランス型設定
safety_settings_creative = [
    {
        "category": "HARM_CATEGORY_HARASSMENT",
        "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    },
    {
        "category": "HARM_CATEGORY_HATE_SPEECH",
        "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    },
    {
        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
        "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    },
    {
        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
        "threshold": "BLOCK_ONLY_HIGH"  # 最も危険なもののみブロック
    }
]

HolySheheep AIの料金メリット

HolySheheep AIを選ぶ最大の理由の一つが料金です。2026年現在の料金进行比较一下吧:

HolySheheep AIでは¥1=$1のレートが適用されるため、円のままでも非常に 저렴にAPIを利用できます。日本の银行的レート(約¥7.3=$1)を考えると、85%の節約になる计算です!

よくあるエラーと対処法

エラー1:「安全フィルターによりコンテンツがブロックされました」

{
  "error": {
    "code": 400,
    "message": "Content has been blocked by safety settings",
    "status": "SAFETY_BLOCKED"
  }
}

原因:入力または出力コンテンツが設定した安全フィルターの閾値を超えた場合に発生します。

解決方法:閾値を BLOCK_NONE に変更するか、より宽容的な設定に変更してください。ただし、BLOCK_NONE は危险なコンテンツも許可するため、ユースケースに応じて慎重に判断してください。

# ブロック解除の設定例
safety_settings_relaxed = [
    {
        "category": "HARM_CATEGORY_HARASSMENT",
        "threshold": "BLOCK_NONE"  # ブロックなし(注意が必要)
    },
    {
        "category": "HARM_CATEGORY_HATE_SPEECH",
        "threshold": "BLOCK_ONLY_HIGH"  # 高度の危险のみ
    },
    {
        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
        "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    },
    {
        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
        "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    }
]

エラー2:「APIキーが無効です」

{
  "error": {
    "code": 401,
    "message": "Invalid API key",
    "status": "UNAUTHENTICATED"
  }
}

原因:APIキーが正しく設定されていない、または有効期限が切れています。

解決方法:HolySheheep AIダッシュボードでAPIキーを再確認し、正しく設定されていることを確認してください。また、キーの先頭に"Bearer "を忘れないでください。

# 正しいヘッダー設定
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {api_key}"  # Bearer を必ず含む
}

エラー3:「モデルが見つかりません」

{
  "error": {
    "code": 404,
    "message": "Model not found",
    "status": "NOT_FOUND"
  }
}

原因:指定したモデル名が正しくない、または利用不可です。

解決方法:利用可能なモデルの一覧をAPIから取得して、正しいモデル名を確認してください。

# 利用可能なモデル一覧の取得
models_response = requests.get(
    "https://api.holysheep.ai/v1/models",
    headers={"Authorization": f"Bearer {api_key}"}
)

print("利用可能なモデル:")
for model in models_response.json().get('data', []):
    print(f"  - {model['id']}")

エラー4:「リクエストボディの形式が不正です」

{
  "error": {
    "code": 400,
    "message": "Invalid request body format",
    "status": "INVALID_ARGUMENT"
  }
}

原因:リクエストボディのJSON形式が間違っているか必須フィールドが不足しています。

解決方法:リクエストボディの構造を確認してください。safetySettingsは配列形式である必要があります。

# 正しいリクエストボディ構造
payload = {
    "contents": [{  # 配列である必要あり
        "parts": [{  # partsも配列である必要あり
            "text": "質問内容"  # textまたはinlineDataのいずれか
        }]
    }],
    "safetySettings": safety_settings  # 配列形式
}

最佳 pratique(最佳実践)

私自身の経験 바탕으로、Gemini APIの安全フィルター設定に関する最佳 pratique をまとめます:

  1. 默认値から始める:まずは默认の設定で试用し、必要に応じて调整するのが良いでしょう。
  2. 段階的に調整:一度に多くの設定を変更すると原因の特定が難しくなります。
  3. ログの活用:safetySettingsの状態を常にログに記録し、問題発生時にすぐ確認できるようにしましょう。
  4. コスト管理:Gemini 2.5 Flashは$2.50/MTokと非常に 저렴なので、试作や开発中は積極的に活用しましょう。
  5. 支払い方法:HolySheheep AIではWeChat PayとAlipayに対応しているため、日本の开发者でも 쉽게 결제할 수 있습니다.

まとめ

本記事では、Gemini APIの安全フィルター設定について、基本から応用まで详细介绍しました。安全フィルターはアプリケーションの安全性と用户体验のバランスを取るために非常に重要な機能です。

HolySheheep AIの中継服务を使えば、¥1=$1のavore率和で低コストにAPIを利用でき、<50msの高速レイテンシでスムーズな应用开发が可能です。WeChat PayやAlipayでのお支払いにも対応しているので、日本の开发者でも気軽に始めることができます。

まずはHolySheheep AIに登録して、��料クレジットで试用を始めてみましょう!

👉 HolySheheep AI に登録して無料クレジットを獲得