Anthropic社のClaude APIを使って、Pythonで動作するAIチャットボットを作成する方法を解説します。2024年以降、ClaudeはGPT-4oと並ぶ高性能LLMとして注目を集めています。
Claude APIとは
Claude APIは、Anthropic社が提供する大規模言語モデル(LLM)のAPIです。ChatGPTのOpenAI APIと同様に、HTTPリクエストでAIとの対話が可能です。特にClaude 3.5 Sonnetは、コーディング支援や長文処理において高い性能を発揮します。
環境構築
まずAnthropicの公式サイトでAPIキーを取得し、Pythonの環境を準備します。
pip install anthropic
export ANTHROPIC_API_KEY="your-api-key-here"
基本的なチャットボットの実装
以下がClaude APIを使った最もシンプルなチャットボットの実装です。
import anthropic
client = anthropic.Anthropic()
def chat(user_message: str) -> str:
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[
{"role": "user", "content": user_message}
]
)
return message.content[0].text
# 対話ループ
while True:
user_input = input("You: ")
if user_input.lower() in ["quit", "exit"]:
break
response = chat(user_input)
print(f"Claude: {response}")
会話履歴を保持する
実用的なチャットボットでは、会話の文脈を保持する必要があります。messagesリストに過去のやり取りを蓄積することで実現できます。
class ChatBot:
def __init__(self, system_prompt="あなたは親切なアシスタントです。"):
self.client = anthropic.Anthropic()
self.system = system_prompt
self.messages = []
def send(self, user_message: str) -> str:
self.messages.append({"role": "user", "content": user_message})
response = self.client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2048,
system=self.system,
messages=self.messages
)
assistant_msg = response.content[0].text
self.messages.append({"role": "assistant", "content": assistant_msg})
return assistant_msg
bot = ChatBot("あなたはPythonプログラミングの専門家です。")
print(bot.send("リスト内包表記について教えてください"))
print(bot.send("具体例をもう少し見せてください"))
エラーハンドリング
本番環境ではレート制限やネットワークエラーへの対策が必要です。anthropicライブラリは自動リトライ機能を備えていますが、明示的なエラーハンドリングも重要です。
import anthropic
from anthropic import RateLimitError, APIConnectionError
try:
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}]
)
except RateLimitError:
print("レート制限に達しました。しばらく待ってから再試行してください。")
except APIConnectionError:
print("API接続エラー。ネットワーク状態を確認してください。")
まとめ
Claude APIは直感的なインターフェースで、少ないコード量でAIチャットボットを構築できます。次回はFunction Callingを活用した、外部データベースと連携するチャットボットの作り方を紹介します。
コメントを残す