Maison >Java >javaDidacticiel >Explorer la bibliothèque JLAMA avec Spring Boot et Langchain

Explorer la bibliothèque JLAMA avec Spring Boot et Langchain

Linda Hamilton
Linda Hamiltonoriginal
2025-01-28 04:16:13354parcourir

Explorando a Biblioteca JLama com Spring Boot e LangChain

Les modèles de langage grand (LLMS) transforment divers domaines, y compris le développement de logiciels. Leur capacité à comprendre et à générer du texte (et d'autres types de données) permet la suggestion de code, la correction et même la génération à partir d'invites textuelles. Cet article explore la bibliothèque JLAMA , une solution basée sur Java pour intégrer les LLM dans l'écosystème Java. JLAMA offre une flexibilité, utilisable comme interface de ligne de commande (CLI) ou comme dépendance dans vos projets (par exemple, via pom.xml). Nous allons démontrer ses fonctionnalités en l'intégrant avec une application Spring Boot .

Prérequis et saillants

JLAMA nécessite java 20 ou supérieur en raison de son utilisation de l'API vectoriel java. Les utilisateurs de Langchain existants peuvent l'intégrer à JLAMA, en tirant parti des outils de Langchain pour une interaction LLM simplifiée.

Cet exemple de projet comprend deux points de terminaison interagissant avec les LLM via des invites:

    un point de terminaison JLAMA uniquement.
  • un point de terminaison combiné de Langchain et JLAMA.

Implémentation du projet

JLAMA Endpoint

Ce point de terminaison utilise directement JLAMA pour générer des réponses en fonction des invites utilisateur.

<code class="language-java">@PostMapping("/jlama") // Endpoint for JLama chat functionality
public ResponseEntity<ChatPromptResponse> 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));
}</code>
Le modèle souhaité est défini. S'il n'est pas disponible localement, il est automatiquement téléchargé dans le répertoire spécifié. Le contexte rapide est créé et JLAMA génère la réponse.

<code class="language-java">// 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);</code>
Langchain et JLAMA Endpoint

Ce point de terminaison utilise Langchain, réduisant le code requis pour l'interaction JLAMA.

<code class="language-java">@PostMapping("/langchain")
public ResponseEntity<Object> 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);
}</code>
Langchain simplifie l'implémentation en définissant le modèle et les paramètres directement dans le constructeur.

Liens et références

Ce projet a été inspiré par la présentation du professeur Isidro à Soujava. [Lien vers la présentation (remplacer par un lien réel si disponible)]

Documentation utile:

    JLAMA sur github [lien vers JLAMA GitHub (remplacer par un lien réel)]
  • Langchain [lien vers la documentation de Langchain (remplacer par un lien réel)]

Conclusion

JLAMA et LANGCHAIN ​​offrent un moyen puissant d'intégrer les LLM dans les applications Java. Cet article a démontré comment configurer et utiliser ces outils avec Spring Boot pour créer des points de terminaison de traitement d'invite textuel efficace.

Avez-vous travaillé avec LLMS dans des projets Java? Partagez vos expériences et vos idées dans les commentaires!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Maven Notes (1)Article suivant:Maven Notes (1)