Claude - API使って簡単なAIチャット実装してみた
AIVtuberシロハナちゃん開発とAIヒロイン研究Pをしているyukiです。
この記事ではClaudeのAPIを試してみたので使い方などを備忘録として残します。
CLI上でClaudeを用いたAIキャラクターと会話できるところまで簡単に実装してみました。(一応コード貼ってあります)
環境はWindowsで言語はPythonです。
詳細は公式からどうぞ
※この記事は2024/03/14時点のものなので今後変更があるかもしれないですのでご了承ください
Anthropic ConsoleにアクセスしてAPIキー発行
まずは上記からAnthropic Consoleにアクセスします。
アクセス出来たらGet API KeysからAPIキーを発行します。
これでAPIキーの準備は完了です。(あとでKEYを使います)
API使って実装
まず任意のディレクトリを作成などして、以下コマンドを叩きます。
pip install anthropic
次に、.envファイルにて以下の記載をします。
""のなかは先ほど発行したAPIキーをコピペしてください。
ANTHROPIC_API_KEY = "発行したAPIキー"
pythonファイルを作成して以下コードを記載(claude.py)
import dotenv
import os
from anthropic import Anthropic
dotenv.load_dotenv()
class Claude:
def __init__(self):
# システムプロンプトを読み込み
prompt_file_path = os.path.join(os.path.dirname(__file__), 'system_prompt.txt')
with open(prompt_file_path, "r", encoding="utf-8") as f:
self.system_prompt = f.read()
self.client = Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
# 使用するモデルを指定
self.model = "claude-3-opus-20240229"
self.temperature = 1.0
def create_chat(self, question):
# Anthropic APIを使用して応答を生成
response = self.client.messages.create(
model=self.model,
system=self.system_prompt,
messages=[{"role": "user", "content": question}],
max_tokens=2000,
)
# 応答を取得
response_content = response.content[0].text.strip()
return response_content
if __name__ == "__main__":
adapter = Claude()
while True:
user_input = input("yuki: ")
if user_input.lower() == "quit":
break
response = adapter.create_chat(user_input)
print("shirohana: " + response)
上記では、claude-3-opus-20240229というモデルを使って、同じ階層にあるsystem_prompt.txtに書かれたキャラクタープロンプトをもとに、チャットができるようになっています。
モデルはコード上で書き換えれば変わります。
最新のモデルは以下リンクから参照してください。
https://docs.anthropic.com/claude/docs/models-overview
今回のsystem_prompt.txtでは私がプロデュースしているAIVtuberのシロハナちゃんの設定プロンプトが記載されています。
プロンプトは公開しませんが、お好きな設定プロンプトを書いてあげると良いかと思います。
これで実装は完了です。
ターミナルでチャットする
コマンドプロンプトなどで先ほど記載したpythonファイル(claude.py)を実行します。
そうすると先ほどのコード内にあった名前が表示されます。(上記では私の名前のyukiが表示されています)
ここにチャットのように 何か入力して送信すると、claude-3-opus-20240229のAPIをもとに応答が返ってきます。
このように設定プロンプトに記載されている設定で応答を返してくれます。
応答する名前もコード内で変更できます。
さいごに
ClaudeをAPIから触ってみましたが案外簡単に使えて良かったです。
ただ、公式の情報によるとClaudeのAPIは以下のような記載があります。
「APIへのアクセスは当社の商用利用規約に従うものであり、個人での使用を意図したものではありません。」
こちらAIに規約などを読み込ませて聞いてみたところ、確かに商用利用規約は法人や団体向けに設計されており、個人利用を前提としたものではないとのことでした。
私の場合は個人事業主としての利用なら問題ないのではという解釈で利用をします。(※Anthropic側に問題があると判断されれば利用停止します)
あくまでご参考までに。
最後に私がプロデュースしているAIVtuberシロハナちゃんの宣伝をさせてください。
理想のAIヒロインを目指して、AIを使ったリアルタイム配信や、AIヒロイン研究所というコンセプトのもと、「テクノロジー×キャラクター」に関する動画を発信しています。
興味がありましたらぜひ!
以上!それではまた👋