当前位置: 首页 > news >正文

【AI】模型接入初始化(Lanchain4j)

【AI】模型接入初始化(Lanchain4j)

文章目录

  • 【AI】模型接入初始化(Lanchain4j)
    • 引子
    • 1. Lanchain4j
      • 1.1 简介
      • 1.2 使用入门
        • 1.2.1 构建Maven项目
        • 1.2.2 接入大模型
        • 1.2.3 测试代码
    • 2. 整合SpringBoot
      • 2.1 引入依赖
      • 2.2 配置模型参数(application.properties)
      • 2.3 测试代码
      • 2.4 接口实现

引子

从2022年11月30日OpenAI发布了ChatGPT(GPT-3.5)到现在已经过去快三年了,尤其是deepseek等国产模型的出现ai的使用其实已经融入到了我们的日常开发生活中了。对于模型的开发研究离我们也许有些远,但通过代码去将它应用到我们的项目中其实现在已经能够实现了,甚至可以通过接入其它的大模型来搭建自己的ai智能助手,接下来我将引入Java应用程序能够使用的技术-Lanchain4j

1. Lanchain4j

1.1 简介

Lanchian4j的目标是简化大语言模型(LLM - Large Language Model)集成到Java应用程序中的过程

1.2 使用入门

1.2.1 构建Maven项目

在这里插入图片描述

1.2.2 接入大模型

通过 LangChain4j 框架将一个大语言模型(如 GPT-4o-mini)接入 Spring Boot 项目,需要引入依赖如下:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency><!--基于open-ai的langchain4j接口:ChatGPT 、deepseek都是open-ai标准下的大模型 -->
<dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId>
</dependency><!--注意这里是dependencyManagement -->
<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><!--引入langchain4j依赖管理清单 --><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-bom</artifactId><version>${langchain4j.version}</version><type>pom</type><scope>import</scope></dependency>
</dependencyManagement>
1.2.3 测试代码

接入任何一个大模型都需要先去申请api-key,这里我们使用Lanchain4j提供的演示密钥,这个密钥是免费的,有使用的配置限额,同时仅限于gpt-4o-mini模型

@SpringBootTest
public class LLMTest {/*** gpt-4o-mini语言模型接入测试*/@Testpublic void testGPTDemo() {//初始化模型OpenAiChatModel model = OpenAiChatModel.builder()// LangChain4j提供的代理服务器,该代理服务器会将演示密钥替换成真实密钥, 再将请求转发给OpenAI API.baseUrl("http://langchain4j.dev/demo/openai/v1")// 设置模型api地址(如果apiKey="demo",则可省略baseUrl的配置).apiKey("demo") //设置模型apiKey.modelName("gpt-4o-mini") //设置模型名称.build();// 向大模型提问String answer = model.chat("你是谁");System.out.println(answer);}
}

执行结果:

在这里插入图片描述

2. 整合SpringBoot

将已接入的大语言模型(如 GPT-4o-mini via LangChain4j)与 Spring Boot 完整整合,构建一个可通过 REST 接口访问的大模型应用

2.1 引入依赖

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

2.2 配置模型参数(application.properties)

langchain4j.open-ai.chat-model.base-url=http://langchain4j.dev/demo/openai/v1
langchain4j.open-ai.chat-model.api-key=demo
langchain4j.open-ai.chat-model.model-name=gpt-4o-mini
langchain4j.open-ai.chat-model.log-requests=true
langchain4j.open-ai.chat-model.log-responses=truelogging.level.root=debug

2.3 测试代码

/***  整合SpringBoot */
@Autowired
private  OpenAiChatModel  openAiChatMode
@Test
public void testSpringBoot()  {//向模型提问String answer = openAiChatModel.chat("你是谁") ;//输出结果System.out.println (answer) ;
}

执行结果:

在这里插入图片描述

2.4 接口实现

在这里插入图片描述

自行选择接口测试工具访问接口,执行结果:

在这里插入图片描述

接口写好后就可以自己尝试搭建一个前端界面来实现对话了:
在这里插入图片描述

其实完成上面的内容后,我们已经向搭建自己的ai助手迈出了关键性的一步了!!在接下来的专题内容中我会引入其它模型的应用,实现文生图、深度思考、记忆对话、文档理解等内容,敬请期待!!💕( •̀ ω •́ )✧( •̀ ω •́ )✧✨

http://www.dtcms.com/a/289001.html

相关文章:

  • Effective Python 条款13:通过带星号的unpacking操作来捕获多个元素,不要用切片
  • 第十八节:第六部分:java高级:注解、自定义注解、元注解
  • 响应式编程入门教程第八节:UniRX性能分析与优化
  • BIOS+MBR微内核加载loader程序实现过程
  • 从零开始开发纯血鸿蒙应用之跨模块路由
  • 编程语言Java入门——核心技术篇(一)封装、继承和多态
  • 【图文详解】Transformer架构详细解析:多头自注意力机制、qkv计算过程、encoder架构、decoder架构以及mask的意义
  • Request和Response相关介绍
  • 假如只给物品编号和物品名称,怎么拆分为树形结构(拆出父级id和祖籍列表),用于存储具有层级关系的数据。
  • 高效培养AI代理的全能工具:Agent Reinforcement Trainer
  • Windows CMD(命令提示符)中最常用的命令汇总和实战示例
  • 【unitrix】 6.10 类型转换(from.rs)
  • 【windows 终端美化】Windows terminal + oh-my-posh 来美化命令行终端
  • Word for mac使用宏
  • 对粒子群算法的理解与实例详解
  • MybatisPlus-13.扩展功能-DB静态工具
  • Twisted study notes[2]
  • Linux——进程的退出、等待与替换
  • ThinkSound:阿里开源首个“会思考”的音频生成模型——从“看图配音”到“听懂画面”的技术跃迁
  • C++ Primer(第5版)- Chapter 7. Classes -004
  • Dockerfile配置基于 Python 的 Web 应用镜像
  • 考研最高效的准备工作是什么
  • docker制作前端镜像
  • JVM-Java
  • 每日算法刷题Day50:7.20:leetcode 栈8道题,用时2h30min
  • 全面解析 JDK 提供的 JVM 诊断与故障处理工具
  • 零基础学习性能测试第二章-JVM如何监控
  • Android系统5层架构
  • 【论文笔记】OccluGaussian解决大场景重建中的区域遮挡问题
  • 5G NR PDCCH之信道编码