Mistral

Integracja Mistral udostępnia MistralChatClient dla agentów czatu i MistralEmbeddingClient dla osadzania tekstu w środowisku Agent Framework Python.

Warning

Traktuj dane wyjściowe modelu lub osadzeń oraz wywołania narzędzi generowane przez model, gdy są obsługiwane, jako niezaufane dane wejściowe aplikacji. Zweryfikuj je, zanim kod wykona efekty uboczne lub wyrenderuje zawartość. Jeśli skonfigurujesz niestandardowy punkt końcowy, sprawdź, czy ufasz jego adresowi URL i operatorowi.

Instalowanie pakietu

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

Możesz również przekazać api_key, model i server_url bezpośrednio do jednego z klientów.

Skonfiguruj ustawienia transportu na kliencie. Agent Framework odrzuca server_url, http_headers, retries i timeout_ms, gdy przekazujesz je przy każdym wywołaniu przez options lub jako dodatkowe argumenty słów kluczowych. Opcje generowania pozostają dostępne dla każdego wywołania.

Tworzenie agenta czatu

Utwórz element Agent za pomocą MistralChatClient. Klient odczytuje klucz interfejsu API i model czatu ze zmiennych środowiskowych przedstawionych w poprzedniej sekcji.

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

Wybrany model Mistral określa, które możliwości na poziomie modelu są dostępne.

Możliwości czatu

MistralChatClient program obsługuje następujące funkcje platformy Agent Framework:

Zdolność Usage
Transmisja strumieniowa Wywołaj agent.run(..., stream=True), aby iterować po aktualizacjach odpowiedzi.
Narzędzia funkcji Dodaj narzędzia funkcji platformy Agent Framework do programu Agent(tools=...).
Strukturalne dane wyjściowe Przekaż model Pydantic, mapowanie schematu JSON lub tryb obiektowy JSON przez response_format.
Dane wejściowe wielomodalne Wysyłanie danych obrazów lub adresów URL i adresów URL dokumentów PDF w komunikatach użytkownika.
Reasoning Ustaw reasoning_effort dla obsługiwanych modeli i odczytuj zwrócony proces rozumowania jako zawartość text_reasoning.

Przykład narzędzia-funkcji, które można uruchomić, oraz przesyłania strumieniowego znajdziesz w przykładzie agenta Mistral.

Generowanie embedów

Utwórz klienta i wywołaj 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}

Użyj MistralEmbeddingOptions, aby zażądać obsługiwanego wymiaru wyjściowego. Można również ustawić MISTRAL_SERVER_URL , gdy aplikacja używa niestandardowego zgodnego punktu końcowego.

Important

Mistral AI to system innej firmy. Przed wysłaniem danych zapoznaj się z warunkami świadczenia usługi, obsługą danych, granicami regionalnymi, licencjonowaniem modelu i kosztami użycia.

Tools

MistralChatClient obsługuje lokalnie wywoływane narzędzia funkcji i pętlę wywołania funkcji platformy Agent Framework. Wybrany model musi obsługiwać wywoływanie funkcji.

Następne kroki

RAG