😇

Dify × Vertex AI × DockerのHarmBlockThreshold エラー解決方法

2024/08/06に公開

Vertex AI の HarmBlockThreshold エラー解決方法

エラーの概要

Vertex AI を使用する際に以下のエラーが発生する場合があります:

[vertex_ai] Bad Request Error, 400 User has requested a restricted HarmBlockThreshold setting BLOCK_NONE.

このエラーは、コンテンツフィルタリングの設定 BLOCK_NONE が制限されていることを示しています。

解決方法

このエラーは、Docker Desktop を使用してファイルを直接修正し、コンテナを再起動することで解決できます。以下に手順を示します。

手順 1: Docker Desktop でファイルを修正

  1. Docker Desktop を開きます。
  2. 該当するコンテナ(api-1)を見つけ、ファイルシステム(Files)にアクセスします。
  3. エラーの原因となっている設定ファイルを探します。(app/api/core/model_runtime/model_providers/vertex_ai/llm/llm.py
  4. ファイルを開き、safety_settings の設定をコメントアウトします
        # safety_settings={
        #     HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_NONE,
        #     HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE,
        #     HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE,
        #     HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE,
        # }

        google_model = glm.GenerativeModel(
            model_name=model,
            system_instruction=system_instruction
        )

        response = google_model.generate_content(
            contents=history,
            generation_config=glm.GenerationConfig(
                **config_kwargs
            ),
            stream=stream,
            # safety_settings=safety_settings,
            tools=self._convert_tools_to_glm_tool(tools) if tools else None
        )

手順 2: コンテナの再起動

  1. ファイルの変更を保存します。
  2. コンテナの「Restart」ボタンをクリックして再起動します。

代替解決策

もし上記の方法で解決しない場合、以下の代替策を検討してください:

  1. Google Cloud のアカウントタイプを月次請求(インボイス)ベースに変更する。
  2. Google のアカウントチームに連絡し、BLOCK_NONE 設定の使用許可を要請する。

Discussion