Pular para o conteúdo principal

Tutorial do Mistral Medium 3: Criação de aplicativos agênticos

Desenvolva um aplicativo de agente com várias ferramentas usando LangGraph, Tavily, ferramenta Python e API Mistral AI no ambiente DataLab.
Actualizado 19 de mai. de 2025  · 5 min de leitura

O Mistral Medium 3 oferece alto desempenho a um preço significativamente mais baixo do que muitas alternativas. Atualmente, ele está disponível por meio da API Mistral AI, com preço de apenas US$ 0,40 por milhão de tokens de entrada e US$ 2 por milhão de tokens de saída. Esse preço supera o desempenho dos principais concorrentes, como DeepSeek v3seja em sistemas API ou auto-implantados. Em resumo, você pode obter até 90% do desempenho do Claude Sonnet 3.7 em vários benchmarks, enquanto você economiza consideravelmente nos custos.

Neste tutorial, aprenderemos como configurar a API do Mistral e usar o cliente Python para acessar o modelo. Depois disso, usaremos o LangGraph para criar um aplicativo agêntico que usa a pesquisa na Web e a ferramenta Python REPL para gerar respostas.

Criando um aplicativo Agentic com a imagem do recurso Mistral Medium 3

Imagem do autor

Primeiros passos com o Mistral Medium 3

Nesta seção, aprenderemos como gerar a chave da API, salvá-la como uma variável de ambiente e, em seguida, usar o cliente Python para acessar o Mistral Medium 3 para geração de texto e compreensão de imagem.

1. Geração da chave da API do Mistral AI

Inscreva-se no La Plateforme: Mistral AI e, em seguida, vá para Billing (Cobrança) e carregue o crédito de US$ 5 usando o cartão de crédito/débito. Você só precisa de alguns centavos para esse projeto. Depois disso, vá para a seção Chaves de API para gerar a nova chave de API.

2. Configuração do ambiente

A configuração de uma variável de ambiente no DataLab é simples. Basta você acessar a guia "Environment" (Ambiente), selecionar a opção "Environment Variables" (Variáveis de ambiente) e adicionar uma nova variável chamada "MISTRAL_API_KEY" juntamente com sua chave de API. Depois de salvar as alterações, certifique-se de conectá-lo.

Configuração da variável de ambiente no Datalab

No DataLab, crie a nova célula Python e instale o pacote Python do Mistral AI. 

!pip install -U mistralai 

3. Geração de texto

Antes de escrever qualquer código, é essencial que você localize os nomes dos pontos de extremidade da chave da API do Mistral Medium 3 visitando a página Visão geral dos modelos. Com base na documentação, o ponto de extremidade parece ter o nome mistral-medium-latest.

Ler os documentos para obter o nome do modelo ne.

Fonte: Visão geral dos modelos | Mistral AI Large Language Models

Em seguida, criaremos um cliente Mistral AI usando a chave da API e geraremos uma resposta de streaming para uma consulta do usuário. 

import osfrom mistralai import Mistralapi_key = os.environ["MISTRAL_API_KEY"]model = "mistral-medium-latest"client = Mistral(api_key=api_key)stream_response = client.chat.stream(    model = model,    messages = [        {            "role": "user",            "content": "What is the best course to take from DataCamp?",        },    ])for chunk in stream_response:    print(chunk.data.choices[0].delta.content, end="" )

A resposta é altamente precisa e basicamente não nos custou nada. 

Saída gerada pelo Mistral AI

4. Compreensão da imagem

Para testar os recursos multimodais do modelo, faremos uma captura de tela da página inicial do blog da DataCamp e a forneceremos ao modelo junto com um prompt de usuário.

Captura de tela da página de blogs da DataCamp

Fonte: Blog | Artigos sobre ciência de dados | DataCamp

Como o modelo não pode acessar diretamente o arquivo de imagem, precisamos primeiro carregar a imagem e convertê-la em uma string codificada em Base64.

import base64import requestsdef encode_image(image_path):    """Encode the image to base64."""    try:        with open(image_path, "rb") as image_file:            return base64.b64encode(image_file.read()).decode('utf-8')    except FileNotFoundError:        print(f"Error: The file {image_path} was not found.")        return None    except Exception as e:  # Added general exception handling        print(f"Error: {e}")        return None# Path to your imageimage_path = "datacamp_fp.png"# Getting the base64 stringbase64_image = encode_image(image_path)

Agora, enviaremos a imagem codificada em Base64 juntamente com uma consulta do usuário ao cliente de conclusão de bate-papo do Mistral AI.

# Define the messages for the chatmessages = [    {        "role": "user",        "content": [            {                "type": "text",                "text": "Explain the image in a Donald Trump style."            },            {                "type": "image_url",                "image_url": f"data:image/png;base64,{base64_image}"             }        ]    }]stream_response = client.chat.stream(    model = model,    messages = messages)for chunk in stream_response:    print(chunk.data.choices[0].delta.content, end="" )

