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

相关推荐
哈里谢顿6 小时前
Ollama 部署 Qwen 详细指南(2026 最新版)
ollama
闻哥8 小时前
Kafka高吞吐量核心揭秘:四大技术架构深度解析
java·jvm·面试·kafka·rabbitmq·springboot
千寻技术帮8 小时前
10327_基于SpringBoot的视频剪辑咨询网站
mysql·源码·springboot·代码·视频咨询
callJJ9 小时前
Spring AI ImageModel 完全指南:用 OpenAI DALL-E 生成图像
大数据·人工智能·spring·openai·springai·图像模型
Dragon Wu1 天前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
hay_lee1 天前
Spring AI实现对话聊天-流式输出
java·人工智能·ollama·spring ai
tb_first2 天前
LangChain4j简单入门
java·spring boot·langchain4j
洋洋代码2 天前
本地vLLM部署大模型使用Langchain4J调用问题(非流式)
vllm·langchain4j·qwen3
闻哥2 天前
从测试坏味道到优雅实践:打造高质量单元测试
java·面试·单元测试·log4j·springboot
穆友航2 天前
配置 OpenClaw 使用 Ollama 本地模型
大模型·ollama·openclaw