Maison >Java >javaDidacticiel >Explorer la bibliothèque JLAMA avec Spring Boot et 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:
Implémentation du projet
JLAMA Endpoint
<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
<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:
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!