Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haz como yo hice

package com.musicfy.productos;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/productos")
public class CategorizacionProductosController {

private final ChatClient chatClient;

public CategorizacionProductosController(ChatClient.Builder chatClientBuilder) {
    this.chatClient = chatClientBuilder.build();
}

@GetMapping("/categorizar")
public String categorizarProducto(@RequestParam String descripcion) {

    String prompt = """
        Eres un asistente especializado en categorización de productos para e-commerce.

        Tu tarea es analizar la descripción del producto y devolver únicamente una categoría válida.

        Reglas:
        1. Responde solo con una de estas categorías:
           - Electrónica
           - Ropa
           - Hogar
           - Deportes
           - Belleza
           - Juguetes
           - Alimentos
           - Libros
           - Mascotas
           - Otros

        2. No expliques tu respuesta.
        3. No agregues texto adicional.
        4. Si la descripción es ambigua o no encaja claramente, responde: Otros.

        Ejemplos:
        Descripción: "Smartphone con pantalla OLED de 6.5 pulgadas y 256 GB de almacenamiento"
        Categoría: Electrónica

        Descripción: "Camiseta deportiva de algodón para hombre"
        Categoría: Ropa

        Descripción: "Silla ergonómica para oficina con soporte lumbar"
        Categoría: Hogar

        Ahora categoriza este producto:
        Descripción: "%s"
        Categoría:
        """.formatted(descripcion);

    return this.chatClient.prompt()
            .user(prompt)
            .call()
            .content();
}

}

@GetMapping("/categorizar-json")
public String categorizarProductoJson(@RequestParam String descripcion) {

String prompt = """
    Eres un asistente especializado en categorización de productos.

    Analiza la descripción y responde únicamente en formato JSON válido,
    sin comentarios ni texto adicional.

    Categorías permitidas:
    ["Electrónica", "Ropa", "Hogar", "Deportes", "Belleza", "Juguetes", "Alimentos", "Libros", "Mascotas", "Otros"]

    Reglas:
    - Usa solo una categoría.
    - Si no estás seguro, usa "Otros".

    Formato de salida:
    {"categoria":"<valor>"}

    Descripción del producto: "%s"
    """.formatted(descripcion);

return this.chatClient.prompt()
        .user(prompt)
        .call()
        .content();

}

1 respuesta

Hola David,

Gracias por compartir tu código con la comunidad. Es muy valioso ver cómo aplicas en la práctica los conceptos del curso.

Te recomiendo que puedas interactuar con el resto de nuestros compañeros por nuestro Discord.

En virtud de que en Discord el alcance es mayor, la interacción es inmediata y llega a más compañeros, y el foro solo quedaría para esclarecer cualquier duda que puedas tener sobre el contenido de los cursos.

De esa manera, si quieres seguir compartiendo tu código, proyectos o repositorios, sea por el Discord — con certeza por ahí llegará a más personas.

¡Gracias nuevamente por tu aporte!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!