blog
AIブログ
Mistral API 完全実装ガイド|モデル選択・料金・コード例【2026年版】

Mistral APIの全体像と導入判断の起点
Mistral APIは、フランスのAIスタートアップMistral AIが提供するRESTful APIである。同社のモデルをクラウド経由で呼び出すほか、オープンウェイトモデルをセルフホストする形でも同一のインターフェースを使える点が他社と異なる。OpenAI API仕様と高い互換性を持ち、既存のopenaiライブラリやフレームワークをほぼそのまま転用できる。
導入を検討する際にまず確認すべき現行ラインナップは次のとおりである(出典:Mistral公式モデル一覧、2026-06-08確認)。
| モデル名 | 主な用途 | API単価(百万トークン・USD) | 位置づけ |
|---|---|---|---|
| Mistral Medium 3.5 | エージェント・コーディング・マルチモーダル | 入力 $1.50 / 出力 $7.50 | 現行プレミア・フロンティアモデル(2026-05-22) |
| Mistral Small 4 | 軽量・推論・コーディング・マルチモーダル | 入力 $0.10 / 出力 $0.30 | instruct/reasoning/codingを1モデルに統合(2026-03-16) |
| Devstral 2 | ソフトウェアエンジニアリング・コードエージェント | 要確認(console.mistral.ai) | フロンティア・コードエージェントモデル |
| Codestral(v25.08) | コード補完(FIM) | 要確認(console.mistral.ai) | fill-in-the-middle対応。80以上の言語に対応 |
| Mistral Embed | テキスト埋め込み・RAG・類似検索 | 要確認(console.mistral.ai) | 1024次元ベクトル生成 |
| Mistral Moderation 2 | コンテンツ審査・有害コンテンツ分類 | 要確認(console.mistral.ai) | 2026-03更新版 |
| Mistral Large 3 / Ministral 3 | セルフホスト・オープンウェイト運用 | クラウドAPI従量課金またはセルフホスト | Ministral 3はApache 2.0で商用利用可。自社インフラ展開向け |
※料金は変動する。最新単価はMistral公式pricing(2026-06-08確認)およびconsole.mistral.aiで都度確認すること。なお、旧来のMistral 7BやMixtral 8x7BはレガシーモデルでありAPIの新規実装には推奨されない。現行の小型主力はMistral Small 4である。モデルごとの詳細な料金比較はMistral料金プランの詳細比較を参照されたい。
Mistral AI全体の沿革や製品概要についてはMistral AIとは何か・全体像で整理している。本記事ではAPIの実装と導入判断に絞って論じる。
Mistral APIキーの取得と安全な管理
APIを利用するにはMistral AI Platformのアカウントとキーの発行が前提となる。無料トライアルの範囲や登録手順についてはMistral AIの無料プランと制限で詳述している。ここではキー発行から本番環境での管理まで解説する。
- console.mistral.ai にアクセスし、Googleアカウントまたはメールアドレスでサインアップする
- 左メニューの「API Keys」を開き、「Create new key」をクリックする
- 用途を識別できるキー名(例:prod-app / staging / local-dev)を入力し「Generate」を押す
- 表示されたキー文字列を即座にコピーして安全な場所に保存する(再表示不可)
- 環境変数
MISTRAL_API_KEYにセットし、ソースコードへの直書きを避ける
本番環境・ステージング環境・ローカル開発の3系統でキーを分離し、不要になったものはコンソールから即時失効させるのが基本的なセキュリティ管理の方針である。シークレットスキャナー(GitHub Secret Scanning等)を導入することで、誤コミットによる漏洩リスクを抑えやすくなる。
Mistral APIの基本実装とエンドポイント別コード例
Mistral APIはHTTPS経由のREST APIであり、公式PythonSDK(mistralai)と生のHTTPリクエストの両方に対応する。デバッグ時には後者が有効なため、両方の記法を把握しておくことを勧める。
Python公式SDKによるチャット補完
SDKのインストールから始める。
pip install mistralai
チャット補完の最小実装例は次のとおりである。
import os
from mistralai import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
response = client.chat.complete(
model="mistral-small-4",
messages=[
{"role": "user", "content": "Pythonでフィボナッチ数列を生成するコードを書いてください。"}
]
)
print(response.choices[0].message.content)
curlによるHTTPリクエスト
curl -X POST https://api.mistral.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MISTRAL_API_KEY" \
-d '{
"model": "mistral-small-4",
"messages": [{"role": "user", "content": "こんにちは"}]
}'
レスポンスはchoices[0].message.contentにテキストが格納される。OpenAI APIと同一の構造であるため、既存コードのmodelパラメータとベースURLを変更するだけで移行できるケースがほとんどである。
ストリーミングレスポンス
長文の応答をリアルタイムに表示する場合はstream=True相当のインターフェースを用いる。
with client.chat.stream(
model="mistral-medium-3.5",
messages=[{"role": "user", "content": "詳細なレポートを作成してください。"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
ストリーミングを有効にすると、特に日本語の長文応答においてユーザーの体感待機時間を短縮しやすい。チャットUIへの組み込みでは応答完了前から文字が流れるため、インタラクションの印象が改善しやすくなる。
Embeddingsエンドポイント(RAG・類似検索)
response = client.embeddings.create(
model="mistral-embed",
inputs=["この文章をベクトル化してください。"]
)
vector = response.data[0].embedding
print(f"次元数: {len(vector)}") # 1024次元
出力は1024次元の浮動小数点数リストである。Pinecone・Qdrant・pgvectorなど主要なベクトルDBにそのまま格納できる。
FIMエンドポイント(コード補完)
Fill-in-the-Middle(FIM)はコードの途中を補完する方式で、IDE拡張や自社開発エディタへの組み込みに使う。
response = client.fim.complete(
model="codestral-latest",
prompt="def fibonacci(n):\n if n <= 1:\n return n\n ",
suffix="\n\nprint(fibonacci(10))"
)
print(response.choices[0].message.content)
OpenAIライブラリを使った移行パス
既存のOpenAIベースのコードからMistral APIへ移行する場合、ベースURLとAPIキーの2点を変更するだけで動作する。
from openai import OpenAI
import os
client = OpenAI(
api_key=os.environ["MISTRAL_API_KEY"],
base_url="https://api.mistral.ai/v1"
)
response = client.chat.completions.create(
model="mistral-medium-3.5",
messages=[{"role": "user", "content": "こんにちは"}]
)
print(response.choices[0].message.content)
LangChainやLlamaIndexでもChatMistralAIクラスやMistralAIインテグレーションが整備されており、既存のRAGパイプラインへの組み込みを簡易化できる。
Function Callingによるエージェント実装
Mistral APIはFunction Calling(ツール呼び出し)をサポートしており、モデルに外部関数を実行させてその結果を回答に組み込むことができる。エージェント型アプリケーション構築の核となる機能である。
実行フローは次の5段階で構成される。
| ステップ | 内容 |
|---|---|
| ① ツール定義 | 関数スキーマをJSONで記述してAPIに渡す |
| ② APIリクエスト | messagesとtoolsを同時に送信する |
| ③ tool_calls受信 | モデルが呼び出すべき関数名と引数を返す |
| ④ 関数実行 | アプリケーション側でローカル関数を実行する |
| ⑤ 結果を再送信 | 実行結果をtoolロールで会話に追加し最終回答を取得する |
import json
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "指定都市の現在の天気を返す",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "都市名(日本語可)"}
},
"required": ["city"]
}
}
}
]
messages = [{"role": "user", "content": "東京の天気を教えて"}]
response = client.chat.complete(
model="mistral-medium-3.5",
messages=messages,
tools=tools,
tool_choice="auto"
)
tool_call = response.choices[0].message.tool_calls[0]
func_args = json.loads(tool_call.function.arguments)
def get_weather(city):
return f"{city}は晴れ、気温22℃"
result = get_weather(**func_args)
messages.append(response.choices[0].message)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": result
})
final = client.chat.complete(model="mistral-medium-3.5", messages=messages)
print(final.choices[0].message.content)
Agents API(Mistral Studio経由のConnectors機能)も2026年4月よりパブリックプレビューとして提供されており、より高度なエージェント構築に活用できる。詳細はMistral公式ドキュメントで確認されたい。
モデル選択の判断基準とコスト最適化
どのモデルを採用するかは、精度・レイテンシ・コストの3軸で判断する。以下は用途別の推奨モデルをまとめた参照表である(料金出典:mistral.ai/pricing/、2026-06-08確認)。
| タスク種別 | 推奨モデル | 選択理由 |
|---|---|---|
| 大量ドキュメントの分類・要約・翻訳 | Mistral Small 4 | 入力$0.10/出力$0.30と最安級。instruct・reasoning・codingを統合 |
| 複雑な推論・多段階エージェント・マルチモーダル | Mistral Medium 3.5 | 現行プレミア・フロンティアモデル。エージェント用途に最適化済み |
| コードエージェント・大規模ソフトウェア開発 | Devstral 2 | ソフトウェアエンジニアリング特化のフロンティアモデル |
| IDE統合・コード補完(FIM) | Codestral(v25.08) | fill-in-the-middle対応。80以上の言語をカバー |
| RAG・セマンティック検索・類似文書検索 | Mistral Embed | 1024次元ベクトル生成専用モデル |
| コンテンツモデレーション | Mistral Moderation 2 | 有害コンテンツ検出に特化(2026-03更新版) |
| データ機密性が高い環境・セルフホスト | Mistral Large 3 / Ministral 3 | Ministral 3はApache 2.0で商用利用可。OllamaやvLLMで同一API互換動作 |
コスト最適化の実践的な指針は次の5点に集約される。
- まずMistral Small 4で試作する:入力$0.10/出力$0.30という単価は、大量バッチ処理においてコストを大幅に抑えやすい。精度が不足する場合のみMistral Medium 3.5に切り替えるアプローチが費用対効果の面で優れている。精度差が顕在化しやすいのは、複数ステップの論理推論や日本語における細かいニュアンス生成といったタスクである。
max_tokensを明示的に制限する:応答長の上限を設定しないと不必要に長い出力が生成されてコストが膨らむ。タスクごとに適切な上限を設けること。- システムプロンプトを簡潔に保つ:毎リクエストに含まれるシステムプロンプトは短いほど入力コストが下がる。冗長な指示を削除してコアインストラクションに絞る。
- キャッシュレイヤーを設ける:同一入力への繰り返しリクエストはRedis等でキャッシュして二重課金を防ぐ。
- 非リアルタイム処理にはバッチAPIを検討する:文書の一括分類・翻訳など即時性が不要な処理はバッチ方式への切り替えでコストを抑えやすくなる。
AIの業務活用におけるコスト管理の重要性はRIETIの研究資料でも指摘されており、導入段階でのコスト設計が長期的なROIに影響することが示されている(出典:RIETI BBLセミナー資料)。
エラーハンドリング・パラメータ設定・本番運用の要点
本番環境での安定運用には適切なエラーハンドリングが不可欠である。頻出するHTTPエラーと対処法を次の表に整理する。
| HTTPステータス | 意味 | 対処法 |
|---|---|---|
| 401 | APIキー無効 | キーを再発行・環境変数を確認 |
| 422 | リクエスト形式エラー | messagesの構造・必須フィールドを確認 |
| 429 | レート制限超過 | 指数バックオフでリトライ |
| 500 / 503 | サーバーエラー | 一定間隔でリトライ(上限回数を設定) |
429エラーへの指数バックオフ実装例を示す。
import time
from mistralai import MistralAPIException
def chat_with_retry(client, messages, model, max_retries=5):
for attempt in range(max_retries):
try:
return client.chat.complete(model=model, messages=messages)
except MistralAPIException as e:
if e.status_code == 429:
wait = 2 ** attempt # 1, 2, 4, 8, 16秒
print(f"レート制限: {wait}秒後にリトライ")
time.sleep(wait)
else:
raise
raise RuntimeError("最大リトライ回数に達しました")
主要パラメータの設定方針も整理しておく。
| パラメータ | デフォルト | 推奨値(用途別) |
|---|---|---|
temperature |
0.7 | コード・分類:0〜0.3 / 創作・対話:0.8〜1.0 |
max_tokens |
モデル上限 | コスト管理のため明示的に指定を推奨 |
top_p |
1.0 | temperatureとの同時変更は非推奨 |
safe_prompt |
false | 一般公開サービスではtrueを推奨 |
random_seed |
null | 再現性が必要なテスト・評価時に整数を指定 |
セキュリティの観点では、APIキーの管理のほかにも、プロンプトインジェクション対策として入力値のバリデーションとsafe_promptの活用を組み合わせることが望ましい。クラウドAPIとセルフホストの選択についても触れておく。個人情報や機密文書を扱う場合はデータが外部送信されないセルフホスト(Ministral 3のApache 2.0版など、Ollamaや vLLMで稼働)が適している。一方、トラフィックの波が大きいプロダクトではインフラ管理コストも含めてクラウドAPIの従量課金の方がトータルで有利になるケースが多い。クラウドセキュリティの一般的なフレームワークについては総務省の資料も参考になる(出典:総務省「AWSの生成AIサービスとセキュリティ対策」PDF)。
Le ChatのProプラン($14.99/月)はあくまでも消費者向けサブスクリプションであり、APIクレジットは含まれない。開発者向けAPIは独立した従量課金となるため、混同しないよう注意が必要である。Le Chat自体の機能についてはMistral Le Chatの詳細解説を参照されたい。
Mistral APIで利用できる全モデルの仕様比較はMistralモデル一覧・比較で詳述している。またOCR機能(OCR 3)の活用についてはMistral OCRの使い方を参照されたい。他のLLM APIとのコスト・機能比較を検討する場合は、DeepSeek API解説やClaude Code API料金解説も判断材料として役立つ。

