Pular para o conteúdo principal

Tutorial da API Codestral: Primeiros passos com a API da Mistral

Para se conectar à API Codestral, obtenha sua chave de API da Mistral AI e envie solicitações HTTP autorizadas para o endpoint apropriado (codestral.mistral.ai ou api.mistral.ai).
Atualizado 30 de jul. de 2024  · 9 min lido

O Codestral é um modelo gerador de última geração otimizado para tarefas de geração de código, inclusive preenchimento de meio (FIM) e conclusão de código. Com treinamento em mais de 80 linguagens de programação, o Codestral é excelente em linguagens comuns e menos usadas, o que o torna uma ferramenta versátil para desenvolvedores.

Ao aproveitar a API Codestral, podemos automatizar e integrar a geração de código em nossos fluxos de trabalho. Neste tutorial, forneceremos um guia passo a passo para você usar a API Codestral.

Se você quiser ter uma visão geral do Codestral, confira meu artigo sobre O que é o Codestral da Mistral.

Pontos de extremidade da API Codestral

A Codestral oferece dois pontos de extremidade principais da API para atender às diferentes necessidades dos usuários:

  • codestral.mistral.ai: Ideal para usuários individuais e integrações de pequena escala. Atualmente, esse endpoint é gratuito até 1º de agosto de 2024, após o qual se tornará um serviço de assinatura mensal.
  • api.mistral.ai: Projetado para casos de uso empresariais e de alta demanda, esse endpoint oferece limites de taxa mais altos e suporte robusto para aplicativos de grande escala.

A Mistral recomenda o endpoint codestral.mistral.ai se você pretende usar o Codestral como parte de um plug-in do IDE ou se planeja criar ferramentas que exponham endpoints diretamente aos usuários, permitindo que eles tragam suas próprias chaves de API.

A Mistral recomenda o endpoint api.mistral.ai para todos os outros casos de uso devido a seus limites de taxa mais altos e adequação a aplicativos comerciais.

Neste tutorial, usaremos o endpoint codestral.mistral.ai para mostrar os recursos do Codestral.

Primeiros passos com a API Codestral

Aquisição de uma chave de API

Para usar a API Codestral, você precisa se inscrever em uma conta Mistral AI e obter uma chave de API. Siga estas etapas::

Etapa 1: Registre-se

Visite a página de registro da Mistral AI e crie uma conta.

Etapa 2: Obter uma chave de API

Para api.mistral.ai, navegue até a guia Chaves de API e clique em Criar nova chave para gerar sua chave de API.

Para codestral.mistral.ai: Vá até a guia Codestral (aquela com um emblema "Novo" abaixo da guia Chaves de API ) e siga as instruções na página para obter sua chave de API. Observe que atualmente há uma lista de espera e você precisará fornecer um número de telefone para se inscrever. Depois de aprovado, você poderá acessar sua chave de API juntamente com dois endpoints específicos codestral.mistral.ai na mesma página, conforme mostrado abaixo:

Este artigo usa os pontos de extremidade codestral.mistral.ai para mostrar o Codestral, portanto, todos os exemplos fornecidos serão adaptados a ele.

Autenticação

Para autenticar nossas solicitações de API, criaremos duas funções Python usando a biblioteca requests. Essas funções cuidarão da comunicação com os dois endpoints de API da Codestral, incorporando a chave de API obtida nos cabeçalhos de solicitação para autenticação. Aqui estão as duas funções:

  1. call_chat_endpoint - para chamar o ponto de extremidade do Chat https://codestral.mistral.ai/v1/chat/completions.
  2. call_fim_endpoint - para chamar o ponto de extremidade de conclusão https://codestral.mistral.ai/v1/fim/completions.

Veja como você pode fazer isso em Python:

import requests
import json

api_key = 'INSERT YOUR API KEY HERE'

def call_chat_endpoint(data, api_key=api_key):
    url = "<https://codestral.mistral.ai/v1/chat/completions>"
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
        "Accept": "application/json"
    }

    response = requests.post(url, headers=headers, data=json.dumps(data))

    if response.status_code == 200:
        return response.json()
    else:
        return f"Error: {response.status_code}, {response.text}"

