20250302 langchain+dashscope+deepseek实现简单的ai聊天案例
This commit is contained in:
commit
17ba408806
71
pom.xml
Normal file
71
pom.xml
Normal file
@ -0,0 +1,71 @@
|
||||
<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>com.example</groupId>
|
||||
<artifactId>langchain-deepseek-r1</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!-- Spring Boot Web -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<!-- LangChain Java -->
|
||||
<dependency>
|
||||
<groupId>dev.langchain4j</groupId>
|
||||
<artifactId>langchain4j-core</artifactId>
|
||||
<version>1.0.0-beta1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>dev.langchain4j</groupId>
|
||||
<artifactId>langchain4j-community-bom</artifactId>
|
||||
<version>1.0.0-beta1</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>dev.langchain4j</groupId>
|
||||
<artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
|
||||
<version>1.0.0-beta1</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-dependencies</artifactId>
|
||||
<version>3.2.2</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.11.0</version> <!-- 可以根据实际情况调整版本 -->
|
||||
<configuration>
|
||||
<source>17</source> <!-- 可以根据你的 Java 版本调整 -->
|
||||
<target>17</target> <!-- 可以根据你的 Java 版本调整 -->
|
||||
<compilerArgs>
|
||||
<arg>-parameters</arg>
|
||||
</compilerArgs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
11
src/main/java/com/ai/LiangAiApplication.java
Normal file
11
src/main/java/com/ai/LiangAiApplication.java
Normal file
@ -0,0 +1,11 @@
|
||||
package com.ai;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class LiangAiApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(LiangAiApplication.class, args);
|
||||
}
|
||||
}
|
25
src/main/java/com/ai/config/LanguageModelConfig.java
Normal file
25
src/main/java/com/ai/config/LanguageModelConfig.java
Normal file
@ -0,0 +1,25 @@
|
||||
package com.ai.config;
|
||||
|
||||
import dev.langchain4j.community.model.dashscope.QwenLanguageModel;
|
||||
import dev.langchain4j.model.language.LanguageModel;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class LanguageModelConfig {
|
||||
|
||||
@Value("${langchain4j.community.dashscope.api-key}")
|
||||
private String apiKey;
|
||||
|
||||
@Value("${langchain4j.community.dashscope.model-name}")
|
||||
private String modelName;
|
||||
|
||||
@Bean
|
||||
public LanguageModel languageModel() {
|
||||
return QwenLanguageModel.builder()
|
||||
.apiKey(apiKey)
|
||||
.modelName(modelName)
|
||||
.build();
|
||||
}
|
||||
}
|
27
src/main/java/com/ai/controller/LangChainController.java
Normal file
27
src/main/java/com/ai/controller/LangChainController.java
Normal file
@ -0,0 +1,27 @@
|
||||
package com.ai.controller;
|
||||
|
||||
import com.ai.service.LangChainService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/langchain")
|
||||
public class LangChainController {
|
||||
|
||||
@Autowired
|
||||
private LangChainService langChainService;
|
||||
|
||||
/**
|
||||
* 处理用户输入并调用 LangChainService 获取响应
|
||||
* @param input 用户输入的内容
|
||||
* @return 大语言模型生成的响应
|
||||
*/
|
||||
@GetMapping("/chat")
|
||||
public String chat(@RequestParam("input") String input) {
|
||||
System.out.println("start chat...");
|
||||
return langChainService.getResponse(input);
|
||||
}
|
||||
}
|
2
src/main/java/com/ai/http/chat.http
Normal file
2
src/main/java/com/ai/http/chat.http
Normal file
@ -0,0 +1,2 @@
|
||||
### 测试 LangChainController 的 chat 接口
|
||||
GET http://localhost:8080/langchain/chat?input=今天天气如何
|
21
src/main/java/com/ai/service/LangChainService.java
Normal file
21
src/main/java/com/ai/service/LangChainService.java
Normal file
@ -0,0 +1,21 @@
|
||||
package com.ai.service;
|
||||
|
||||
import dev.langchain4j.community.model.dashscope.QwenLanguageModel;
|
||||
import dev.langchain4j.data.message.UserMessage;
|
||||
import dev.langchain4j.model.chat.ChatLanguageModel;
|
||||
import dev.langchain4j.model.language.LanguageModel;
|
||||
import dev.langchain4j.model.output.Response;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class LangChainService {
|
||||
|
||||
@Autowired
|
||||
private LanguageModel model;
|
||||
|
||||
public String getResponse(String input) {
|
||||
Response<String> response = model.generate(input);
|
||||
return response.content();
|
||||
}
|
||||
}
|
4
src/main/resources/application.properties
Normal file
4
src/main/resources/application.properties
Normal file
@ -0,0 +1,4 @@
|
||||
server.port=8080
|
||||
|
||||
langchain4j.community.dashscope.api-key=sk-2f703a41fff0488e9b6888013d2ee58a
|
||||
langchain4j.community.dashscope.model-name=deepseek-r1
|
Loading…
Reference in New Issue
Block a user