LangChain4j简介

LangChain4j

LangChain4j 是 LangChain 的 Java 版本,旨在为 Java 开发者提供构建大型语言模型(LLM)应用的框架。它简化了 LLM 与 Java 应用程序的集成,支持多种主流模型(如 OpenAI、阿里百炼、百度文心等),并提供丰富的工具链,如聊天记忆管理、提示模板、检索增强生成(RAG)、工具调用(Function Calling)和智能代理(Agent)等

OpenAI API 请求与响应参数详解

请求信息
在这里插入图片描述
响应信息
在这里插入图片描述

LangChain4j快速入门

获取ApiKey

阿里云百炼获取ApiKey:https://bailian.console.aliyun.com/?utm_content=se_1021829511&tab=model#/api-key

创建ApiKey
在这里插入图片描述

ApiKey设置环境变量

在这里插入图片描述

引入依赖

langchain4j-open-ai依赖

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

junit5依赖

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.10.1</version>
</dependency>

LangChain4j官方demo

使用官方提供的演示模型

/**
 * 官方提供的演示ai模型
 */
@Test
void official()
{
   
   
	OpenAiChatModel model = OpenAiChatModel.builder()
			.baseUrl("http://langchain4j.dev/demo/openai/v1")
			.apiKey("demo")
			.modelName("gpt-4o-mini")
			.build();

	String answer = model.chat("你是谁?");
	System.out.println(answer);
}

运行后结果
在这里插入图片描述

使用通义千问(qwen-plus)

/**
 * 接入通义千问(qwen-plus)
 */
 
@Test
void getApiKey()
{
   
   
	//获取环境变量配置的API-KEY
	String key = System.getenv("API-KEY");

	OpenAiChatModel model = OpenAiChatModel.builder()
			.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")	//基地址
			.apiKey(key)	//密钥
			.modelName("qwen-plus")	//使用模型
			.build();	//构建

	//调用chat方法进行交互
	String mes = model.chat("你是谁?");
	System.out.println(mes);
}

运行后如果获取不到环境变量,需要重启编译器(idea)
在这里插入图片描述

LangChain4j配置日志信息

日志依赖

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.5.18</version>
</dependency>

代码

设置logRequestslogResponses

		OpenAiChatModel model = OpenAiChatModel.builder()
				.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")	//基地址
				.apiKey(key)	//密钥
				.modelName("qwen-plus")	//使用模型
				.logRequests(true)	//请求
				.logResponses(true)	//响应
				.build();	//构建

结果
在这里插入图片描述

Spring整合LangChain4j

使用环境
SpringBoot:3.2.4

引入依赖

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
    <version>1.0.0-beta3</version>
</dependency>

yaml文件配置

server:
  port: 8100

#配置langchain4j
langchain4j:
  open-ai:
    chat-model:
      api-key: ${
   
   API-KEY} #使用环境变量配置
      base-url: https://dashscope.aliyuncs.com/compatible-mode/v1  #基地址
      model-name: qwen-plus #模型
      log-requests: true  #请求
      log-responses: true #响应

#配置日志级别      
logging:
  level:
    dev.langchain4j: debug

配置日志一定要开启log-requestslog-responses并且设置日志级别

Controller代码

import dev.langchain4j.model.chat.ChatLanguageModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ChatController {
   
   

	@Autowired
	ChatLanguageModel chatLanguageModel;

	@GetMapping("/chat")
	public String model(@RequestParam(value = "message", defaultValue = "Hello") String message) 
	{
   
   
		return chatLanguageModel.chat(message);
	}
}

运行

在这里插入图片描述

会话功能

AiService工具

引入依赖

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

声明接口

import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;

@AiService(
		wiringMode = AiServiceWiringMode.EXPLICIT,	//手动装配
		chatModel = "openAiChatModel"	//指定模型
)
public interface ConsultantService
{
   
   
	public String chat(String mes);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值