Claude API入門:自分のアプリにAIを組み込む方法
Claude APIはAnthropicのコンソールでAPIキーを取得し、PythonやDartから呼び出す。料金はSonnet系で入力100万トークンあたり約3ドルの従量課金だ。
Claude APIを使うと、FlutterアプリやWebサービスの中にClaudeの機能を組み込める。チャット画面を開かなくても、アプリのボタンを押すだけでAIが回答する仕組みが作れる。この記事では「APIって何?」というところから、実際のコードの書き方までFAQで整理する。
APIとは何か
APIはプログラムから別のサービスを呼び出す仕組みで、Claude APIではコードから自動的にClaudeへ質問を送り回答を受け取れる。
API(Application Programming Interface)は、プログラムから別のサービスを呼び出す仕組みだ。Claude APIの場合は「Pythonなどのコードから、Claudeに質問を送って回答を受け取る」ことができる。
チャット版との違いは、人間がブラウザを開いて入力する代わりに、プログラムが自動的に質問を送れること。これにより「ユーザーが入力したテキストをAIで要約して表示する」「毎朝AIが自動レポートを生成する」といった機能を自分のアプリに組み込める。
よくある質問(FAQ)
APIキーはconsole.anthropic.comで取得し、モデルはほとんどのケースでSonnetが最適だ。料金はSonnet系で入力100万トークンあたり約3ドルの従量課金。
APIキーはどこで取得する?
Anthropicのコンソール(console.anthropic.com)にアクセスし、アカウントを作成して「API Keys」からキーを発行する。発行されたキーは一度しか表示されないので、その場でコピーして安全な場所に保存すること。
料金はいくらかかる?
APIはサブスクリプションとは別料金で、使った分だけ課金される(従量課金)。料金はトークン(テキストの単位、日本語は1文字が約1〜2トークン)で計算される。Sonnet系で入力100万トークンあたり約3ドル・出力100万トークンあたり約15ドル。個人開発の軽い用途なら月数百円〜数千円程度。
何語で書ける?
公式SDKはPython・TypeScript(Node.js)が提供されている。それ以外の言語でも、HTTPリクエストを送れれば使える(Go・Ruby・PHPなどでも利用可)。Flutterアプリに組み込む場合はDartからHTTPリクエストを直接送ることになる。
Pythonでの基本的な使い方は?
以下が最小限のコード。pip install anthropicでSDKをインストールしてから実行する。
import anthropic
client = anthropic.Anthropic(api_key="your-api-key")
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "こんにちは!"}
]
)
print(message.content[0].text)
モデルはどれを選べばいい?
用途によって使い分ける。Opusは最高性能だがコストが高い(複雑な推論・長文分析向け)。Sonnetは性能とコストのバランスが最も良く、ほとんどのケースはこれで十分。Haikuは最速・最安価で、シンプルな分類や返答に向いている。迷ったらSonnetから始めると良い。
システムプロンプトとは?
AIの役割や振る舞いを事前に指定するテキスト。たとえば「あなたは釣り専門のアシスタントです。簡潔に回答してください」と設定しておくと、ユーザーがどんな質問をしてもその役割で応答する。messages配列の前にsystemパラメーターで渡す。
会話の履歴を保持するには?
APIはステートレス(前の会話を自動で記憶しない)。会話を続けるには、過去のuserとassistantのやり取りをすべてmessages配列に含めて送る必要がある。アプリ側でリストに履歴を蓄積し、毎回まとめて送るのが基本パターン。
APIキーを安全に管理するには?
APIキーはソースコードに直書きしない。環境変数(ANTHROPIC_API_KEY)として設定するのが基本。Flutterアプリの場合、キーをアプリに埋め込むと抽出されるリスクがある。バックエンド(Firebase FunctionsやCloudflare Workers)経由でAPIを呼ぶのが安全な構成。
ストリーミング(リアルタイム表示)はできる?
できる。SDKのclient.messages.stream()を使うと、ChatGPTのように文字が少しずつ表示される体験を実装できる。長い回答を待たせずに即座に表示し始められるので、ユーザー体験が向上する。
Claude Codeのサブスクとは別のお金がかかる?
かかる。Claude CodeのサブスクはClaude Codeツール内での利用が含まれる。APIは別途Anthropicのコンソールでクレジットを購入・チャージして使う。開発中に自分のClaude Codeを使うのはサブスクの範囲内だが、自分のアプリのユーザーにClaudeを提供するにはAPI料金が発生する。
無料枠はある?
新規登録時に一定の無料クレジットが付与される(金額はAnthropicの方針により変動)。それを使い切った後は従量課金になる。小規模なプロトタイプ開発中は無料クレジットで試せることが多い。
レート制限(1分間に何回まで?)は?
アカウントの利用状況やプランによって異なる。初期は比較的低め(1分あたりのリクエスト数・トークン数の上限がある)。使い込むと自動で引き上げられることが多い。制限に引っかかるとAPIが429エラーを返すので、エクスポネンシャルバックオフ(失敗したら少し待って再試行)を実装しておくと良い。
Tool Use(関数呼び出し)とは?
Claudeに「この関数を呼び出してよい」と許可を与える機能。たとえば「天気APIを呼ぶ関数」を定義しておくと、ユーザーが「今日の東京の天気は?」と聞いたときにClaudeが自動でその関数を呼び出し、結果を使って回答を返してくれる。AIエージェントを作る際の中心的な機能。
Flutter + Claude APIの組み合わせ
FlutterにClaude APIを組み込む場合、APIキーをアプリに直接埋め込まずFirebase Functions経由で呼び出すのが安全な構成だ。
SEADICEアプリでAI機能を追加する場合の構成例:
- Flutter側でユーザーのテキスト入力を受け取る
- Firebase Functions(Node.js)にHTTPリクエストを送る
- Functions内でClaude APIを呼び出す(APIキーは環境変数で管理)
- Claudeの回答をFlutterに返す
APIキーをFlutterアプリに直接埋め込まないことが重要。バックエンド経由にすることでキーが漏洩するリスクを防げる。
シリーズまとめ
チャットは対話・Claude Codeは開発作業の自動化・APIはアプリへの組み込みと、それぞれ役割が異なる。目的に合わせて使い分けることが重要だ。
3記事でClaudeのエコシステムを学んだ。
- 第1回(Claude入門):チャットで何でもこなすAIアシスタント
- 第2回(Claude Code入門):ファイル操作・デプロイまで実際に手を動かすエージェント
- 第3回(Claude API入門):自分のアプリにAIを組み込むためのインターフェース
それぞれ役割が違う。チャットは対話、Claude Codeは開発作業の自動化、APIはアプリへの組み込み。目的に合わせて使い分けよう。
← ブログ一覧へ