Interactúa con el modelo Llama LLM
Este Notebook enviará una solicitud a la API del modelo Llama LLM y recuperará la respuesta.
En esta lección, aprenderás a interactuar con el modelo de lenguaje grande (LLM) Llama a través de su API. Construirás una interfaz de usuario simple para enviar tus prompts y recibir las respuestas del modelo. Esta habilidad es fundamental para integrar capacidades de IA en tus propias aplicaciones, permitiéndote crear chatbots, asistentes virtuales o herramientas de generación de contenido.
Primero, importaremos os, gradio y LlamaAPIClient.
Este bloque de código importa las bibliotecas necesarias. os se utiliza para interactuar con el sistema operativo, como acceder a variables de entorno. gradio nos permitirá crear una interfaz de usuario web interactiva de forma sencilla. LlamaAPIClient es el cliente oficial para comunicarnos con la API de Llama.
import os
import gradio as gr
from llama_api_client import LlamaAPIClient
Usa el siguiente enlace para obtener tu clave de API de Llama. Luego, configura tu entorno estableciendo la variable "LLAMA_API_KEY" con la clave obtenida usando uno de los siguientes pasos.
Para poder usar la API de Llama, necesitas una clave de API. Este paso es crucial: debes obtener tu clave desde el portal de desarrolladores de Llama y luego configurarla como una variable de entorno llamada LLAMA_API_KEY. Esto asegura que tu clave no quede expuesta directamente en tu código y que el cliente de la API pueda autenticarse correctamente.
# either run the following command in your cli terminal
# export LLAMA_API_KEY='Llama API key'
# Or
# Directly set your LLAMA_API_KEY environment variable here
# os.environ['LLAMA_API_KEY'] = 'Llama API key'
Ejecuta la función "infer" para crear una interfaz de usuario interactiva donde puedes ingresar tu prompt de entrada para el LLM en el campo designado "user_input" y ver la respuesta generada en el campo adyacente "output".
Aquí definimos la función infer, que será el corazón de nuestra interacción. Esta función toma el user_input (tu prompt) y lo envía al modelo Llama a través de LlamaAPIClient. Luego, procesa la respuesta y extrae el texto generado por el modelo.
# You can switch between the following models:
# Llama-3.3-70B-Instruct
# Llama-4-Maverick-17B-128E-Instruct-FP8
def infer(user_input:str, model_id:str):
response = client.chat.completions.create(
model=model_id,
messages=[
{"role": "user", "content": user_input},
])
return response.completion_message.content.text
demo = gr.Interface(fn=infer,
inputs=[gr.Textbox(),gr.Text("Llama-4-Maverick-17B-128E-Instruct-FP8")],
outputs=gr.Textbox(), #<-- Gradio TextBox component as an output component
)
demo.launch()
Este código inicializa el cliente de la API de Llama. Es importante que la variable de entorno LLAMA_API_KEY ya esté configurada en este punto, de lo contrario, el cliente no podrá autenticarse.
* Running on local URL: http://127.0.0.1:7890
* To create a public link, set `share=True` in `launch()`.
Este bloque de código utiliza Gradio para crear la interfaz de usuario. gr.Interface toma nuestra función infer, define los tipos de entrada (un cuadro de texto para el prompt) y salida (otro cuadro de texto para la respuesta), y luego lanza la interfaz. Una vez ejecutado, verás una URL local o pública donde puedes acceder a tu UI.
<IPython.core.display.HTML object>
El modelo puede ser utilizado en una variedad de casos de uso, incluyendo la respuesta a preguntas basadas en hechos, para demostrar su efectividad y versatilidad en escenarios del mundo real.
A continuación, probaremos el modelo con algunos ejemplos concretos para ver cómo responde a diferentes tipos de prompts. Esto te ayudará a entender las capacidades del modelo y cómo formular tus propias preguntas de manera efectiva.
Este prompt le pide al modelo que identifique la capital de Francia. Es un ejemplo clásico de una pregunta basada en hechos que los LLM suelen manejar bien.
# You can switch between the following models:
# Llama-3.3-70B-Instruct
# Llama-4-Maverick-17B-128E-Instruct-FP8
def infer(user_input:str, model_id:str):
response = client.chat.completions.create(
model=model_id,
messages=[
{"role": "user", "content": user_input},
])
return response.completion_message.content.text
demo = gr.Interface(fn=infer,
inputs=[gr.Textbox(),gr.Text("Llama-4-Maverick-17B-128E-Instruct-FP8")],
outputs=gr.Textbox(), #<-- Gradio TextBox component as an output component
)
demo.launch()
Aquí, llamamos directamente a la función infer con el prompt definido anteriormente. Esto simula la entrada del usuario en la interfaz de Gradio y nos permite ver la respuesta programáticamente.
* Running on local URL: http://127.0.0.1:7889
* To create a public link, set `share=True` in `launch()`.
Este código imprime la respuesta obtenida del modelo. Deberías ver "París" o una frase similar que contenga la respuesta correcta.
<IPython.core.display.HTML object>
Este segundo ejemplo es un prompt más complejo que requiere que el modelo genere una pequeña historia o descripción. Demuestra la capacidad del modelo para generar texto creativo y coherente.
# You can switch between the following models:
# Llama-3.3-70B-Instruct
# Llama-4-Maverick-17B-128E-Instruct-FP8
def infer(user_input:str, model_id:str):
response = client.chat.completions.create(
model=model_id,
messages=[
{"role": "user", "content": user_input},
])
return response.completion_message.content.text
demo = gr.Interface(fn=infer,
inputs=[gr.Textbox(),gr.Text("Llama-4-Maverick-17B-128E-Instruct-FP8")],
outputs=gr.Textbox(), #<-- Gradio TextBox component as an output component
)
demo.launch()
Al igual que antes, llamamos a la función infer con el nuevo prompt para obtener la respuesta del modelo.
* Running on local URL: http://127.0.0.1:7891
* To create a public link, set `share=True` in `launch()`.
Finalmente, imprimimos la respuesta generada por el modelo para este prompt creativo. Observa cómo el modelo construye una narrativa basada en la entrada.
<IPython.core.display.HTML object>
Resumen
- Importaste las bibliotecas esenciales (
os,gradio,LlamaAPIClient) para interactuar con la API de Llama. - Configuraste tu clave de API de Llama como una variable de entorno para una autenticación segura.
- Creaste una función
inferpara enviar prompts al modelo Llama y procesar sus respuestas. - Desarrollaste una interfaz de usuario interactiva con Gradio para facilitar la entrada de prompts y la visualización de resultados.
- Probaste el modelo con ejemplos de preguntas basadas en hechos y prompts creativos, demostrando su versatilidad.