# Ejemplos de Uso de la API
## Ejemplo 1: Título y Descripción para Amazon
### Solicitud
```python
import requests
import json
url = "http://localhost:8000/descriptions/generate"
headers = {"Content-Type": "application/json"}
data = {
"SKU": "SSRSB041K",
"MK": [
{
"id": "AMAZON",
"Textos": [
{
"Campo": "title",
"Prompt": "Generate a concise title under 200 characters with key features.",
"max_tokens": 100,
"temperature": 0.7
},
{
"Campo": "long_description",
"Prompt": "Create a detailed description highlighting technical features and benefits.",
"max_tokens": 500
}
]
}
]
}
response = requests.post(url, headers=headers, json=data)
print(json.dumps(response.json(), indent=2))
Respuesta:
{
"SKU": "SSRSB041K",
"MK": [
{
"id": "AMAZON",
"Textos": [
{
"Campo": "title",
"Texto_IA": "Placa de Inducción Svan 60cm 7400W Negro",
"tokens_used": 48
},
{
"Campo": "long_description",
"Texto_IA": "Placa de inducción Svan de 60cm con 7400W de potencia total. Diseño elegante en negro con bordes biselados, 4 zonas de cocción y control táctil. Ideal para cocinas modernas, ofrece eficiencia energética y seguridad con bloqueo de control.",
"tokens_used": 150
}
]
}
],
"status": "success"
}
Ejemplo 2: Procesamiento Masivo con PIM:
import base64
import requests
url = "http://localhost:8000/pim/process-base64-direct"
headers = {"Content-Type": "application/json"}
data = [
{
"SKU": "TV-QLED-55",
"idProducto": 1234,
"idTextoGenerado": 0,
"email": "user@example.com",
"marketplacePromptId": 20,
"MK": [
{
"id": "MEDIA_MARKT",
"Textos": [
{
"Campo": "technical_specs",
"Prompt": "Generate detailed technical specs for a QLED TV.",
"max_tokens": 200,
"temperature": 0.5
}
]
}
]
}
]
encoded_data = base64.b64encode(json.dumps(data).encode()).decode()
payload = {"data": encoded_data}
response = requests.post(url, headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
Respuesta:
{
"status": "success",
"processed_products": [
{
"SKU": "TV-QLED-55",
"idTextoGenerado": 0,
"status": "success",
"message": "Textos enviados con éxito"
}
],
"processing_time": 2.34,
"total_processed": 1
}
Buenas Prácticas:
* Prompts Efectivos
* Incluye detalles específicos del producto.
* Define claramente el tono (ej. profesional, comercial).
* Especifica límites de longitud si es necesario.
* Manejo de Errores
* Implementa reintentos para errores 500.
* Valida las respuestas antes de usarlas.
* Registra errores para diagnóstico.
* Optimización
* Usa max_tokens ajustado al campo.
* Agrupa solicitudes masivas en /pim/process-base64-direct.
* Monitorea costes con /monitoring/cost-analysis.
Scripts de Utilidad
Validador de Respuestas:
def validate_response(response):
if response.status_code != 200:
print(f"Error: {response.status_code}")
print(response.json())
return False
data = response.json()
if data["status"] != "success":
print(f"Error: {data.get('error')}")
return False
return True
Procesamiento Asíncrono:
import asyncio
import aiohttp
async def generate_async(data):
async with aiohttp.ClientSession() as session:
async with session.post(url, json=data, headers=headers) as resp:
return await resp.json()
async def batch_process(products):
tasks = [generate_async(product) for product in products]
return await asyncio.gather(*tasks)