SpringBoot集成ChartGpt

SpringBoot集成ChartGpt


文章目录

  • SpringBoot集成ChartGpt
    • @[TOC]
  • 前言
  • 一、ChatGpt集成组件
  • 二、OpenAi连接配置
  • 三、查询接口调用
    • 1、代码实现
    • 2、结果展示
  • 三、获取文本向量接口
    • 1、代码实现
    • 2、结果展示
  • 四、代理设置
  • 总结

前言

ChatGPT(Chatbot Generative Pre-trained Transformer)是一种新型的聊天机器人技术,它可以帮助用户与虚拟助手进行自然语言对话,从而节省时间和解决繁重的任务。ChatGPT使用自然语言处理技术,可以让机器认识自然语言,并分析人类的意图,并根据人类的意图提供相应的回复。ChatGPT可以让机器模仿真实的人类对话,并能智能地回答问题,从而帮助客户解决问题。

一、ChatGpt集成组件

目前java集成chatGPT的组件有很多种,基本实现方法都一样,选择哪种都可以,只要最新的组件都包含chatGPT的相关接口就行,本文选用的为

        <dependency><groupId>com.unfbx</groupId><artifactId>chatgpt-java</artifactId><version>1.0.4</version></dependency>

二、OpenAi连接配置

按生成OpenAi的连接客户端,主要配置apiKey(申请秘钥,官网购买),连接超时时间,读取超时时间,写入超时时间等。代码如下:

@Configuration
public class OpenAiConfig {private final static String token = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxx";@Beanpublic OpenAiClient createClient() {return OpenAiClient.builder().apiKey(token).connectTimeout(1000*60*3)    //3分钟还没连接上就失败.readTimeout(1000*60*3)   .writeTimeout(1000*60*3).build();}
}

三、查询接口调用

1、代码实现

