Mistral

De Mistral-integratie biedt MistralChatClient voor chatagents en MistralEmbeddingClient voor tekst-embeddings in Agent Framework Python.

Installeer het pakket

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

U kunt ook server_url, api_key en model direct aan een van beide clients doorgeven.

Een chatagent maken

Maak een Agent met MistralChatClient. De client leest de API-sleutel en het chatmodel uit de omgevingsvariabelen die in de vorige sectie worden weergegeven.

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

Het geselecteerde Mistral-model bepaalt welke mogelijkheden op modelniveau beschikbaar zijn.

Chatmogelijkheden

MistralChatClient ondersteunt de volgende Agent Framework-functies:

Vermogen Usage
Streaming Roep agent.run(..., stream=True) aan om de antwoordupdates te doorlopen.
Functiegereedschappen Agent Framework-functiehulpprogramma's toevoegen aan Agent(tools=...).
Gestructureerde uitvoer Geef een Pydantic-model, JSON-schematoewijzing of JSON-objectmodus door via response_format.
Multimodale invoer Verzend afbeeldingsgegevens of URL's en URL's van pdf-documenten in gebruikersberichten.
Redenering Stel reasoning_effort in voor ondersteunde modellen en lees de geretourneerde denkuitvoer als text_reasoning-inhoud.

Zie het Mistral-agentvoorbeeld voor een uitvoerbaar functiehulpmiddel en een voorbeeld van streaming.

Embeddings genereren

Maak de client en roep get_embeddings() aan.

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}

Gebruik MistralEmbeddingOptions dit om een ondersteunde uitvoerdimensie aan te vragen. U kunt ook instellen MISTRAL_SERVER_URL wanneer de toepassing gebruikmaakt van een aangepast compatibel eindpunt.

Belangrijk

Mistral AI is een systeem van derden. Bekijk de servicevoorwaarden, gegevensverwerking, regionale grenzen, modellicenties en gebruikskosten voordat u toepassingsgegevens verzendt.

Tools

MistralChatClient ondersteunt lokaal aangeroepen functiehulpprogramma's en de functie-aanroeplus van Agent Framework. Het geselecteerde model moet functie-aanroepen ondersteunen.

Volgende stappen 

RAG