Mistral

La integración de Mistral proporciona MistralChatClient para agentes de chat y MistralEmbeddingClient para incrustaciones de texto en Agent Framework para Python.

Instalar el paquete

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

También puede pasar api_key, modely server_url directamente a cualquier cliente.

Configure las opciones de transporte en el cliente. Agent Framework rechaza server_url, http_headers, retries y timeout_ms cuando se pasan en cada llamada a través de options o mediante argumentos de palabra clave adicionales. Las opciones de generación siguen disponibles en cada llamada.

Creación de un agente de chat

Cree un Agent con MistralChatClient. El cliente lee la clave de API y el modelo de chat de las variables de entorno que se muestran en la sección anterior.

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

El modelo Mistral seleccionado determina qué funcionalidades de nivel de modelo están disponibles.

Funcionalidades de chat

MistralChatClient admite las siguientes características de Agent Framework:

Capacidad Usage
Streaming Llame a agent.run(..., stream=True) para iterar sobre las actualizaciones de la respuesta.
Herramientas funcionales Agregue las herramientas de funciones de Agent Framework a Agent(tools=...).
Salida estructurada Pase un modelo de Pydantic, un mapeo de esquemas JSON o un modo de objeto de JSON a través de response_format.
Entrada multimodal Enviar datos de imagen o URL, y URL de documentos PDF en los mensajes de usuario.
Reasoning Establezca reasoning_effort para los modelos compatibles y lea el razonamiento devuelto como contenido text_reasoning.

Para ver un ejemplo ejecutable de función-herramienta y transmisión en streaming, consulte el ejemplo de agente de Mistral.

Generación de inserciones

Cree el cliente y llame a 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}

Use MistralEmbeddingOptions para solicitar una dimensión de salida admitida. También puede establecer MISTRAL_SERVER_URL cuando la aplicación usa un punto de conexión compatible personalizado.

Important

Mistral AI es un sistema de terceros. Revise sus términos de servicio, el control de datos, los límites regionales, las licencias del modelo y los costos de uso antes de enviar datos de la aplicación.

Tools

MistralChatClient admite las herramientas de función invocadas localmente y el bucle de invocación de funciones de Agent Framework. El modelo seleccionado debe admitir llamadas a funciones.

Pasos siguientes

RAG