LangChain4j学习-1(环境搭建和第三方+本地调用模型)
1.使用的框架
LangChain4J 是一个基于 Java/Kotlin 的框架,旨在简化 大型语言模型(LLM)在 JVM 生态(如 Java/Kotlin 应用) 中的集成和应用开发。它移植了 Python 版 LangChain 的核心概念,并针对 Java 开发者进行了优化,使企业级应用能更方便地利用 LLM(如 OpenAI、Hugging Face 等)的能力(其中我学的是java,所以都是java的写法) LangChain4j的网址
2.搭建项目
JDK支持的最低版本为17
作为一个例子,让我们导入OpenAI依赖(我用的是deepseek模型,其中deepseek模型和OpenAl的实现方法完全一致,所以后面在创建实例的时候,把模型名直接替换成deepseek即可)
对于Maven pom.xml
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>1.1.0</version>
</dependency>
如果希望使用高级AI服务API,您还需要添加 以下依赖:(这两个依赖都导入吧,后面也会用的)
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.1.0</version>
</dependency>
还有一个依赖,也可以导入,关于日志记录的,不然可能不知道控制台怎么运行的
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.1.0</version>
</dependency>
去deekseek获取第三方授权(密钥)DeepSeek开发平台链接
就是去充点钱,然后去创建一个密钥,建议获取完之后是配置到环境变量中的用户变量中(安全起见,我是配置到用户变量中的)
3创建一个 OpenAiChatModel(deepseek可以复用) 的实例+对话
//从坏境变量中获取密钥
String apiKey = System.getenv("DEEPSEEK_API_KEY");
OpenAiChatModel model = OpenAiChatModel.builder()
.apiKey(apiKey)
.modelName("deepseek-chat") //这个需要参考keepseek的文档
//这里有两个模型,一个是deepseek-chat,一个是deepseek-reasoner
.baseUrl("https://api.deepseek.com") //调用接口的基地址
.logRequests(true) //日志记录的
.logResponses(true) //日志记录的 (如果没有导入日志依赖,可以不写)
.build();
String answer = model.chat("你是谁?");
System.out.println(answer);
模型 & 价格 | DeepSeek API Docs
https://api-docs.deepseek.com/zh-cn/quick_start/pricing
运行结果(我是有日志的,所以可以看到向deekseek发送的http请求的json)

以上这些是坏境搭建和使用第三方调用,现在告诉你们如何使用本地的模型,注意前面的依赖导入继续放在那里就可以了
4.本地调用
4.1搭建本地坏境
Ollama 是一个开源工具,用于在本地计算机上运行和管理大型语言模型(LLMs),如 Llama 3、Mistral、Gemma 等。它支持 macOS、Linux 和 Windows(WSL),并提供了简单的命令行界面(CLI)来下载、运行和交互式使用 LLM(我使用的就是ollama)
下载地址Ollama下载
可以去看看deepdeek的模型了deepseek-r1模型网址(我选择的是内存最小的那个,越厉害的内存越大,电脑扛不住,婉拒了哈)
它是默认装在C盘的,也可以改(但是我没改哈哈哈,我总感觉改了之后后面会有点麻烦)

安装完ollama之后就可以cmd了,我找的是内存最小的deepseek-r1:1.5b,之后在命令行输入ollama pull deepseek-r1:1.5b 就可以下载了,下载成功之后就可以在cmd中提问了,在cmd中试运行: ollama run deepseek-r1:1.5b "你是谁?"
4.2导入依赖
在pom.xml中导入依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-ollama</artifactId>
<version>1.1.0-rc1</version>
</dependency>
4.3创建实例+使用
//在ollama运行时,它会先加载整个模型到内存,然后再进行推理,所以启动时间较长
ChatModel model = OllamaChatModel.builder()
.baseUrl("http://localhost:11434")
.modelName("deepseek-r1:1.5b") //这个是你下载的模型的名字
.temperature(0.0) 0-1 随机性,数值越大,随机性越高,越有创新
.logRequests(true)
.logResponses(true)
.timeout(Duration.ofMinutes(8)) 设置超时时间
.build();
String answer = model.chat("你好,请给一份周日在长沙旅游一天的行程安排。");
就这样了,第一次写博客,好累哈哈哈哈(今天老师突然说要我们给当天学的东西做一个复习。我仔细一想,好吧,写吧,之后我自己也好找哈哈哈)
更多推荐



所有评论(0)