springboot 整合 langchain4j 实现简单的问答功能
目录
- 1. 工具
- 2. apikey
- 3. springboot项目创建
- 3.1 项目创建
- 3.2 依赖引入
- 3.3 配置文件
- 4. 代码编写
- 4.1 启动类
- 4.2 controller
- 4.3 测试
最近在学习langchain4j,本文将介绍如何使用langchain4j快速实现一个简单的问答功能,帮助大家快速入门。
1. 工具
- JDK 17
- Maven 3.9.9
- IntelliJ IDEA 2024.3.4 (Community Edition)
2. apikey
可以优先选择阿里云百炼申请一个apikey,免费额度足够测试使用。
3. springboot项目创建
3.1 项目创建
创建springboot项目,与其他springboot项目创建方式一样,这里不再详细介绍。
3.2 依赖引入
这里只提供了部分依赖示例,使用的版本是1.0.0-beta2,完整依赖可以参考langchain4j官方文档,本文最后给出了完整pom.XML供大家参考。实际上三方依赖会经常更新,随着版本变化需要引入的依赖总是会有些区别,还是建议多查阅官方文档。
<!-- springboot 父依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.4.4</version> </parent> <dependencies> <!-- springboot web 模块 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- langchain4j 集成 springboot相关的依赖 --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-编程客栈open-ai-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j</artifactId> </dependency> </dependencies>
3.3 配置文件
application.yml 配置文件内容如下:
langchain4j: open-ai: chat-model: log-requests: true log-responses: true temperature: 0.5 max-tokens: 4096 base-url: https://dashscope.aliyuncs.com/compatible-mode/v1 model-name: qwen-plus api-key: ${API_KEY} # 需要替换成自己申请的apikey # base-url: https://api.deepseek.com/v1 # model-name: deepseek-reasoner # api-key: ${API_KEY} logging.level.dev.langchain4j: DEBUG
4. 代码编写
4.1 启动类
先准备springwww.devze.comboot启动类
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
4.2 controller
编写一个接口,注入phpChatLanguageModel,写一个最简单的接口测试。
import dev.langchain4j.model.chat.ChatLanguageModel; import dev.langchain4j.service.AiServices; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class ChatController { @Resource ChatLanguageModel chatLanguageModel; @GetMapping("/chat") public String model(@RequestParam(value = "message") String message) { return chatLanguageModel.chat(message); } }
4.3 测试
启动项目,用postman调用接口进行简单测试:
参考
完整的pom.xml文件如下
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.chenf24k.tools</groupId> <artifactId>cf-langchain</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.4.4</version> </parent> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <langchain4j.version>1.0.0-beta2</langchain4j.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-bom</artifactId> <version>${langchain4j.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>dev.langchain4j</groupId> agIVvNgSKo <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j</artifactId> </dependency> <dependency> <groupId>org.mapdb</groupId> <artifactId>mapdb</artifactId> <version>3.0.9</version> <exclusions> <exclusion> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> </exclusion> </exclusions> </dependency> </depen编程客栈dencies> <build> <finalName>app</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
到此这篇关于springboot 整合 langchain4j 实现简单的问答功能的文章就介绍到这了,更多相关springboot langchain4j 问答内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论