大型语言模型(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生成了响应。
兰链和jlama端点
这个端点使用兰链,减少了Jlama交互所需的代码。
@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)); }
Langchain通过直接在构建器中定义模型和参数来简化实现。
// 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);链接和引用
这个项目的灵感来自Isidro教授在Soujava的演讲。 [链接到演示文稿(如果有的话,请替换为实际链接)]
>@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); }有用的文档:
GitHub上的Jlama [链接到Jlama GitHub(替换为实际链接)]
> > langchain [链接到Langchain文档(替换为实际链接)]>
结论 Jlama和Langchain提供了将LLM集成到Java应用程序中的有力方法。本文演示了如何与Spring Boot配置和使用这些工具来创建有效的文本提示处理端点。- 您是否在Java项目中与LLMS合作?在评论中分享您的经验和见解!
以上是使用Spring Boot和Langchain探索JLAMA图书馆的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

Atom编辑器mac版下载
最流行的的开源编辑器

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)