人狼知能コンテスト(自然言語部門)の生成AI(ChatGPT, Gemini)を使用したサンプルエージェントです。
このプログラムはaiwolf-nlp-agentをベースにしているため、実行方法などの詳細はこちらをご覧ください。
- 人狼知能コンテスト(自然言語部門)に興味はあるが、何から手をつければ良いかわからない方
- 人狼知能コンテスト(自然言語部門)に参加する予定で、ChatGPT, Geminiを使用する予定の方
2024年12月28日現在、Gemini
のAPIは無料で使用することができるため、まずはこちらを使用して試すことをお勧めします。
無料のAPIはレート制限が厳しい場合があるので、一度制限の内容を確認することもお勧めします。
Geminiの料金モデル
aiwolf-nlp-agentとの差分の構成を記述します。
.
└── src
├── res
│ ├── __init__.py
│ ├── config.ini.example
│ ├── env.example
│ ├── llm
│ │ ├── chatgpt.ini.example
│ │ └── gemini.ini.example
│ └── prompt.py
└── utils
├── agent_util.py
└── llm
├── ChatGPT
│ ├── __init__.py
│ ├── aiwolf_nlp_gpt.py
│ ├── chatgpt.py
│ ├── message_role.py
│ └── optional_params.py
└── Gemini
├── __init__.py
├── gemini.py
└── message_role.py
aiwolf-nlp-agentの環境構築に加え、以下の内容を実行してください。
-
以下のコマンドの実行
cp src/res/env.example src/res/.env cp src/res/llm/chatgpt.ini.example src/res/llm/chatgpt.ini cp src/res/llm/gemini.ini.example src/res/llm/gemini.ini
-
OpenAIのAPIキーを
src/res/.env
ファイル内のOPENAI_API_KEY
に記述する(ChatGPTを使用する場合)APIキーはOpenAI Platformから作成することができます。
-
GeminiのAPIキーを
src/res/.env
ファイル内のGEMINI_API_KEY
に記述する(Geminiを使用する場合)APIキーはGoogle AI for Developersの、
Gemini APIキーを取得する
から作成することができます。
src/res/prompt.py
の内容を変更することで与えるプロンプトを変更することができます。詳細は以下に記述します。
get_common_prompt
: 全命令に共通する内容を記述しているプロンプトです。(src/player/agent.py
のinitialize
で設定しています。
)
get_talk_prompt
: talk
の際に命令する内容を記述しているプロンプトです。(src/player/agent.py
のtalk
で設定しています。
)
src/res/config.ini
の[model]
セクションには、使用するモデルに関する設定が記載されています。デフォルトではGeminiが有効になっており、ChatGPTは無効になっています。この設定を変更することで、利用するモデルを切り替えることができます。
例えば、以下のような記述になっています。
(省略)
[model]
ChatGPT = false
Gemini = true
(省略)
ChatGPTを使用したい場合は、ChatGPTをtrueに、Geminiをfalseに変更してください。
src/res/llm/chatgpt.ini
に以下のような内容でパラメータを設定するファイルが存在します。
[params]
model = gpt-3.5-turbo
# frequency_penalty =
# max_completion_tokens =
# n =
# presence_penalty =
# seed =
# temperature =
# top_p =
model
は必須項目であり、他の項目は任意です。
使用する項目はコメントアウトを外し、値を設定してご使用ください。
それぞれのパラメータの値や意味についてはAPI referenceをご確認ください。
src/res/llm/gemini.ini
に以下のような内容でパラメータを設定するファイルが存在します。
[params]
model = gemini-1.5-flash
# candidate_count =
# max_output_tokens =
# temperature =
# top_p =
# top_k =
# seed =
# presence_penalty =
# requency_penalty =
model
は必須項目であり、他の項目は任意です。
使用する項目はコメントアウトを外し、値を設定してご使用ください。
それぞれのパラメータの値や意味についてはAPI referenceをご確認ください。
APIで使用可能な設定の内、一部のみsrc/utils/llm/ChatGPT/chatgpt.py
に記述してあります。詳細は以下のリファレンスをご参照ください。