2.LangChain4j+springboot+大模型整合

代码调用大模型的方式有两种:

1.LangChain4j https://docs.langchain4j.dev/

2.SpringAI

LangChain4j

引入maven依赖

这个版本对应的jdk17+

langchain4j + ollama

java 复制代码
<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>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.5.0</version>
    <relativePath/>
  </parent>

  <groupId>org.example</groupId>
  <artifactId>langchain4j-demo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>langchain4j-demo</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>17</java.version>
  </properties>

  <dependencies>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>dev.langchain4j</groupId>
      <artifactId>langchain4j-ollama-spring-boot-starter</artifactId>
      <version>1.0.1-beta6</version>
    </dependency>

  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>
java 复制代码
langchain4j:
  ollama:
    chat-model:
      base-url: http://localhost:11434
      model-name: qwen3:0.6b
      log-requests: true
      log-responses: true
logging:
  level:
    dev.langchain4j: debug
java 复制代码
@RestController
@RequestMapping("/model")
public class ChatController {

    @Autowired
    private OllamaChatModel model;

    @GetMapping("/chat")
    public String chat(String message) {
        String result = model.chat(message);
        return result;
    }

}
java 复制代码
2025-11-25T22:43:31.563+08:00  INFO 21096 --- [nio-8080-exec-1] d.l.http.client.log.LoggingHttpClient    : HTTP request:
- method: POST
- url: http://localhost:11434/api/chat
- headers: [Content-Type: application/json]
- body: {
  "model" : "qwen3:0.6b",
  "messages" : [ {
    "role" : "user",
    "content" : "柳岩漂亮吗"
  } ],
  "options" : {
    "stop" : [ ]
  },
  "stream" : false,
  "tools" : [ ]
}

2025-11-25T22:43:43.751+08:00  INFO 21096 --- [nio-8080-exec-1] d.l.http.client.log.LoggingHttpClient    : HTTP response:
- status code: 200
- headers: [Content-Type: application/json; charset=utf-8], [Date: Tue, 25 Nov 2025 14:43:43 GMT], [Transfer-Encoding: chunked]
- body: {"model":"qwen3:0.6b","created_at":"2025-11-25T14:43:43.7442518Z","message":{"role":"assistant","content":"柳岩这个名字听起来很有诗意,可能寓意着柔美、坚韧或自然之美。如果名字本身有美感,可能让人觉得漂亮;但如果更多是自然元素的象征,也可以理解为美丽。如果你是在询问关于名字的个人感受或对柳树的欣赏,我可以进一步解释。需要我帮你分析名字的含义或自然景观的特点吗?","thinking":"好的,用户问"柳岩漂亮吗",首先需要明确"柳岩"指的是什么。可能有两种情况:一种是柳岩这个人的名字,另一种可能是柳岩这个事物,比如柳树或者柳树相关的产物。\n\n首先,如果用户指的是柳岩这个人的名字,那么需要考虑名字的含义。柳树在中文里通常象征着柔美、坚韧和生命力,所以"柳岩"这个名字听起来可能比较有诗意,但需要结合具体背景来判断是否漂亮。如果名字本身有美感,可能用户觉得漂亮,但也要注意是否有其他因素影响。\n\n另一方面,如果用户指的是柳树或其他柳树相关的产物,比如柳树的品种或产物,可能需要从自然景观的角度来回答。不过这种情况下,回答可能更偏向自然景观,而不是个人评价。\n\n另外,用户的问题可能隐含着对名字的欣赏,或者对柳树的赞美。这时候需要结合名字的寓意来回应,同时保持回答的开放性,让用户有进一步探讨的空间。\n\n还需要考虑用户可能的深层需求,比如他们是否在寻找关于名字的建议,或者对自然景观的兴趣。因此,回答时应保持友好,并提供相关信息,同时鼓励进一步交流。\n\n最后,确保回答简洁明了,结构清晰,信息准确。\n"},"done":true,"done_reason":"stop","total_duration":12110146100,"load_duration":432402900,"prompt_eval_count":14,"prompt_eval_duration":33194400,"eval_count":342,"eval_duration":11596608800}

langchain4j + OpenAI

相关推荐
原来是好奇心2 小时前
深入Spring Boot源码(六):Actuator端点与监控机制深度解析
java·开发语言·源码·springboot
汝生淮南吾在北5 小时前
SpringBoot3+Vue3小区物业报修系统+微信小程序
微信小程序·小程序·vue·毕业设计·springboot·课程设计·毕设
阿拉斯攀登8 小时前
Spring Boot ——入门与实战
spring boot·springboot
机器之心8 小时前
T5Gemma模型再更新,谷歌还在坚持编码器-解码器架构
人工智能·openai
机器之心8 小时前
OpenAI最强代码模型GPT-5.2-Codex上线
人工智能·openai
哪吒编程9 小时前
炸场!谷歌深夜发布Gemini 3 Flash:速度与智商的完美“怪胎”,GPT-5的噩梦来了?
openai·gemini
她说..9 小时前
Spring AOP场景4——事务管理(源码分析)
java·数据库·spring boot·后端·sql·spring·springboot
原来是好奇心10 小时前
深入Spring Boot源码(八):高级特性与扩展点深度解析
java·源码·springboot
HyperAI超神经11 小时前
GPT-5全面领先,OpenAI发布FrontierScience,「推理+科研」双轨检验大模型能力
人工智能·gpt·ai·openai·benchmark·基准测试·gpt5.2
她说..12 小时前
手机验证码功能实现(附带源码)
java·开发语言·spring boot·spring·java-ee·springboot