O modelo interpreta a imagem com sucesso e gera uma resposta no estilo de Donald Trump, demonstrando seus recursos de compreensão multimodal. 

Saída gerada pelo Mistral AI

Criando um aplicativo de agente com o Mistral Medium 3

Neste projeto, usaremos o Mistral Medium 3 com o LangGraph para criar um aplicativo agêntico. Esse aplicativo usará a API Tavily para pesquisa na Web e o Python REPL para executar o código com base nas solicitações do usuário.

Você é novo no LangGraph? Não tem problema! Siga nosso tutorial do LangGraph e aprenda tudo o que você precisa saber sobre a estrutura.

1. Configuração da API da Tavily

Antes de mergulhar na implementação, precisamos configurar o Tavily AI criando uma conta e gerando uma chave de API. O processo é simples, e você não precisa fornecer detalhes de pagamento ou um cartão de crédito.

Depois que você tiver a chave da API, salve-a como uma variável de ambiente chamada TAVILY_API_KEY, localmente ou na configuração do DataLab, conforme mostrado na seção anterior.

2. Instalando pacotes Python

Em seguida, instalaremos os pacotes Python necessários para que você crie ferramentas e agentes usando o ecossistema LangChain.

%%capture!pip install -U \    mistralai \    langchain langchain-mistralai \    langchain-experimental \    langgraph  \    tavily-python

3. Criação de cliente LLM

Criaremos o cliente ChatMistralAI de grandes modelos de linguagem (LLM) da LangChain especificando o nome do modelo, a temperatura e ativando as respostas de streaming .

from langchain_mistralai import ChatMistralAIllm = ChatMistralAI(    model="mistral-medium-latest",       temperature=0.2,                     streaming=True          )

4. Inicialização de ferramentas

Agora, vamos configurar as ferramentas para o agente. Em vez de criar ferramentas manualmente, podemos usar ferramentas pré-construídas como Tavily Search e Python REPL do ecossistema LangChain. 

from langchain_community.tools import TavilySearchResultsfrom langchain_experimental.tools.python.tool import PythonREPLToolsearch_tool = TavilySearchResults(max_results=5, include_answer=True)code_tool   = PythonREPLTool()tools = [search_tool, code_tool]

5. Configuração de um agente

Com o cliente LLM e as ferramentas prontas, agora podemos criar o agente React usando o LangGraph.

from langgraph.prebuilt import create_react_agentagent = create_react_agent(    model=llm,           tools=tools,      )    ```                 6. Extracting tool namesBefore executing the agent, we will define a Python function to extract the names of the tools used during the agent’s response generation. This function will help us identify which tools were invoked.```pythondef extract_tool_names(conversation: dict) -> list[str]:    """    Given a conversation dict with a 'messages' list (where each message    may be a dict or a Pydantic model), extract all unique tool names    used in any tool call.    """    tool_names = set()    for msg in conversation.get('messages', []):        # 1) Try direct attribute access (for Pydantic models)        calls = []        if hasattr(msg, 'tool_calls'):            calls = getattr(msg, 'tool_calls') or []        # 2) If that fails, the message might be a dict        elif isinstance(msg, dict):            calls = msg.get('tool_calls')            # also check nested in additional_kwargs            if not calls and isinstance(msg.get('additional_kwargs'), dict):                calls = msg['additional_kwargs'].get('tool_calls')        # 3) Finally, check additional_kwargs on objects        else:            ak = getattr(msg, 'additional_kwargs', None)            if isinstance(ak, dict):                calls = ak.get('tool_calls', [])        # Normalize to list        calls = calls or []        # Extract names        for call in calls:            # dict-style tool call            if isinstance(call, dict):                # top-level 'name'                if 'name' in call:                    tool_names.add(call['name'])                # nested under 'function'                elif 'function' in call and isinstance(call['function'], dict):                    fn = call['function']                    if 'name' in fn:                        tool_names.add(fn['name'])    return sorted(tool_names)

O LangGraph Studio é um ambiente de desenvolvimento visual para a estrutura do LangGraph; siga o guia LangGraph Studio Guide: Installation, Set Up, Use Cases para que você saiba mais sobre ele .

7. Testar o agente 

Vamos testar o agente fazendo a ele uma pergunta sobre notícias de última hora. 

question = "What are the top 5 breaking news stories?"def run_agent(question):    result = agent.invoke(        {            "messages": [                {"role": "user", "content": question}            ]        }    )    tool_name = extract_tool_names(result)    # The LLM’s final answer is always in the last message    raw_answer = result["messages"][-1].content    clean_text = "".join(part for part in raw_answer if isinstance(part, str))    return tool_name, clean_texttool_name, clean_text = run_agent(question)print("Tool used ⫸", tool_name, "\n")print(clean_text)

O agente usou a ferramenta Tavily Search para gerar uma resposta sobre notícias de última hora.

Saída gerada pelo aplicativo Agentic

Em seguida, vamos testar a ferramenta Python REPL pedindo ao agente que gere e execute código Python.

