意外と(?)客が多かった。
それにしてもバレーボールって、室内競技だからかアナウンサー(?)が結構喋り倒してて、それがまたホームとアウェイで大違いなのね。モロにホームを贔屓というかもう応援団の一員。まぁ多分これはどこのホームでもそうでお互い様と言う所なのだろう。
屋台が出てたけど無茶苦茶高いな。1000円以下の食い物がないわ。
バレーボールのユニフォームがブルマで無くなって久しいけれど、チアリーダーのスパークルズがミニスカの下に短パンスパッツなのは如何なものかと思った。

public class TestFactory extends BasePooledObjectFactory<IFClient> {
private AtomicInteger counter = new AtomicInteger(0);
private final int SERVICE_COUNT = 2; // A, B... の2サービス
@Override
public IFClient create() throws Exception {
// ラウンドロビンで0, 1…を順番に生成
int index = (counter.getAndIncrement() & Integer.MAX_VALUE) % SERVICE_COUNT;
String created = RandomStringUtils.randomAlphanumeric(5);
System.out.println("index="+index+" created:" + created);
// インデックスに応じて異なる実装クラスを生成して返す
switch (index) {
case 0:
System.out.println("created Aを作る"+index);
return new ClientA(created);
case 1:
System.out.println("created Bを作る"+index);
return new ClientB(created);
default:
throw new IllegalStateException("Unexpected index: " + index);
}
}
結論から申し上げますと、GeminiのWeb画面と、Google AI Studio(API経由)とでは、コンテンツフィルタリングの基準や仕組みが異なります。 特に今回「OpenAI互換API」をご利用されている点に、このエラーの直接的な原因が潜んでいます。詳細な原因と、その背景について解説します。1. Web画面とAPIでのセーフティ基準の違いWeb画面(一般ユーザー向け):文脈を総合的に判断する、対話向けの柔軟なセーフティシステムが組み込まれています。多少センシティブな単語が含まれていても、全体の文脈が安全であれば回答を生成する傾向があります。Google AI Studio API(開発者向け):「ハラスメント」「ヘイトスピーチ」「性的表現」「危険なコンテンツ」という4つのカテゴリに対して、厳格でプログラム的な閾値(デフォルトでは「中程度以上の確率でブロック」など)が設定されています。システム的な安全性を担保するため、特定の単語や表現に敏感に反応し、弾きやすい傾向があります。2. OpenAI互換API特有の制限(最大の原因)今回 PROHIBITED_CONTENT が出てしまう最大の理由は、OpenAI互換のAPIリクエストでは、Google特有のセーフティ設定(Safety Settings)を緩和できないという仕様にあります。Googleの純正SDK(Google Gen AI SDK)を使用する場合、開発者は以下のようにセーフティフィルターの閾値を「ブロックしない(BLOCK_NONE)」や「高い確率の場合のみブロック(BLOCK_ONLY_HIGH)」に変更できます。しかし、OpenAIのSDKやAPIフォーマットはGoogleのセーフティ設定パラメータをサポートしていないため、常にAI Studioの「厳格なデフォルト設定」が適用された状態でリクエストが送信されてしまいます。その結果、Web画面では通るプロンプトが、API側では弾かれてしまうという現象が起きます。
モデル [gemma-3-27b-it] で要約を生成中...【警告】コンテンツフィルターにより生成が中断・ブロックされました。終了理由: PROHIBITED_CONTENT