なお、弊社が開発するバーチャルヒューマン/AIアバターソリューション「DeepAI」は、Mistral APIのような外部LLMとの対話エンジン統合を前提とした設計が可能な構造を持つ。実在の人物の容姿・表情・声・振る舞いをデジタル空間で再現し、接客・研修・面接練習・広報などの用途に活用されている。Mistral APIをバックエンドに据えたバーチャルヒューマンの構築に関心がある場合は、お問い合わせいただきたい。
まとめ:Mistral APIの導入判断チェックリスト
Mistral APIの強みは、OpenAI互換インターフェースによる導入のしやすさ、軽量モデルから高性能フロンティアまでの幅広い選択肢、そしてオープンウェイトモデルとの組み合わせによる柔軟な運用形態にある。2026年6月時点の現行主力モデルは、プレミア・フロンティアのMistral Medium 3.5(入力$1.50/出力$7.50)と、高コスパ小型モデルのMistral Small 4(入力$0.10/出力$0.30)の2軸が中心である(出典:mistral.ai/pricing/、2026-06-08確認)。
- APIキーはconsole.mistral.aiで即時発行。
MISTRAL_API_KEY環境変数で管理し、ソースコードへの直書きを避ける - チャット補完・Embeddings・FIM・Moderationの4系統のエンドポイントを用途別に使い分ける
- Function Callingでエージェント型アプリケーションを構築できる
- コスト最適化の基本は「Mistral Small 4から試す」「
max_tokensを制限する」の2点 - 429エラーには指数バックオフを実装し、本番環境では上限回数付きリトライを設ける
- データ機密性が高い場合はMinistral 3(Apache 2.0)のセルフホストを検討する
- Le Chat Pro($14.99/月)はAPIクレジットを含まない。課金体系を混同しないこと
料金体系の詳細はMistral料金プランの詳細比較で、Mistral AIの全体像はMistral AIとはでそれぞれ深掘りしている。
AIの業務活用・導入をご検討の方へ
クリスタルメソッドは、各種LLM・ローカルAI・RAG・AIアバターを活用した業務へのAI導入を支援しています。「自社の業務でどう使えるか」をまずはお気軽にご相談ください。
参考文献
- Mistral公式 pricing(2026-06-08確認): https://mistral.ai/pricing/
- Mistral公式 モデル一覧(2026-06-08確認): https://docs.mistral.ai/models/overview
- Mistral公式 モデルラインナップ(2026-06-08確認): https://mistral.ai/models/
- Mistral公式 ニュース(2026-06-08確認): https://mistral.ai/news/
- RIETI BBLセミナー資料「生成AIの業務活用とコスト設計」: https://www.rieti.go.jp/jp/events/bbl/24112701_izaki.pdf
- 総務省「AWSの生成AIサービスとセキュリティ対策」: https://www.soumu.go.jp/main_content/001039083.pdf
監修
河合 継(クリスタルメソッド株式会社 代表取締役)
AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番組でのAI解説実績を持つAI研究者として、AIの研究開発を主導している。
運営会社について | 編集方針
Study about AI
AIについて学ぶ
-
AI面接の通過率を上げる受け方|落ちる人の共通点と今すぐできる対策
「手応えがあったのに、なぜ落ちたのだろう」——AI面接のフィードバックを何度読み返しても、どこが悪かったのか腑に落ちない。その感覚はおかしくない。AI面接の評価...
-
新卒の面接対策|就活で評価される準備と答え方
「何を答えるか」は準備できた。エントリーシートも添削してもらった。でも、いざカメラの前で話すと言葉に詰まり、自分の表情が固まっているかどうかもわからない——就活...
-
AI面接の服装|録画・オンライン面接で好印象な身だしなみ
結論:AI面接の服装は「対面と同じ清潔感」でOK——開発側から理由を説明する 先に答えを出す。AI面接の服装は、対面面接と同じ清潔感を保てばそれで十分だ。私服で...