Java 项目如何快速接入AI大模型ChatGPT

Spring AI 简介

  • 定义:与Spring生态系统集成的项目,简化在Spring应用中使用AI技术。
  • 特点:提供工具和接口,简化集成AI功能,避免底层细节复杂性。

Spring AI 主要功能

  • 跨AI提供商API:聊天、文本到图像、嵌入模型等,支持同步和流API。
  • 支持AI模型:来自OpenAI、Microsoft、Amazon、Google、Huggingface等。
  • 跨Vector Store API:支持8个向量数据库,提供类似SQL的元数据过滤器API。
  • 函数调用:AI模型可调用Java Function对象。
  • 自动配置和启动器:AI模型和矢量存储的Spring Boot配置。
  • ETL框架:数据工程,支持数据加载到向量数据库。

接入ChatGPT

  • 官方Demoai-openai-helloworld,实现基本会话功能。
  • 国内访问问题:无代理设置,可能访问受限。
  • 改进:增加代理配置,适应国内访问需求。

项目细节

  • 项目地址:spring-ai-chatgpt
  • 实现Demo:3个,包括简单回话、流式回话、消息模板提示。
  • 启动配置:修改application.yml,填写apiKey和代理配置。

接口示例

  • 简单回话接口:生成完毕后返回。
  • 流式回话接口:实时流式返回生成内容。
  • 模板对话接口:指定格式,自动转换为Java实体类。

配置示例(application.yml)

spring:ai:proxy:host: 127.0.0.1port: 1080openai:api-key: xxxxchat:options:model: gpt-3.5-turbo

接口代码示例

  • @GetMapping(“/ai/simple”):简单回话生成。
  • @GetMapping(“/ai/stream”):流式回话。
  • @GetMapping(“/ai/template”):模板对话,自动映射到Java对象。

项目结构

  • 特点:代码简洁,主要实现代理设置。
  • 重写:OpenAI接口,增加代理功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s学习——安装istio之dns卡壳

我准备使用istio来替代原来的traefic网关和consul服务注册发现的方案,但在安装istio过程中遇到了一些问题,把解决的过程记录下来,便于今后遇到类似问题做个参考。 istio安装的中文文档地址:Istio Prelim 1.23 / 文档 参照Istio …

Perl中的时间机器:探索文件系统同步机制

Perl中的时间机器:探索文件系统同步机制 在Perl编程中,文件系统同步是一个重要的功能,它允许开发者在不同时间点对文件或目录的状态进行备份、更新和同步。Perl提供了多种内置的模块和函数,使得文件系统同步变得简单而高效。本文…

Mysql9安装

目录 一、下载mysql 二、安装 三、配置mysql环境变量 四、mysql初始化和启动 1.以管理员身份运行cmd 2.cd到mysql的安装目录 3.初始化mysql的数据库 4.为Windows系统安装MySQL服务 5.查看一下名为mysql的服务: 6.启动MySQL服务 五、附录 1.系统变量还在&…

CentOS 8中 更新或下载时报错:为仓库 ‘appstream‘ 下载元数据失败 : Cannot prepare internal mirrorlist

一、错误重现 CentOS Stream 8 - AppStream 0.0 B/s | 0 B 00:00 Errors during downloading metadata for repository appstream: - Curl error (6): Couldnt resolve host name for http://mirrorlis…

Python 之 os、open、json、pickle 模块的“疯狂”探险记

