見出し画像

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)を実行します。

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

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

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

Helloと送ってみました

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


さいごに

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

ただ、公式の情報によるとClaudeのAPIは以下のような記載があります。

「APIへのアクセスは当社の商用利用規約に従うものであり、個人での使用を意図したものではありません。」

こちらAIに規約などを読み込ませて聞いてみたところ、確かに商用利用規約は法人や団体向けに設計されており、個人利用を前提としたものではないとのことでした。

私の場合は個人事業主としての利用なら問題ないのではという解釈で利用をします。(※Anthropic側に問題があると判断されれば利用停止します)

商用利用規約では、「組織、会社、またはその他の団体」("organization, company, or other entity")という表現が使われていますが、この「団体」("entity")という言葉には広い意味が含まれていると解釈できます。
必ずしも法人である必要はなく、個人事業主もビジネスを行う主体として、この「団体」に該当する可能性があります。つまり、個人事業主としてAPIを利用する場合でも、商用利用規約が適用され、利用が許可されると考えられます。

また、商用利用規約はビジネス目的でサービスを利用するすべてのユーザーに適用されると解釈されるため、個人事業主であっても、法人や会社と同じように規約に従ってAPIを利用できると考えています。

要するに、個人事業主も「事業体」として扱われる可能性があるため、商用利用規約の対象となり、APIを利用することができると解釈しています。

APIは、非商用目的での個人利用、競合サービスの開発、リバースエンジニアリング、法的に禁止された国や地域での利用では制限されると考えられます。

利用規約をソースとしてAIと壁打ちした内容

あくまでご参考までに。

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

以上!それではまた👋


いいなと思ったら応援しよう!

yuki@AIキャラ開発P
ご支援は活動費に使わせていただきます