def call_fim_endpoint(data, api_key=api_key):
    url = "<https://codestral.mistral.ai/v1/fim/completions>"
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
        "Accept": "application/json"
    }

    response = requests.post(url, headers=headers, data=json.dumps(data))

    if response.status_code == 200:
        return response.json()
    else:
        return f"Error: {response.status_code}, {response.text}"

Entendendo os pontos de extremidade da API da Codestral

Agora que obtivemos nossa chave de API e configuramos as funções de autenticação, vamos explorar como usar os dois pontos de extremidade da API do Codestral para geração de código. Começaremos com o endpoint fill-in-the-middle (FIM).

Ponto de extremidade de preenchimento do meio

O endpoint fill-in-the-middle foi projetado para gerar código que se encaixa entre um determinado ponto inicial (prompt) e um ponto final opcional (sufixo). Isso é particularmente útil para tarefas que exigem a geração de um trecho específico de código em uma estrutura de código maior.

URL do ponto de extremidade da API: https://codestral.mistral.ai/v1/fim/completions

Parâmetros:

  • prompt: O ponto inicial do código.
  • suffix (opcional): O ponto final do código.
  • stop (opcional): Uma sequência de tokens para interromper a geração.

Exemplo:

prompt = "def fibonacci(n: int):"
suffix = "n = int(input('Enter a number: '))\\nprint(fibonacci(n))"
data = {
    "model": "codestral-latest",
    "prompt": prompt,
    "suffix": suffix,
    "temperature": 0
}

response = call_fim_endpoint(data)

Saída da API codificada.

Instruir o ponto final

O ponto de extremidade instruct fornece instruções ao modelo para gerar código. É útil para tarefas de geração de código mais abertas.

URL do ponto de extremidade da API: https://codestral.mistral.ai/v1/chat/completions

Parâmetros:

  • prompt: A instrução para a tarefa de geração de código.
  • temperature (opcional): Controla a aleatoriedade do código gerado.
  • max_tokens (opcional): Limita o comprimento do código gerado.

Exemplo:

prompt = "Please write me a function that adds up two numbers"
data = {
    "model": "codestral-latest",
    "messages": [
        {
            "role": "user",
            "content": prompt
        }
    ],
    "temperature": 0
}

response = call_chat_instruct_endpoint(data)

Uso avançado da API

Limites de taxas

Cada endpoint tem limites de taxa diferentes:

Para garantir uma operação tranquila e evitar exceder as restrições de uso, é fundamental gerenciar os limites de taxa. Uma estratégia eficaz é implementar a lógica de repetição, que pausa e reenvia uma solicitação após um atraso especificado - podemos usar a biblioteca de tempo do Python para introduzir esse atraso.

Como alternativa, você pode acompanhar o uso da API para garantir que permaneça dentro dos limites permitidos. Você pode registrar o número de solicitações feitas e compará-las com os limites de taxa.

Tratamento de erros

Os códigos de erro comuns incluem:

  • 401 Não autorizado: Chave de API inválida ou falta de autenticação.
  • 429 Demasiadas solicitações: Limite de taxa excedido.
  • 500 Erro interno do servidor: Problemas no servidor da Mistral AI.

No caso de um erro 401 Unauthorized, verifique a chave da API e certifique-se de que ela esteja incluída corretamente nos cabeçalhos da solicitação.

Para um erro 429 Too Many Requests, tente implementar a lógica de nova tentativa para aguardar e tentar novamente a solicitação após um atraso.

A lógica Retry também é útil para tratar o 500 Internal Server Error e tentar a solicitação novamente mais tarde.

Personalização da saída

Para controlar o formato e o estilo da saída, você pode ajustar parâmetros como prompt (tornando-o mais específico ou geral) e temperatura (controlando a criatividade do modelo).

Faça experiências com esses parâmetros para ajustar o equilíbrio entre criatividade e previsibilidade no código gerado.

Integração da API Codestral

A Codestral não funciona apenas como uma API autônoma - podemos integrá-la aos nossos fluxos de trabalho de desenvolvimento existentes. Vamos explorar duas maneiras principais de fazer isso: por meio de integrações de IDE e editor de texto ou criando scripts personalizados.

IDEs e editores de texto

