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

org.springframework.ai spring-ai-starter-model-openai

package com.ejemplo.productos;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.openai.OpenAiChatOptions;
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 CategorizadorDeProductosController {

private final ChatClient chatClient;

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

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

    String system = """
            Eres un asistente especializado en categorización de productos.
            Debes responder solo con una categoría válida.
            """;

    String userPrompt = """
            Clasifica el siguiente producto en una sola categoría.

            Categorías permitidas:
            - Electrónica
            - Ropa
            - Hogar
            - Deportes
            - Belleza
            - Juguetes
            - Alimentos
            - Libros
            - Mascotas
            - Otros

            Reglas:
            - Responde solo con una categoría.
            - No expliques tu respuesta.
            - Si hay duda, responde: Otros.

            Producto: %s
            """.formatted(descripcion);

    return this.chatClient.prompt()
            .advisors(new SimpleLoggerAdvisor())
            .system(system)
            .user(userPrompt)
            .options(OpenAiChatOptions.builder()
                    .model("gpt-4o-mini")
                    .temperature(0.2)
                    .build())
            .call()
            .content();
}

}