Mistral

L’intégration de Mistral fournit MistralChatClient pour les agents conversationnels et MistralEmbeddingClient pour les plongements de texte dans Agent Framework Python.

Installer le package

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>"

Vous pouvez également transmettre directement api_key, model et server_url à l’un ou l’autre client.

Créer un agent de conversation

Créez un Agent avec MistralChatClient. Le client lit la clé API et le modèle de conversation à partir des variables d’environnement indiquées dans la section précédente.

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())

Le modèle Mistral sélectionné détermine les fonctionnalités au niveau du modèle disponibles.

Fonctionnalités de conversation

MistralChatClient prend en charge les fonctionnalités d’Agent Framework suivantes :

Capacité Usage
Diffusion en continu Appelez agent.run(..., stream=True) pour itérer sur les mises à jour de la réponse.
Outils de fonction Ajouter des outils de fonction Agent Framework à Agent(tools=...).
Sortie structurée Passez un modèle Pydantic, un mappage de schéma JSON ou un mode objet JSON via response_format.
Entrée multimodale Envoyez des données d’image ou des URL, ainsi que des URL de documents PDF dans les messages utilisateur.
Reasoning Définissez reasoning_effort pour les modèles pris en charge et lisez le raisonnement renvoyé comme contenu text_reasoning.

Pour obtenir un exemple d’outil de fonction et de diffusion en continu exécutables, consultez l’exemple d’agent Mistral.

Générer des embeddings

Créez le client et appelez 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}

Utilisez MistralEmbeddingOptions pour demander une dimension de sortie prise en charge. Vous pouvez également définir MISTRAL_SERVER_URL lorsque l’application utilise un point de terminaison compatible personnalisé.

Important

Mistral AI est un système tiers. Passez en revue ses conditions de service, la gestion des données, les limites régionales, les licences de modèle et les coûts d’utilisation avant d’envoyer des données d’application.

Tools

MistralChatClient prend en charge les outils de fonction appelés localement et la boucle d’appel de fonction Agent Framework. Le modèle sélectionné doit prendre en charge les appels de fonction.

Étapes suivantes

RAG