O Codestral se integra perfeitamente a IDEs e editores de texto populares por meio de plug-ins ou extensões. Por exemplo, você pode configurar o Codestral com o Continue.dev para VS Code ou JetBrains:

  1. Instale a extensão Continue para o VS Code ou JetBrains.
  2. Selecione Mistral API como um provedor e escolha Codestral como o modelo.
  3. Clique em Get API Key para obter a chave de API do Codestral.
  4. Clique em Add model, que preencherá automaticamente o config.json.

Scripts personalizados

Você pode criar scripts ou aplicativos personalizados que aproveitem a API do Codestral para tarefas de geração de código. Aqui está um exemplo simples de um script que gera funções de teste:

prompt="""Sure, here is a simple function in Python that adds up two numbers:

def add_two_numbers(num1, num2):
    return num1 + num2

You can use this function like this:
result = add_two_numbers(5, 3)
print(result)  # Outputs: 8

This function takes two arguments, num1 and num2, and returns their sum.\ndef test_add_two_numbers():""" 

suffix="" 

data = { "model": "codestral-latest", "prompt": prompt, "suffix": suffix, "temperature": 0 }

response = call_fim_endpoint(data)

imagem

Práticas recomendadas para usar a API Codestral

Para que você possa aproveitar ao máximo o Codestral, vamos explorar algumas práticas recomendadas para usar a API de forma eficaz e responsável.

Solicitações claras e concisas

Ao usar a API Codestral, a clareza é fundamental. Certifique-se de que seus prompts ou instruções sejam bem definidos e não ambíguos para que você obtenha a saída de código desejada. Você pode orientar o modelo para a geração de código que se alinhe às suas expectativas, fornecendo prompts específicos e contextuais.

Refinamento iterativo

A otimização de suas interações com a API Codestral envolve um processo iterativo de refinamento. Faça experiências com diferentes parâmetros, avisos e entradas para obter os resultados desejados. Analise os resultados do código gerado e use-os para informar os ajustes em seus prompts. Ao refinar continuamente sua abordagem, você pode melhorar a qualidade e a relevância do código gerado ao longo do tempo.

Uso responsável

O uso responsável da API Codestral é importante. Certifique-se de que o uso que você faz da API esteja alinhado com os padrões éticos e legais. Evite gerar códigos que possam ser maliciosos ou prejudiciais. Aderir às práticas recomendadas de programação segura e ética e respeitar a privacidade e os direitos dos outros. O uso responsável da API contribui para um ambiente de desenvolvimento positivo e sustentável.

Conclusão

Este tutorial fornece um guia prático para você usar a API Codestral para geração de código. Exploramos os diferentes pontos de extremidade, as práticas recomendadas e as opções de integração.

Incentivo você a fazer experiências com a API e descobrir como ela pode aprimorar seu próprio fluxo de trabalho de desenvolvimento.

Para saber mais sobre o Mistral, confira este tutorial do Mistral 7B e este guia para trabalhar com o modelo grande do Mistral.

Tópicos

Saiba mais sobre IA e APIs!

Curso

Trabalhar com a API da OpenAI

3 h
80.4K
Comece a criar aplicativos com IA usando a API da OpenAI e conheça a tecnologia por trás de aplicativos de IA populares, como o ChatGPT.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

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

Tutorial

Primeiros passos com o Claude 3 e a API do Claude 3

Saiba mais sobre os modelos Claude 3, benchmarks de desempenho detalhados e como acessá-los. Além disso, descubra a nova API Python do Claude 3 para geração de texto, acesso a recursos de visão e streaming.
Abid Ali Awan's photo

Abid Ali Awan

Tutorial

Guia para iniciantes no uso da API do ChatGPT

Este guia o orienta sobre os conceitos básicos da API ChatGPT, demonstrando seu potencial no processamento de linguagem natural e na comunicação orientada por IA.
Moez Ali's photo

Moez Ali

Tutorial

Como usar a API de conversão de texto em fala da OpenAI

A API TTS da OpenAI é um ponto de extremidade que permite que os usuários interajam com seu modelo de IA TTS que converte texto em linguagem falada com som natural.
Kurtis Pykes 's photo

Kurtis Pykes

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

Ver maisVer mais