实现代码如下

      @ApiOperation(value = "问题接口(接口调用)", notes = "问题接口(接口调用)")@PostMapping(value = "/query/v2")public List<Message> questionV2(@RequestBody ContentParamVo paramVo) {Message message = Message.builder().role(Message.Role.USER)  // 设置体温者角色,不需要填写默认值.content(paramVo.getContent())  // 问题内容.build();ChatCompletion chatCompletion = ChatCompletion.builder().model("gpt-3.5-turbo")  // 模型选择(chatGPT 默认为这个).messages(Arrays.asList(message))  // 问题。一次课问答多条数据.stream(false)   // 是否是流式问答,我选择的不是,需要等gpt回答完才能拿到完整数据.build();ChatCompletionResponse chatCompletionResponse = null;for (int i = 0; i < 3; i++) {   // 失败的话会调用三次try {chatCompletionResponse = openAiClient.chatCompletion(chatCompletion);break;} catch (Exception e) {log.info("异常:{}", e.getMessage());}}List<Message> list = new ArrayList<>();chatCompletionResponse.getChoices().forEach(e -> {list.add(e.getMessage());});return list;}

2、结果展示

请添加图片描述

三、获取文本向量接口

1、代码实现

实现代码如下

       @ApiOperation(value = "获取向量", notes = "获取向量")@PostMapping(value = "/embedding/get")public VectorResponse createEmbeddings(@RequestBody ContentParamVo paramVo) {//paramVo.getContent()  文本内容EmbeddingResponse embeddings = openAiClient.embeddings(paramVo.getContent());List<Item> data = embeddings.getData();VectorResponse vectorResponse = new VectorResponse();List<VectorContent> list = Lists.newArrayList();   //自己定义的数据结构for (Item item : data) {VectorContent vectorContent = VectorContent.builder().index(item.getIndex()).embedding(bigDecimerToFloat(item.getEmbedding())).object(item.getObject()).build();list.add(vectorContent);}vectorResponse.setData(list);return vectorResponse;}// 将double转为float向量,可能存在精度丢失问题private static List<Float> bigDecimerToFloat(List<BigDecimal> embedding) {List<Float> list = new ArrayList();for (BigDecimal decimal : embedding) {list.add(decimal.setScale(11, BigDecimal.ROUND_HALF_UP).floatValue());}return list;}

2、结果展示

请添加图片描述

四、代理设置

由于chatGpt是国外的服务,通过网络不能直接访问,需要走代理。我们在java启动的时候可以设置代理服务器。
proxyHost为代理服务器,proxyPort为代理端口,
目前代理实现有多中方式,可以通过squid代理整个服务器,可以通过java设置代理整个服务,也可通过http请求设置代理请求
注意:此处要设置了代理,其他访问可能会存在问题,例如:该服务调用数据库,访问数据库ip同样也会被代理。造成访问连接失败

java  -jar -Dhttps.proxyPort=7890 -Dhttps.proxyHost=192.100.11.4  xxx.jar 

总结

上述是springboot 集成chatGPT的的基本实现。这里只能单线程访问,且频率有限,如果想要做成多线程的可以考虑申请多个OpenAi账号,做成连接池的方式去实现

)

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

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

相关文章

python预测体彩大乐透

从网上抄了个机器训练的代码&#xff0c;另外自己改了几个数学预测方法 唯一不方便的就是每次要更新数据源然后由于配置太差&#xff0c;每次买之前要提前执行一个钟多&#xff0c;如果间隔时间长的话&#xff0c;手动更新数据也比较繁琐。 这段时间趁着空闲对整个程序修改了一…

ChatGPT结合Excel公式办公 —— ChatGPT统计富豪信息

&#x1f4a7; C h a t G P T 统计富豪信息 \color{#FF1493}{ChatGPT统计富豪信息} ChatGPT统计富豪信息&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算法…

ChatgGPT生成Excel统计公式

需求背景 编写excel公式&#xff0c;提取下图中符号之前的内容并填充到“修改后的内容”这一列 流程思路 借助ChatGPT完成Excel公式的大致流程如下&#xff1a; 确定要解决的问题&#xff1a;明确你需要在Excel中实现的具体任务或计算需求。例如&#xff0c;求和、平均值、…

利用ChatGPT编写Excel公式,对比讯飞星火与ChatGPT对Excel公式的回答

系列文章目录 借助国内ChatGPT平替MindShow&#xff0c;飞速制作PPT 借助国内ChatGPT平替markmap/Xmind飞速生成思维导图 借助国内ChatGPT平替剪映/百度AIGC平台快速制作短视频 文章目录 系列文章目录前言一、利用ChatGPT编写Excel公式1.描述我们想实现的Excel公式&#xff…

如何简单的将文档上传到ChatGPT的5种方法详解《收藏》

OpenAI 一直在为 ChatGPT 添加有意义的功能,包括对网页浏览和插件的支持。但是,仍然没有办法本地上传文档并根据其上下文提出问题。不过,有些用户可以在他们的数据上训练 AI 聊天机器人,但并不是每个人都了解如何设置工具和库。如果您正在寻找一种将文档上传到 ChatGPT 的简…

ChatGPT城市积水内涝研究

正常注册的ChatGPT是可以使用的&#xff0c;我正在做城市内涝研究&#xff0c;想看看chatgpt有什么想法。 ChatGPT提供的答案挺全面&#xff0c;文字逻辑性很好。如果是写文档的话&#xff0c;很有用处&#xff0c;但是具体实现还需要仔细研究。城市积水内涝 遥感怎么实现城市积…

上传vip专享资源,瓜分奖金池

VIP专享资源上传活动&#xff0c;每月持续上传&#xff0c;则每月均可获得奖金哦&#xff0c;敬请期待~~ 一、活动时间及任务 第一期&#xff1a;2022.10.12-2022.11.12 (第一期活动结果已出炉&#xff0c;戳此查看&#xff09; 第二期&#xff1a;2022.11.18-2022.12.18 &…

车企数字人“猛烈地来,猛烈地去”

技术战、产品战、价格战、营销战&#xff0c;高度成熟的汽车市场&#xff0c;精细地将战场划分成一块块。过去&#xff0c;越是卷入新车战事&#xff0c;车企们越需要营销带动舆论、增加市场砝码。去年&#xff0c;数字人在内的元宇宙场景是砝码之一。 然而&#xff0c;进入20…

基于台达PLC的水箱液位PID控制(matlab处理数据)

1.实验目的 &#xff08;1&#xff09;掌握过程控制的方法&#xff1b; &#xff08;2&#xff09;熟练掌握台达编程技巧&#xff1b; &#xff08;3&#xff09;熟悉实验室水箱系统、变频器的接线方法&#xff1b; &#xff08;4&#xff09;学会用文件寄存器来读取数据并…

【天津科技大学-智能科学与先进制造实验班】1-LED篇-关于手焊STM8S208MB开发板的测试与学习

一、引言 首先感谢天津科技大学董舰老师以及创驿社各位学长们对我们22级智能科学与先进制造实验班的培养与帮助&#xff0c;能给我们一个非常珍贵的实践机会来学习STM8单片机&#xff0c;本篇将以零基础手把手教会大家如何通过点亮LED&#xff0c;从而测试自己手焊STM8开发板是…

采样与保持仿真实验(计控实验一simulink)

【ChatGPT】前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击查看学习资料&#xff09; 一、实验目的与要求 1、了解数/模转换器的零阶保持器作用。 2、验证零阶保持…

AI新晋“顶流”ChatGPT将对财务数字化带来哪些影响?

近期ChatGPT持续火热&#xff0c;2个月内&#xff0c;成为最快达成月活超过1亿的现象级应用。无论是科研人员、技术人员还是普通大众都对此非常关注&#xff0c;并惊讶于它强大的对话能力&#xff0c;ChatGPT也在国内持续霸榜热搜&#xff0c;成为大家茶余饭后的热点话题。毫无…

数电实验四-触发器(Multisim和Basys3)

【ChatGPT】前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击查看学习资料&#xff09; 特别说明&#xff1a;该系列内容均是本人实验记录&#xff0c;无盗取侵权之嫌…

Maynor的博客专家成长之路——暨2023年中复盘

文章目录 博客专家成长之路——暨2023年中复盘前言念念不忘的博客专家每天只做三件事敲代码写博客健健身 我的感悟 不足之处未来&#xff1a;和CSDN共同成长最后 博客专家成长之路——暨2023年中复盘 前言 ​ 2023年不知不觉已经过去了半年有余&#xff0c;也是时候作年中复盘…

上传ChatGPT相关资源,瓜分¥5000元奖金池

一、活动时间 资源类型时间上传地址上传【ChatGPT的原理分析】资源4月17日-4月30日https://upload.csdn.net/creation/uploadResources?taskId643925fde212675bb64a3984&utm_sourceblog上传【ChatGPT的多种使用方法】资源4月15日-4月30日https://upload.csdn.net/creatio…

ChatGPT带我做四轴飞行器和自平衡小车

按照ChatGPT的说法&#xff0c;这款主板的的主控MCU、无线通信、电源管理、外设接口可以共用&#xff0c;需要差异化的有电机驱动、传感器的选择、控制算法和软件、电源供电。ChatGPT说的共用部分没啥争议&#xff0c;有差异化的地方需要细想下&#xff1a;电机驱动显然应该不同…

统一网关Gateway

一、网关Gateway作用介绍 网关功能&#xff1a; 身份认证和权限校验 对工作人员或者是内部人员才能允许查看敏感信息 一切请求先到网关再到微服务&#xff0c;这样就能做到身份认证和权限校验 服务路由、负载均衡 倘若我们通过了身份认证和权限校验&#xff0c;那怎么知道访问哪…

ChatGPT加持下!OpenAI估值已达290亿美元,新一轮融资宣告结束!

来源&#xff1a;机器之心 因为 ChatGPT 的发布&#xff0c;OpenAI 成为了目前最炙手可热的创业公司&#xff0c;很多投资者都希望加入光荣的股东行列。 根据本周五 TechCrunch 看到的文件&#xff0c;包括 Tiger Global、Sequoia Capital、Andreessen Horowitz、Thrive 和 K2 …

chatgpt赋能python:用Python快速替换文本的技巧

用Python快速替换文本的技巧 在编程世界中&#xff0c;文本处理是一项必备的技能。作为一名有10年Python编程经验的工程师&#xff0c;我深刻理解到Python在文本处理方面的强大之处&#xff0c;特别是在快速替换文本方面。在本篇文章中&#xff0c;我将分享几个用Python快速替…

【AI提示】ChatGPT提示工程课程(吴恩达OpenAI) 自动回复评论+温度参数设置(中文chatgpt版)...

Expanding 在本课中&#xff0c;您将生成针对每位客户的评论量身定制的客户服务电子邮件。 设置 import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env fileopenai.api_key os.getenv(OPENAI_API_KEY) def …