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
Libérer: 2025-01-28 04:16:13
original
433 Les gens l'ont consulté

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.

@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));
}
Copier après la connexion
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.

// 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);
Copier après la connexion
Langchain et JLAMA Endpoint

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

@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);
}
Copier après la connexion
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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal