"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Explore la biblioteca Jlama con Spring Boot y Langchain

Explore la biblioteca Jlama con Spring Boot y Langchain

Publicado el 2025-04-17
Navegar:834

Explorando a Biblioteca JLama com Spring Boot e LangChain

Modelos de lenguaje grande (LLMS) están transformando varios campos, incluido el desarrollo de software. Su capacidad para comprender y generar texto (y otros tipos de datos) permite la sugerencia de código, la corrección e incluso la generación a partir de las indicaciones textuales. Este artículo explora la biblioteca jlama , una solución basada en Java para integrar LLM en el ecosistema Java. JLama ofrece flexibilidad, utilizable como interfaz de línea de comandos (CLI) o como dependencia en sus proyectos (por ejemplo, a través de pom.xml ). Demostraremos su funcionalidad integrándolo con una aplicación spring boot .

Prerrequisitos y resaltados

jlama requiere java 20 o superior debido a su uso de la API Java Vector. Los usuarios existentes langchain pueden integrarlo con jlama, aprovechando las herramientas de Langchain para la interacción LLM simplificada.

Este proyecto de ejemplo presenta dos puntos finales que interactúan con LLM a través de indicaciones:

  • a Jlama-solo Endpoint.
  • a Langchain y Jlama combinado de punto final.

Implementación del proyecto

Jlama Endpoint

Este punto final utiliza directamente JLAMA para generar respuestas basadas en las indicaciones del usuario.

@PostMapping("/jlama") // Endpoint for JLama chat functionality
public ResponseEntity chatJlama(@RequestBody ChatPromptRequest request) {
    PromptContext context;
    if (abstractModel.promptSupport().isPresent()) {
        context = abstractModel.promptSupport()
                .get()
                .builder()
                .addSystemMessage("You are a helpful chatbot providing concise answers.")
                .addUserMessage(request.prompt())
                .build();
    } else {
        context = PromptContext.of(request.prompt());
    }

    System.out.println("Prompt: "   context.getPrompt()   "\n");
    Generator.Response response = abstractModel
            .generate(UUID.randomUUID(), context, 0.0f, 256, (s, f) -> {});
    System.out.println(response.responseText);

    return ResponseEntity.ok(new ChatPromptResponse(response.responseText));
}

se define el modelo deseado. Si no está disponible localmente, se descarga automáticamente al directorio especificado. Se crea el contexto rápido y JLama genera la respuesta.

// Defining the model and directory for downloading (if needed) from Hugging Face
String model = "tjake/Llama-3.2-1B-Instruct-JQ4";
String workingDirectory = "./models";

// Downloading (if necessary) or retrieving the model locally
File localModelPath = new Downloader(workingDirectory, model).huggingFaceModel();

// Loading the model
ModelSupport.loadModel(localModelPath, DType.F32, DType.I8);

langchain y jlama endpoint

Este punto final usa langchain, reduciendo el código requerido para la interacción jlama.

@PostMapping("/langchain")
public ResponseEntity chatLangChain(@RequestBody ChatPromptRequest request) {
    var model = JlamaChatModel.builder()
            .modelName("meta-llama/Llama-3.2-1B")
            .temperature(0.7f)
            .build();

    var promptResponse = model.generate(
                    SystemMessage.from("You are a helpful chatbot providing the shortest possible response."),
                    UserMessage.from(request.prompt()))
            .content()
            .text();

    System.out.println("\n"   promptResponse   "\n");

    return ResponseEntity.ok(promptResponse);
}

langchain simplifica la implementación definiendo el modelo y los parámetros directamente dentro del constructor.

enlaces y referencias

Este proyecto fue inspirado en la presentación del profesor Isidro en Soujava. [Enlace a la presentación (reemplace con el enlace real si está disponible)]

documentación útil:

  • JLama en GitHub [enlace a JLama GitHub (reemplazar con enlace real)]
  • langchain [enlace a la documentación de langchain (reemplazar con enlace real)]

Conclusión

JLama y Langchain proporcionan una forma poderosa de integrar LLM en aplicaciones Java. Este artículo demostró cómo configurar y usar estas herramientas con el arranque de Spring para crear puntos finales de procesamiento de solicitud textual eficiente.

¿ha trabajado con LLM en proyectos Java? ¡Comparta sus experiencias e ideas en los comentarios!

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3