question = "Write a code to display the stars in a triangle. Please execute the code too."tool_name, clean_text = run_agent(question)print("Tool used ⫸", tool_name, "\n")print(clean_text)

O agente usou o Mistral Medium 3 para geração de código e o Python REPL para execução de código.

Saída gerada pelo aplicativo Agentic

Por fim, vamos testar uma consulta que exige que o agente use as duas ferramentas em sequência.

question = "Get the latest gold price data for the past 7 days and use it to generate a line plot"tool_name, clean_text = run_agent(question)print("Tool used ⫸", tool_name, "\n")print(clean_text)

O agente usará o Tavily Search para obter dados sobre o preço do ouro, o Mistral Medium 3 para gerar código para visualização de dados e o Python REPL para executar esse código. O resultado incluirá um gráfico altamente preciso, juntamente com um resumo das ferramentas usadas.

Tool used ⫸ ['Python_REPL', 'tavily_search_results_json'] The code generates a line plot showing the gold price per gram in USD over the last 7 days, with the x-axis representing dates and the y-axis representing the gold price. The plot includes markers for each data point, a title, labeled axes, a grid, and rotated x-axis labels for better readability.

Aplicativo Agentic Gerou Saída usando a ferramenta de pesquisa na Web e Python Repl

Se você encontrar algum problema ao executar o código, consulte a página Mistral Medium 3 - DataLab para obter orientação adicional.

Você pode usar o ecossistema Haystack para criar um aplicativo de agente que seja mais avançado e fácil de implementar. Siga os tutoriais para saber mais: Tutorial de IA do Haystack: Criando fluxos de trabalho agênticos.

Conclusão

Depois de experimentar a API de IA da Mistral e criar agentes para testar vários aplicativos, um dos aspectos mais notáveis é que não me custou um único dólar, mesmo depois de usar 161.075 tokens. O modelo é acessível, rápido, preciso e incrivelmente fácil de configurar. Ele serve como uma ótima alternativa para outras APIs caras, como o DeepSeek, e oferece funcionalidade comparável.

O cenário da IA está claramente se movendo em direção a modelos menores, mais rápidos, mais precisos e econômicos, o que é uma tendência promissora, especialmente para startups e pequenas e médias empresas (PMEs). Essas organizações geralmente dependem muito dos provedores de LLM e, à medida que esses modelos se tornarem mais acessíveis, elas se beneficiarão muito com margens de lucro mais altas.

Pegue o Desenvolvimento de modelos de linguagem grandes para que você crie seus próprios LLMs usando PyTorch e Hugging Face e as mais recentes técnicas de aprendizagem profunda e PNL.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Sou um cientista de dados certificado que gosta de criar aplicativos de aprendizado de máquina e escrever blogs sobre ciência de dados. No momento, estou me concentrando na criação e edição de conteúdo e no trabalho com modelos de linguagem de grande porte.

Temas

Principais cursos da DataCamp

Programa

Developing Large Language Models

16hrs hr
Learn to develop large language models (LLMs) with PyTorch and Hugging Face, using the latest deep learning and NLP techniques.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

O que é o Mistral Large 2? Como funciona, casos de uso e muito mais

O Mistral Large 2 é o modelo de idioma mais recente da Mistral AI, competindo com modelos como GPT-4o, Llama 3.1 e Claude 3 Opus.
Ryan Ong's photo

Ryan Ong

8 min

Tutorial

Criando agentes LangChain para automatizar tarefas em Python

Um tutorial abrangente sobre a criação de agentes LangChain com várias ferramentas para automatizar tarefas em Python usando LLMs e modelos de bate-papo usando OpenAI.
Bex Tuychiev's photo

Bex Tuychiev

14 min

Tutorial

Como criar aplicativos LLM com o tutorial LangChain

Explore o potencial inexplorado dos modelos de linguagem grandes com o LangChain, uma estrutura Python de código aberto para criar aplicativos avançados de IA.
Moez Ali's photo

Moez Ali

12 min

Tutorial

Tutorial da API de assistentes da OpenAI

Uma visão geral abrangente da API Assistants com nosso artigo, que oferece uma análise aprofundada de seus recursos, usos no setor, orientação de configuração e práticas recomendadas para maximizar seu potencial em vários aplicativos de negócios.
Zoumana Keita 's photo

Zoumana Keita

14 min

Tutorial

RAG With Llama 3.1 8B, Ollama e Langchain: Tutorial

Aprenda a criar um aplicativo RAG com o Llama 3.1 8B usando Ollama e Langchain, configurando o ambiente, processando documentos, criando embeddings e integrando um retriever.
Ryan Ong's photo

Ryan Ong

12 min

Tutorial

Como treinar um LLM com o PyTorch

Domine o processo de treinamento de grandes modelos de linguagem usando o PyTorch, desde a configuração inicial até a implementação final.
Zoumana Keita 's photo

Zoumana Keita

8 min

Ver maisVer mais