「AIを使った業務自動化ツールを作りたいけど、APIの使い方がよくわからない」──そんな悩みを抱えるエンジニアや担当者は少なくありません。Claude APIやOpenAI APIは非常に強力ですが、最初の実装でつまずくケースが多いのも事実です。この記事では、PythonでAI APIを実装する方法を実際のコード付きで丁寧に解説します。読み終わるころには今日から自社業務にAIを組み込めるようになります。
Claude APIとOpenAI APIの違いと選び方
現在、ビジネス用途で最もよく使われるAI APIは主に2つです。AnthropicのClaude APIとOpenAIのGPT-4o APIです。どちらも高精度な自然言語処理が可能ですが、それぞれに明確な強みがあります。
Claude APIの最大の強みは、コンテキストウィンドウの大きさと長文の読み書きに強い点です。claude-sonnet-4-6やclaude-opus-4-8といったモデルは日本語の精度も高く、長いドキュメントの要約・分析に非常に向いています。また、Anthropicは安全性を設計の中心に置いているため、ビジネスシーンでの活用でも安心感があります。モデルのラインナップはOpus(最高精度)・Sonnet(精度と速度のバランス)・Haiku(軽量・低コスト)の3段階になっており、用途に合わせて選択できます。
一方、OpenAI GPT-4oはFunction Calling(ツール連携)の実績が豊富で、外部APIとの連携パターンが多く公開されています。すでにGPTベースのプロダクトが社内にある場合は移行コストが低い点もメリットです。
どちらを選ぶかは用途次第です。長文処理・文章生成が中心ならClaude、既存のFunction Callingワークフローの延長ならGPT-4oが適しています。コスト面はリクエスト量と使用モデルによって変動するため、両方を小規模にテストしてから本番採用を決めるのが現実的なアプローチです。この記事ではClaude APIを中心に実装例を紹介しつつ、OpenAI APIとの比較も交えて解説します。
Claude APIのPython実装:最初の一歩
それではClaude APIをPythonで使う方法を見ていきましょう。まず公式ライブラリをインストールします。
pip install anthropicAPIキーはAnthropicのコンソール(console.anthropic.com)で取得します。取得したキーは環境変数ANTHROPIC_API_KEYに設定しておくのがセキュリティ上の基本です。コードに直書きすることは絶対に避けてください。
以下が最もシンプルな実装例です。
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "日本語で自己紹介してください。"}
]
)
print(message.content[0].text)このコードを実行するだけでClaudeからの回答が取得できます。ポイントはmessagesパラメータで会話のロールを指定する点です。roleにはuserとassistantの2種類があり、交互に並べることで会話履歴をAPIに渡せます。max_tokensは応答の最大トークン数を制限する設定で、長文を生成したい場合は4096など大きな値を設定します。
systemパラメータを使えばシステムプロンプト(AIの役割や制約)も指定できます。業務用途では必ずここでAIの役割を明確に定義することをお勧めします。
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="あなたは優秀なビジネスライターです。簡潔で分かりやすい文章を書いてください。",
messages=[
{"role": "user", "content": "AIの業務活用事例を3つ教えてください。"}
]
)
print(message.content[0].text)システムプロンプトで役割を明確にするだけで、出力の質と一貫性が大きく向上します。これはどのAI APIを使う場合でも共通して重要なテクニックです。
実践:会話履歴を保持するチャットボット実装
単発の質問に答えるだけでなく、会話の文脈を保持した対話型AIを作る場合は、会話履歴をリストで管理するのが基本パターンです。以下は文脈を保持しながら対話を続けるチャットボットの実装例です。
import anthropic
client = anthropic.Anthropic()
conversation_history = []
def chat(user_message: str) -> str:
conversation_history.append({
"role": "user",
"content": user_message
})
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="あなたは業務効率化の専門家です。具体的なアドバイスを提供してください。",
messages=conversation_history
)
assistant_message = response.content[0].text
conversation_history.append({
"role": "assistant",
"content": assistant_message
})
return assistant_message
print(chat("Pythonで自動化できる業務を教えてください"))
print(chat("その中で最も費用対効果が高いものはどれですか?"))このコードではconversation_historyリストにuserとassistantの発言を順番に追加していきます。2つ目の質問で「その中で」という代名詞を使っても、Claudeが前の文脈を参照して正しく解釈できます。
注意点として、会話が長くなるほど送信トークン数も増えます。長期間の会話を保持する場合は、古い会話を要約して圧縮する処理を組み込むとコストを抑えられます。またresponse.usageでinput_tokensとoutput_tokensを確認し、コストを把握する習慣をつけましょう。
OpenAI APIでも基本的な考え方は同じです。インターフェースがよく似ているため、どちらかを習得すれば移行もスムーズに行えます。
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "あなたは業務効率化の専門家です。"},
{"role": "user", "content": "AIで自動化できる業務を教えてください"}
]
)
print(response.choices[0].message.content)📚 この記事に関連するおすすめ書籍
さらに深く学びたい方に、参考になる書籍をご紹介します。
※ 本サイトはAmazonアソシエイト・プログラムの参加者です。紹介リンクを経由してご購入いただいた場合、手数料を受け取ることがあります。
業務自動化での活用パターンと実装のコツ
AI APIを業務に組み込む場合、実績のある活用パターンを押さえておくと実装がスムーズになります。
まず「メール・文書の自動生成」です。定型フォーマットをシステムプロンプトで指定し、件名・背景・要件などの情報をuserメッセージで渡すだけで、品質の高い文書を自動生成できます。人が確認・微修正するフローと組み合わせることで、実用的な半自動化が実現します。
次に「データの分類・抽出」です。CSVやJSONで渡した非構造化データから必要な情報を構造化して取り出すタスクにAIは非常に有効です。問い合わせメールのカテゴリ分類や、商品説明文からの仕様情報抽出など、従来は人手が必要だった処理を自動化できます。
「Webスクレイピングとの組み合わせ」も強力なパターンです。BeautifulSoupやPlaywrightで取得したWebページのテキストをClaudeに渡し、要約・分析・レポート生成まで自動化するパイプラインが構築できます。cronや定期実行スケジューラと組み合わせれば、情報収集業務を完全に自動化できます。
実装時の重要なコツも押さえておきましょう。APIの呼び出しはネットワーク障害や料金上限超過で失敗することがあるため、try/exceptで適切にエラーを捕捉し、リトライ処理を組み込むことが重要です。また、APIキーは絶対にコードに直書きせず、python-dotenvなどを使って.envファイルや環境変数で管理してください。コスト管理の面では、本番稼働前に少量のデータで想定トークン数を測定し、月間コストを見積もっておく習慣が大切です。これらの基本を守ることで、AI APIを安全かつ効率的に業務へ組み込むことができます。
AIを活用した業務自動化を導入したい方はnashiまでお問い合わせください。https://nashi-portfolio.netlify.app