Mistral 統合では、チャット エージェントのMistralChatClientと、Agent Framework Pythonのテキスト埋め込みのMistralEmbeddingClientが提供されます。
パッケージをインストールする
pip install agent-framework-mistral --pre
Configuration
MISTRAL_API_KEY="<api-key>"
MISTRAL_CHAT_MODEL="mistral-small-latest"
MISTRAL_EMBEDDING_MODEL="mistral-embed"
# Optional compatible endpoint:
MISTRAL_SERVER_URL="<server-url>"
api_key、model、server_urlをどちらのクライアントにも直接渡すこともできます。
クライアントでトランスポート設定を構成します。 エージェント フレームワークは、optionsまたは追加のキーワード引数を介して呼び出しごとに渡すときに、server_url、http_headers、retries、およびtimeout_msを拒否します。 生成オプションは、呼び出しごとに引き続き使用できます。
チャット エージェントを作成する
MistralChatClientを使用してAgentを作成します。 クライアントは、前のセクションで示した環境変数から API キーとチャット モデルを読み取ります。
import asyncio
from agent_framework import Agent
from agent_framework.mistral import MistralChatClient
async def main() -> None:
client = MistralChatClient()
try:
agent = Agent(
client=client,
instructions="You are a helpful assistant.",
)
response = await agent.run("How many days are in a week?")
print(response.text)
finally:
await client.close()
asyncio.run(main())
選択したミストラル モデルによって、使用できるモデル レベルの機能が決まります。
チャット機能
MistralChatClient では、次の Agent Framework 機能がサポートされています。
| Capability | Usage |
|---|---|
| ストリーミング |
agent.run(..., stream=True)を呼び出して、応答の更新を反復処理します。 |
| 関数ツール | Agent Framework 関数ツールを Agent(tools=...)に追加します。 |
| 構造化された出力 |
response_formatを使用して、Pydantic モデル、JSON スキーマ マッピング、または JSON オブジェクト モードを渡します。 |
| マルチモーダル入力 | ユーザー メッセージで画像データまたは URL と PDF ドキュメント URL を送信します。 |
| 推論 | サポートされているモデルの reasoning_effort を設定し、返された思考を text_reasoning コンテンツとして読み取ります。 |
実行可能な関数ツールとストリーミングの例については、 Mistral エージェントのサンプルを参照してください。
埋め込みの生成
クライアントを作成し、 get_embeddings()を呼び出します。
async def basic_embedding_example() -> None:
"""Generate embeddings for a list of texts."""
print("=== Basic Embedding Generation ===")
# 1. Create the embedding client using environment-based configuration.
client = MistralEmbeddingClient()
# 2. Generate embeddings for multiple texts.
texts = ["Hello, world!", "How are you?", "Agent Framework with Mistral AI"]
try:
result = await client.get_embeddings(texts)
# 3. Print the generated vectors and usage metadata.
print(f"Generated {len(result)} embeddings")
for i, embedding in enumerate(result):
print(f" Text {i + 1}: dimensions={embedding.dimensions}, vector={embedding.vector[:5]}...")
if result.usage:
print(
f" Usage: {result.usage['input_token_count']} input tokens, "
f"{result.usage['total_token_count']} total tokens"
)
finally:
await client.close()
async def embedding_with_options_example() -> None:
"""Generate embeddings with custom dimensions."""
print("\n=== Embedding with Custom Dimensions ===")
from agent_framework.mistral import MistralEmbeddingOptions
# Only some models support a custom output dimension (e.g. codestral-embed; mistral-embed does not).
client = MistralEmbeddingClient(model="codestral-embed")
options: MistralEmbeddingOptions = {"dimensions": 256}
MistralEmbeddingOptionsを使用して、サポートされている出力ディメンションを要求します。 アプリケーションでカスタム互換性のあるエンドポイントを使用する場合は、 MISTRAL_SERVER_URL を設定することもできます。
Important
Mistral AI はサード パーティのシステムです。 アプリケーション データを送信する前に、サービス条件、データ処理、地域境界、モデル ライセンス、および使用コストを確認します。
Tools
MistralChatClient では、ローカルに呼び出された関数ツールと Agent Framework 関数呼び出しループがサポートされます。 選択したモデルは、関数呼び出しをサポートする必要があります。