Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

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();

}