Saltar al contenido principal

Tutorial de la API Codestral: Primeros pasos con la API de Mistral

Para conectarte a la API de Codestral, obtén tu clave de API de Mistral AI y envía solicitudes HTTP autorizadas al punto final adecuado (codestral.mistral.ai o api.mistral.ai).
Actualizado 30 jul 2024  · 9 min de lectura

Codestral es un modelo generativo de última generación optimizado para tareas de generación de código, incluidos el relleno en el medio (FIM) y la finalización de código. Formado en más de 80 lenguajes de programación, Codestral destaca tanto en lenguajes comunes como en los menos utilizados, lo que lo convierte en una herramienta versátil para los desarrolladores.

Aprovechando la API de Codestral, podemos automatizar e integrar la generación de código en nuestros flujos de trabajo. En este tutorial, te proporcionaremos una guía paso a paso para utilizar la API Codestral.

Si quieres tener una visión general del Codestral, consulta mi artículo sobre Qué es el Codestral de Mistral.

Puntos finales de la API Codestral

Codestral ofrece dos puntos finales de API principales para satisfacer las distintas necesidades de los usuarios:

  • codestral.mistral.ai: Ideal para usuarios individuales e integraciones a pequeña escala. Este punto final es actualmente gratuito hasta el 1 de agosto de 2024, después de lo cual se convertirá en un servicio de suscripción mensual.
  • api.mistral.ai: Diseñado para empresas y casos de uso de alta demanda, este punto final ofrece límites de velocidad más altos y un sólido soporte para aplicaciones a gran escala.

Mistral recomienda el punto final codestral.mistral.ai si pretendes utilizar Codestral como parte de un plugin IDE o si planeas construir herramientas que expongan puntos finales directamente a los usuarios, permitiéndoles traer sus propias claves API.

Mistral recomienda el punto final api.mistral.ai para todos los demás casos de uso debido a sus límites de velocidad más elevados y a su idoneidad para aplicaciones empresariales.

En este tutorial, utilizaremos el punto final codestral.mistral.ai para mostrar las capacidades de Codestral.

Primeros pasos con la API Codestral

Adquirir una clave API

Para utilizar la API Codestral, tienes que registrarte en una cuenta Mistral AI y obtener una clave API. Sigue estos pasos::

Paso 1: Inscríbete

Visita la página de registro de Mistral AI y crea una cuenta.

Paso 2: Obtener una clave API

Para api.mistral.ai, ve a la pestaña Claves API y haz clic en Crear nueva clave para generar tu clave API.

Para codestral.mistral.ai: Dirígete a la pestaña Codestral (la que tiene un distintivo "Nuevo" debajo de la pestaña Claves API ) y sigue las instrucciones de la página para obtener tu clave API. Ten en cuenta que actualmente hay lista de espera, y tendrás que facilitar un número de teléfono para inscribirte. Una vez aprobada, podrás acceder a tu clave API junto con dos puntos finales específicos de codestral.mistral.ai en la misma página, como se muestra a continuación:

Este artículo utiliza los puntos finales de codestral .mistral.ai para mostrar Codestral, por lo que todos los ejemplos proporcionados se adaptarán a ello.

Autenticación

Para autenticar nuestras peticiones a la API, crearemos dos funciones de Python utilizando la biblioteca requests. Estas funciones se encargarán de la comunicación con los dos puntos finales de la API de Codestral, incorporando la clave de API obtenida en las cabeceras de las peticiones para la autenticación. Aquí tienes las dos funciones:

  1. call_chat_endpoint - para llamar al Chat Endpoint https://codestral.mistral.ai/v1/chat/completions.
  2. call_fim_endpoint - para llamar al punto final de finalización https://codestral.mistral.ai/v1/fim/completions.

He aquí cómo hacerlo en 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}"

Comprender los puntos finales de la API de Codestral

Ahora que hemos obtenido nuestra clave API y configurado las funciones de autenticación, vamos a explorar cómo utilizar los dos puntos finales de la API de Codestral para la generación de código. Empezaremos con el punto final de relleno en el medio (FIM).

Punto final "Fill-in-the-middle

El punto final de relleno en el medio está diseñado para generar código que encaje entre un punto inicial dado (prompt) y un punto final opcional (suffix). Esto es especialmente útil para tareas que requieren que se genere un fragmento concreto de código dentro de una estructura de código mayor.

URL del punto final de la API: https://codestral.mistral.ai/v1/fim/completions

Parámetros:

  • prompt: El punto de partida del código.
  • suffix (opcional): El punto final del código.
  • stop (opcional): Una secuencia de fichas para detener la generación.

Ejemplo:

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)

Salida de la API Codestral.

Instruir punto final

El punto final de instrucción proporciona instrucciones al modelo para generar código. Es útil para tareas de generación de código más abiertas.

URL del punto final de la API: https://codestral.mistral.ai/v1/chat/completions