1.open函数的使用 Python 中的 open() 函数是处理文件的标准方法。它允许你打开一个文件,并对其进行读取、写入或追加操作 open(file,mode,encoding)函数的格式:file:文件路径 mode:打开方式(读: r写&…

昇思25天学习打卡营第18天|生成式-GAN图像生成

打卡 目录 打卡 GAN 博弈函数 博弈过程 GAN 案例 数据集 数据加载与可视化 隐码构造 模型构建 生成器 判别器 损失函数和优化器 模型训练 输出展示-1w张训练样本 输出展示-6w张训练样本 输出展示-6w张-100 epoch 效果展示 部分展示如图-12epoch-6w张 部分展…

Windows系统上Git详细图文安装及使用教程

Git 是一种高效、分布式的版本控制系统,用于代码的跟踪、分支管理和协同工作,支持快速提交、合并和回滚操作。它是开发者工具箱中必不可少的工具之一,广泛应用于软件开发和其他需要版本控制的领域。 1. Git的安装 1.1 Git下载 可以通过以下…

WEB渗透信息收集篇--IP和端口信息

WEB渗透信息收集篇--域名信息-CSDN博客 WEB渗透信息收集篇--网站架构和指纹识别-CSDN博客 ​​​​​​​​​​​​​​WEB渗透信息收集篇--人员信息-CSDN博客​​​​​​​ WEB渗透信息收集篇--其他信息-CSDN博客 一、ASN ASN Tool - MxToolBox ASN通常指的是"自…

Qt SQLite数据库学习总结

到此为止,就使用Qt进行SQLite数据库的操作,做一次总结 1. Qt中数据库操作的相关概念和类 Qt 数据库编程相关基本概念https://blog.csdn.net/castlooo/article/details/140497177 2.表的只读查询--QSqlQueryModel QSqlQueryModel单表查询的使用总结htt…

JDK、JRE、JVM之间的关系

JDK是Java的开发环境,用JDK开发了JAVA程序后,通过JDK中的编译程序(javac)将java文件编译成字节码文件,作为运行环境的JRE,字节码文件在JRE上运行,作为虚拟机的JVM解析这些字节码,映射…

微信小程序--点击按钮可新增可删除

案例: html: <view ><view ><view class="guzhang" wx:for="{{inputs}}" wx:key="id" wx:for-item="item" wx:for-index="index"><view class="huanhang"><view class="fontBo…

员工网络监控软件:把控员工网络活动的标尺

在竞争激烈的漩涡之中&#xff0c;企业如同一只不断旋转的陀螺&#xff0c;努力保持着自身的平衡和稳定&#xff0c;而员工的网络活动则是那无形却强大的力量&#xff0c;时刻影响着企业的运转。员工网络监控软件仿佛一根坚固无比的轴心&#xff0c;以其精准的标尺帮助企业实现…

一篇了解Microsoft SEAL

目录 引言 核心概念 同态加密 微软SEAL 入门 可选依赖项 示例 使用EVA进行CKKS编程 手动构建Microsoft SEAL 构建C组件 要求 构建微软SEAL 安装微软SEAL 在Windows上构建和安装(不做重点介绍) 为Android和iOS构建(不做重点介绍) 为WebAssembly构建(不做重点介绍…

Mindspore框架循环神经网络RNN模型实现情感分类|(六)模型加载和推理(情感分类模型资源下载)

Mindspore框架循环神经网络RNN模型实现情感分类 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;一&#xff09;IMDB影评数据集准备 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;二&#xff09;预训练词向量 Mindspore框架循环神经网络RNN模型实现…

顶级 Vue 管理仪表板和模板

Vue.js 是当今繁忙的 Web 开发领域中最受欢迎的 JavaScript 框架之一&#xff0c;用于创建交互式动态用户界面。Vue.js 的组件反应性及其流畅的数据绑定使其在管理仪表板设计方面占据了主导地位。 本文讨论了一些领先的 ​​Vue 管理员仪表板&#xff0c;它们可以节省您制作 We…

计算机网络之http和https的区别(外加http详解)

http协议和各种协议之间的关系 1、DNS解析&#xff0c;获取到访问服务器的IP 2、HTTP生成请求报文请求&#xff0c;请求访问页面资源 3、TCP协议将报文切割成一份一份报文段后&#xff0c;以可靠的方式进行传输 4、IP协议边搜索边中转&#xff0c;将这些数据包传输给接受方…

k8s 公共服务

修改named.conf。修改第13行和第21行 下面是 named.rfc1912 修改位置&#xff0c;在最后 所以用cp -p 复制文件&#xff0c;保留权限 nslookup 回车&#xff0c;server是看哪个dns 在起作用 dns服务器要配置给所有公共服务节点和 k8s 节点 就在网络文件加个DNS2就行了&…

CSS3雷达扫描效果

CSS3雷达扫描效果https://www.bootstrapmb.com/item/14840 要创建一个CSS3的雷达扫描效果&#xff0c;我们可以使用CSS的动画&#xff08;keyframes&#xff09;和transform属性。以下是一个简单的示例&#xff0c;展示了如何创建一个类似雷达扫描的动画效果&#xff1a; HTM…

【前端】JavaScript入门及实战91-95

文章目录 91 DOM92 事件93 文档的加载94 DOM查询(1)95 图片切换的练习 91 DOM <!DOCTYPE html> <html> <head> <title></title> <meta charset"utf-8"><style> </style> </head> <body><button id&…

docker笔记4-镜像理解

docker笔记4-镜像理解 一、镜像原理之联合文件系统二、镜像原理之分层理解三、commit镜像 一、镜像原理之联合文件系统 UnionFS&#xff08;联合文件系统&#xff09;: Union文件系统&#xff08;UnionFS&#xff09;是一种分层、轻量级并且高性能的文件系统&#xff0c;它支持…