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

相关推荐
win4r18 小时前
昨夜炸场!Claude Opus 4.5 发布,Chrome 插件“夺舍”浏览器,实测这7大功能令人头皮发麻
aigc·openai·claude
机器之心21 小时前
从推荐算法优化到AI4S、Pico和大模型,杨震原长文揭秘字节跳动的技术探索
人工智能·openai
机器之心21 小时前
哈工大深圳团队推出Uni-MoE-2.0-Omni:全模态理解、推理及生成新SOTA
人工智能·openai
带刺的坐椅1 天前
(让 Java IA & MCP 更简单 )Solon AI v3.7.2 发布
ai·chatgpt·openai·solon·mcp
爱吃的小肥羊1 天前
GPT-5.1-Codex-Max正式发布,超越Gemini 3,编程能力第一!(附使用方法)
后端·aigc·openai
一 乐1 天前
宠物管理|宠物共享|基于Java+vue的宠物共享管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·springboot·宠物
机器之心1 天前
智能体&编程新王Claude Opus 4.5震撼登场,定价大降2/3
人工智能·openai
新智元1 天前
谷歌「香蕉」手写满分卷,Karpathy 玩上瘾!ChatGPT 跪验沉默
人工智能·openai
用什么都重名1 天前
设置 Ollama 容器自动重启和模型自动加载的方法
人工智能·ollama·自加载