LangChain4j入门使用

1. 概述

1.1. 简述

LangChain4J ​ 是 Java 生态中对接 ​LangChain​ 核心能力的现代化开发库,专注于简化 Java 应用与大语言模型(LLM)及智能代理(Agents)、工具(Tools)、文档检索(RAG)等功能的集成。基础知识这里不赘述,可以网上自行查看。

1.2. 本节目标

初步使用LangChain4j调用接口,能与模型进行简单的对话。官方文档中LangChain4j的接口有low-levelhigh-level 之分,其实high-level 就是基于low-level上做了一些封装,本节按照low-level的接口先将代码跑通。

2. 环境准备

2.1. 版本要求

  • Java:JDK17或更高的版本
  • 包管理工具:Maven
  • 阿里云百炼上申请模型的试用,获取apiKey,也可以试用本地部署的ollama进行调用,快速了解的话建议还是使用线上的模型

2.2. Maven依赖

如果需要开日志,还需要引入日志模块,下面提供的是基础模块,根据需要引入一个就好了。

xml 复制代码
<!--使用OpenAi的这个包,这个包只要模型提供跟OpenAi类似的接口,就可以调用,并非针对OpenAi的模型-->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai</artifactId>
    <version>1.6.0</version>
</dependency>

<!-- 对接 Ollama 的模块(本地模型) -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-ollama</artifactId>
    <version>1.6.0</version>
</dependency>

3. 快速入门

3.1. 调用阿里千问的大语言模型

java 复制代码
package com.ketech;

import dev.langchain4j.model.openai.OpenAiChatModel;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        # 阿里百炼平台申请的apiKey,请填入自己申请的
        String apiKey = "sk-XXXXXXXXXXXX";
        OpenAiChatModel chatModel = OpenAiChatModel.builder()
                                            .baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
                                            .apiKey(apiKey)
                                            .modelName("qwen-max")
                                            .logRequests(true)
                                            .logResponses(true)
                                            .build();
        String result = chatModel.chat("你好,你是谁?");
        System.out.println( result );
    }
}

说明:

  • apiKey:百炼平台申请的key
  • modelName:百炼平台上的模型名称,百炼上提供了很多的模型供调用,根据自己的需要选择一个
  • basuUrl:基础的Url,可以点进需要调用的模型,说明中提供了baseUrl的地址
  • logRequest:开启请求日志,开启后控制台可打印出具体信息,方便查看
  • logResponse:开启访问日志,开启后控制台可打印出具体信息,方便查看
  • 还有其他很多的配置项,本节只做简单的入门,后续有时间可继续探讨

阿里千问查看baseUrl示例

控制台打印的结果信息

3.2. 调用本地的ollama部署的大语言模型

没有实际测试过,后面测一下,注意引入的依赖。

java 复制代码
package com.ketech;

import dev.langchain4j.model.openai.OpenAiChatModel;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        OpenAiChatModel chatModel = OpenAiChatModel.builder()
                                            .baseUrl("http://localhost:11434")
                                            .modelName("qwen-max")
                                            .logRequests(true)
                                            .logResponses(true)
                                            .build();
        String result = chatModel.chat("你好,你是谁?");
        System.out.println( result );
    }
}
相关推荐
JavaGuide1 小时前
一个 SKILL.md 拿下 2.3 万 Star:让 Codex/Claude Code 少说废话、先给答案
前端·后端
陈随易8 小时前
pm2 替代品,nodejs&bun 线上部署必备工具
前端·后端·程序员
丘山一郎9 小时前
Spring 中的IOC控制反转 和DI依赖注入
java·后端·spring
码视野9 小时前
基于 Spring Boot + Vue3 的【大学英语四六级 (CET-4/6) 作文智能评分与句式润色系统】设计与实现(含PRD/三端高保真源码/大屏)
java·前端·人工智能·spring boot·后端·vue3
MetaLite9 小时前
Spring-AOP自调用为什么失效-AopContext真能解决吗
java·后端·spring
MC皮蛋侠客10 小时前
Tauri 2.x 系列(五):调用系统 API——官方插件、Rust crate 与原生能力
开发语言·后端·rust
Profile排查笔记12 小时前
指纹浏览器怎么设置 IP?代理配置、检测与排错流程
前端·人工智能·后端·自动化
IT_陈寒13 小时前
SpringBoot自动配置失效?你可能漏了这个小开关
前端·人工智能·后端
摇滚侠13 小时前
《SpringBoot 3:入门与应用实战》第 9 章 使用 WebMvc 开发应用 阅读笔记 1
spring boot·笔记·后端
用户83562907805113 小时前
使用 Python 在 Excel 中插入 OLE 对象
后端·python