大型语言模型(LLMS)正在改变包括软件开发在内的各个领域。 他们理解和生成文本(和其他数据类型)的能力可以从文本提示中实现代码建议,更正甚至生成。本文探讨了基于Java的解决方案jlama 库,用于将LLM集成到Java生态系统中。 Jlama提供灵活性,可作为命令行接口(CLI)或项目的依赖性(例如,通过pom.xml
)。我们将通过将其集成到spring boot应用程序来演示其功能。
>先决条件和突出显示 由于使用Java Vector API,Jlama需要Jlama 20或更高的Java 20或更高。 现有的
langchain用户可以将其与Jlama集成,利用Langchain的工具进行简化的LLM交互。
这个示例项目具有两个通过提示与LLMS交互的两个端点:
定义了所需的模型。如果不是本地可用的,它将自动下载到指定的目录。 创建了提示上下文,JLAMA生成了响应。
这个端点使用兰链,减少了Jlama交互所需的代码。
<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>
Langchain通过直接在构建器中定义模型和参数来简化实现。
<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>链接和引用
这个项目的灵感来自Isidro教授在Soujava的演讲。 [链接到演示文稿(如果有的话,请替换为实际链接)]
><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>有用的文档:
GitHub上的Jlama [链接到Jlama GitHub(替换为实际链接)]
> > langchain [链接到Langchain文档(替换为实际链接)]>
结论 Jlama和Langchain提供了将LLM集成到Java应用程序中的有力方法。本文演示了如何与Spring Boot配置和使用这些工具来创建有效的文本提示处理端点。以上是使用Spring Boot和Langchain探索JLAMA图书馆的详细内容。更多信息请关注PHP中文网其他相关文章!