Nemo Guardrailsを学習中です。NVIDIAのサイト(NeMo Guardrails により LLM の脆弱性を防ぐ: 導入編)だとNVIDIA AI Endpointsを使っているのですがNVIDIAのAPIキーを持っていないのでOpenAIで動かしてみました。
インストール
nemoguardrailsとlangchain-openaiをインストールします。しかし、2024/11/8時点でそれぞれ最新版をインストールすると以下のエラーが出て動きません。
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
nemoguardrailsの後にlangchain-openaiをインストールすると以下のエラーが表示されます。依存関係が正しくないようです。
ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
langchain 0.2.17 requires langchain-core<0.3.0,>=0.2.43, but you have langchain-core 0.3.15 which is incompatible.
langchain-community 0.2.18 requires langchain-core<0.3.0,>=0.2.43, but you have langchain-core 0.3.15 which is incompatible.
langchain-text-splitters 0.2.4 requires langchain-core<0.3.0,>=0.2.38, but you have langchain-core 0.3.15 which is incompatible.
nemoguardrails 0.10.1 requires langchain-core!=0.1.26,<0.3.0,>=0.2.14, but you have langchain-core 0.3.15 which is incompatible.
2024/11/8時点で動くインストール
以下のようにlangchain-openaiのバージョンを落とすことでインストールできます。なぜか six
というライブラリがインストールされないため追加でインストールしておきます。
pip install nemoguardrails
pip install "langchain-openai==0.1.25"
pip install six
OpenAI用のconfig.yml
config.ymlをOpenAI用に修正します。rails.coとPythonコードは修正せずに動きます。
models:
- type: main
engine: openai
model: "gpt-4o"
parameters:
temperature: 0.7
max_tokens: 2000
APIキーはOpenAIのAPIを動かすときと同様に環境変数に設定しておいてください。環境変数のキーはOPENAI_API_KEY
です。
まとめ
Nemo GuardrailsをOpenAIで動かす方法を解説しました。最新版だと依存関係が合わず動かないのは落とし穴でした。OpenAI用のconfig.ymlも参考になれば幸いです。
コメント