見出し画像

Claude3 - API使って簡単なAIチャット実装してみた

AIVtuberシロハナちゃん開発とAIヒロイン研究Pをしているyukiです。

この記事ではClaude3のAPIを試してみたので使い方などを備忘録として残します。

CLI上でClaude3を用いた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)を実行します。

(.venv) C:\aituber>python claude.py
yuki:
python claude.pyでコマンドたたく

そうすると先ほどのコード内にあった名前が表示されます。(上記では私の名前のyukiが表示されています)

ここにチャットのように 何か入力して送信すると、claude-3-opus-20240229のAPIをもとに応答が返ってきます。

Helloと送ってみました

このように設定プロンプトに記載されている設定で応答を返してくれます。
応答する名前もコード内で変更できます。


さいごに

Claude3をAPIから触ってみましたが案外簡単に使えて良かったです。

ただ、何やら公式のサイトによるとClaude APIは個人利用を目的としたものではないらしいです。

一応こういうことらしいので念頭に置いてもらえると良いかなと思い共有しました。

個人的にAPIを使うシーンはAIVtuber利用になりますが、OpenAI(gpt-4turbo)APIのほうがレスが速い印象なので一旦はClaudeのAPIは使わないかなと思います。

あと、ブログなどの情報がまだ少ない印象。
そこが割とGPTだとたくさん転がっているので助かりますね。

最後に私がプロデュースしているAIVtuberシロハナちゃんの宣伝をさせてください。
理想のAIヒロインを目指して、AIを使ったリアルタイム配信や、AIヒロイン研究所というコンセプトのもと、「テクノロジー×キャラクター」に関する動画等を発信しています。
興味がありましたらぜひ!

以上!それではまた👋


ご支援は活動費に使わせていただきます