Parámetros:

  • prompt: La instrucción para la tarea de generación de código.
  • temperature (opcional): Controla la aleatoriedad del código generado.
  • max_tokens (opcional): Limita la longitud del código generado.

Ejemplo:

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 avanzado de la API

Límites de tarifa

Cada punto final tiene diferentes límites de velocidad:

Para garantizar un funcionamiento fluido y evitar superar las restricciones de uso, es crucial gestionar los límites de tarifa. Una estrategia eficaz es aplicar la lógica de reintento, que pausa y vuelve a enviar una solicitud tras un retraso especificado; podemos utilizar la biblioteca de tiempo de Python para introducir este retraso.

Alternativamente, puedes hacer un seguimiento de tu uso de la API para asegurarte de que te mantienes dentro de los límites permitidos. Puedes registrar el número de solicitudes realizadas y compararlas con los límites de velocidad.

Tratamiento de errores

Los códigos de error más comunes son:

  • 401 No autorizado: Clave API no válida o falta autenticación.
  • 429 Demasiadas peticiones: Límite de velocidad superado.
  • 500 Error interno del servidor: Problemas con el servidor por parte de la IA de Mistral.

Para un error 401 No autorizado, comprueba la clave API y asegúrate de que está correctamente incluida en las cabeceras de la solicitud.

Para un error 429 Demasiadas solicitudes, intenta implementar una lógica de reintento para esperar y reintentar la solicitud tras un retraso.

La lógica de reintento también es útil para gestionar el Error Interno de Servidor 500, para volver a intentar la petición más tarde.

Personalizar la salida

Para controlar el formato y el estilo de la salida, puedes ajustar parámetros como la indicación (haciéndola más específica o general) y la temperatura (controlando la creatividad del modelo).

Experimenta con estos parámetros para afinar el equilibrio entre creatividad y previsibilidad en el código generado.

Integración de la API Codestral

Codestral no sólo funciona como una API independiente: podemos integrarla en nuestros flujos de trabajo de desarrollo existentes. Exploremos dos formas principales de hacerlo: mediante integraciones con IDE y editores de texto o creando scripts personalizados.

IDEs y editores de texto

Codestral se integra perfectamente con los IDE y editores de texto más populares mediante plugins o extensiones. Por ejemplo, puedes configurar Codestral con Continue.dev para VS Code o JetBrains:

  1. Instala la extensión Continuar para VS Code o JetBrains.
  2. Selecciona Mistral API como proveedor y elige Codestral como modelo.
  3. Haz clic en Obtener clave API para obtener la clave API de Codestral.
  4. Haz clic en Añadir modelo, que rellenará automáticamente el config.json.

Guiones personalizados

Puedes crear scripts o aplicaciones personalizadas que aprovechen la API de Codestral para las tareas de generación de código. Aquí tienes un ejemplo sencillo de un script que genera funciones de prueba:

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)

imagen

Buenas prácticas para utilizar la API Codestral

Para sacar el máximo partido a Codestral, vamos a explorar algunas de las mejores prácticas para utilizar la API de forma eficaz y responsable.

Indicaciones claras y concisas

Al utilizar la API Codestral, la claridad es clave. Asegúrate de que tus indicaciones o instrucciones estén bien definidas y sean inequívocas para obtener la salida de código deseada. Puedes guiar al modelo hacia la generación de código que se ajuste a tus expectativas proporcionándole indicaciones específicas y contextuales.

Refinamiento iterativo

Optimizar tus interacciones con la API Codestral implica un proceso iterativo de perfeccionamiento. Experimenta con distintos parámetros, indicaciones y entradas para conseguir los resultados deseados. Analiza los resultados del código generado y utilízalos para realizar ajustes en tus indicaciones. Refinando continuamente tu enfoque, puedes mejorar la calidad y la relevancia del código generado a lo largo del tiempo.

Uso responsable

El uso responsable de la API Codestral es importante. Asegúrate de que tu uso de la API se ajusta a las normas éticas y legales. Evita generar código que pueda ser malicioso o dañino. Adhiérete a las mejores prácticas para una programación segura y ética, y respeta la privacidad y los derechos de los demás. Utilizar la API de forma responsable contribuye a un entorno de desarrollo positivo y sostenible.

Conclusión

Este tutorial proporciona una guía práctica sobre el uso de la API Codestral para la generación de código. Exploramos los distintos puntos finales, las mejores prácticas y las opciones de integración.

Te animo a que experimentes con la API y descubras cómo puede mejorar tu propio flujo de trabajo de desarrollo.

Para saber más sobre Mistral, consulta este tutorial sobre Mistral 7B y esta guía para trabajar con el modelo grande de Mistral.

Temas

Más información sobre IA y API

Certificación disponible

curso

Trabajar con la API de OpenAI

3 hr
17.6K
Comienza tu viaje desarrollando aplicaciones potenciadas por IA con la API OpenAI. Infórmate sobre la funcionalidad que sustenta aplicaciones populares de IA como ChatGPT.
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow