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

相关推荐
狼爷1 小时前
AI时代顶级思维:你的提问方式,早已暴露你的认知层级
aigc·openai
cg332 小时前
cc-connect,十分钟帮你把 claude code 连接到微信,飞书,钉钉等等平台
后端·openai
树獭叔叔6 小时前
08-大模型后训练的指令微调SFT:LoRA让大模型微调成本降低99%
后端·aigc·openai
王小酱17 小时前
Claude Code 创始人 Boris 揭秘:团队 10 倍效率技巧
openai·ai编程·aiops
王小酱19 小时前
结合OpenSpec 与 Everything-Claude-Code (ECC) 的构建团队工作流程
openai·ai编程·aiops
王小酱1 天前
AI 编程实战指南:核心概念梳理与 Claude Code 高效技巧
aigc·openai·ai编程
曲幽1 天前
我用FastAPI接ollama大模型,差点被asyncio整崩溃(附对话窗口实战)
python·fastapi·web·async·httpx·asyncio·ollama
Mr_凌宇1 天前
个人向:本机MAC部署OpenClaw过程记录
openai·ai编程
吴佳浩1 天前
OpenClaw Windows 完整安装与本地模型配置教程(实战版)
llm·openai
用户47949283569152 天前
[开源分享] Agent 指挥 Agent,我做了一个让 Claude Code / Codex / Gemini/... 组成"军团"并行干活的工具
aigc·openai·claude