我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaSpringBoot集成ChatGPT实现AI聊天

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaSpringBoot集成ChatGPT实现AI聊天

前言     

ChatGPT已经组件放开了,现在都可以基于它写插件了。但是说实话我还真没想到可以用它干嘛,也许可以用它结合文字语音开发一个老人小孩需要的智能的说话陪伴啥的。
今天我就先分享下SpringBoot结合ChatGPT,先看看对话效果。

一、依赖引入

这个基本上没啥依赖引入哦,我这里就是一个干干净净的SpringBoot项目,引入Hutool的工具包就行了。看看我的整体依赖吧,直接上pom.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.0.5</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.xiaotian</groupId>
	<artifactId>superapi</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>superapi</name>
	<description>superapi</description>
	<properties>
		<java.version>17</java.version>
		<skipTests>true</skipTests>
	</properties>
	<dependencies>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-webflux</artifactId>
		</dependency>

		<!-- Fastjson -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.83</version>
		</dependency>

		<dependency>
			<groupId>cn.hutool</groupId>
			<artifactId>hutool-all</artifactId>
			<version>5.7.21</version>
		</dependency>


		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.projectreactor</groupId>
			<artifactId>reactor-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

二、接口开发

1.项目结构

2.配置文件

ChatGPT:
  connect-timeout: 60000      # HTTP请求连接超时时间
  read-timeout: 60000         # HTTP请求读取超时时间
  variables:                  # 自定义变量:
    apiKey: youApiKey     # 你的 OpenAI 的 API KEY
    model: text-davinci-003   # ChartGPT 的模型
    maxTokens: 50             # 最大 Token 数
    temperature: 0.5          # 该值越大每次返回的结果越随机,即相似度越小

3.接口实现代码

GPTRequest

package com.xiaotian.superapi.chatgpt.entity;

import lombok.Data;

@Data
public class GPTRequest {
    
    private String askStr;

    
    private String replyStr;
}

GPTResponse

package com.xiaotian.superapi.chatgpt.entity;

import lombok.Data;

import java.util.List;


@Data
public class GPTResponse {

    private String id;

    private String object;

    private String created;

    private String model;

    private List<GPTChoice> choices;
}

GPTChoice

package com.xiaotian.superapi.chatgpt.entity;

import lombok.Data;


@Data
public class GPTChoice {

    private String text;

    private Integer index;
}

ChatGPTController

package com.xiaotian.superapi.chatgpt.controller;

import cn.hutool.json.JSONUtil;
import com.xiaotian.superapi.chatgpt.entity.GPTRequest;
import com.xiaotian.superapi.chatgpt.service.ChartGPTService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;



@Slf4j
@RestController
@RequestMapping("/chatGpt")
public class ChatGPTController {

    @Resource
    private ChartGPTService chartGPTService;

    
    @PostMapping("/askAi")
    public String askAi(@RequestBody GPTRequest gptRequest) {

        String replyStr = chartGPTService.send(gptRequest.getAskStr());

        gptRequest.setReplyStr(replyStr);

        return JSONUtil.toJsonStr(gptRequest);
    }
}

ChartGPTService

package com.xiaotian.superapi.chatgpt.service;

public interface ChartGPTService {

    String send(String prompt);
}

ChartGPTServiceImpl

package com.xiaotian.superapi.chatgpt.service.impl;

import cn.hutool.http.Header;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.xiaotian.superapi.chatgpt.entity.GPTResponse;
import com.xiaotian.superapi.chatgpt.service.ChartGPTService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

@Slf4j
@Service
public class ChartGPTServiceImpl implements ChartGPTService {

    @Value("${ChatGPT.variables.apiKey}")
    private String apiKey;

    @Value("${ChatGPT.variables.maxTokens}")
    private String maxTokens;

    @Value("${ChatGPT.variables.model}")
    private String model;

    @Value("${ChatGPT.variables.temperature}")
    private String temperature;
    @Override
    public String send(String prompt) {
        JSONObject bodyJson = new JSONObject();
        bodyJson.put("prompt", prompt);
        bodyJson.put("max_tokens", Integer.parseInt(maxTokens));
        bodyJson.put("temperature", Double.parseDouble(temperature));
        Map<String,Object> headMap = new HashMap<>();
        headMap.put("Authorization", "Bearer " + apiKey);

        HttpResponse httpResponse = HttpUtil.createPost("https://api.openai.com/v1/engines/" + model + "/completions")
                .header(Header.AUTHORIZATION, "Bearer " + apiKey)
                .body(JSONUtil.toJsonStr(bodyJson))
                .execute();
        String resStr = httpResponse.body();
        log.info("resStr: {}", resStr);

        GPTResponse gptResponse = JSONUtil.toBean(resStr, GPTResponse.class);

        return gptResponse.getChoices().get(0).getText().replaceAll("\\n","");
    }
}

三、使用

接口信息

url:/chatGpt/askAi
type:post
入参:
{
“askStr”:“今天你吃饭了吗”
}

我的几个示例

下面是几个问的示例:

总结

  • 不得不说ChatGPT确实强大,涉及各学科
  • 这个在加上讯飞语言SDK那妥妥的就是一个”小爱同学“
  • 真要上,这里分享的代码还需要优化打磨哦

 到此这篇关于Java SpringBoot集成ChatGPT实现AI聊天的文章就介绍到这了,更多相关SpringBoot ChatGPT实现AI聊天内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaSpringBoot集成ChatGPT实现AI聊天

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaSpringBoot集成ChatGPT实现AI聊天

ChatGPT已经组件放开了,现在都可以基于它写插件了,也许可以用它结合文字语音开发一个老人小孩需要的智能的说话陪伴啥的,这篇文章就介绍SpringBoot结合ChatGPT实现AI聊天感兴趣的同学可以借鉴一下
2023-05-14

Java SpringBoot怎么集成ChatGPT实现AI聊天

这篇文章主要介绍“Java SpringBoot怎么集成ChatGPT实现AI聊天”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java SpringBoot怎么集成ChatGPT实现AI聊天”文章
2023-07-05

html+css+js实现简易版ChatGPT聊天机器人

OpenAI的一款聊天机器人模型ChatGPT爆火,本篇文章用一百行html+css+js代码给大家制作一款简易的聊天机器人。
2023-02-25

基于ChatGPT+SpringBoot实现智能聊天AI机器人接口并上线至服务器的方法

ChatGPT是一款基于自然语言处理技术的聊天机器人,ChatGPT可以模拟真实的人类对话,并能够更贴近用户的需求,提供更有价值的服务,这篇文章主要介绍了基于ChatGPT+SpringBoot实现智能聊天AI机器人接口并上线至服务器,需要的朋友可以参考下
2023-02-16

ChatGPT Python API使用指南:实现个性化聊天回复

ChatGPT Python API使用指南:实现个性化聊天回复引言:ChatGPT是OpenAI的一种强大的自然语言处理模型,可以用于实现人机对话系统。在这篇文章中,我将为您介绍如何通过Python API来使用ChatGPT,并给出具体
2023-10-25

ChatGPT Python API使用指南:实现语音聊天机器人

ChatGPT Python API使用指南:实现语音聊天机器人引言:随着人工智能技术的不断发展和普及,语音聊天机器人在各类应用场景中的需求越来越大。OpenAI开源的ChatGPT提供了一个强大的自然语言处理模型,通过使用ChatGPT
ChatGPT Python API使用指南:实现语音聊天机器人
2023-10-28

ChatGPT Python API使用指南:实现个性化的聊天推送

ChatGPT Python API使用指南:实现个性化的聊天推送导言:在当今互联网时代,人们对个性化服务的需求越来越高。而ChatGPT是一种基于剪贴板模型的自然语言处理模型,非常适合用于实现个性化的聊天推送系统。本文将介绍如何使用Cha
2023-10-25

如何使用ChatGPT PHP实现多语言智能聊天功能

如何使用ChatGPT PHP实现多语言智能聊天功能引言:随着人工智能技术的不断发展,智能聊天机器人在各个领域得到了广泛应用。ChatGPT是一种基于深度学习技术的开源模型,能够实现自然语言处理和对话生成任务。本文将介绍如何使用ChatGP
2023-10-24

如何利用ChatGPT和Python实现聊天机器人性能优化

如何利用ChatGPT和Python实现聊天机器人性能优化摘要:随着人工智能技术的不断发展,聊天机器人已成为各种应用领域中的重要工具。本文将介绍如何利用ChatGPT和Python编程语言实现聊天机器人的性能优化,并提供具体的代码示例。引言
2023-10-27

如何使用ChatGPT PHP实现智能医疗咨询聊天应用

如何使用ChatGPT PHP实现智能医疗咨询聊天应用,需要具体代码示例引言:随着人工智能技术的不断发展,聊天机器人成为了各行各业中智能化应用的重要组成部分。在医疗领域,智能医疗咨询聊天应用能够帮助医生和患者进行有效的沟通和咨询,提高医疗服
2023-10-25

如何使用ChatGPT PHP实现智能社交娱乐聊天应用

如何使用ChatGPT PHP实现智能社交娱乐聊天应用引言:随着人工智能的发展,聊天机器人在社交娱乐领域中扮演了重要的角色。ChatGPT 是OpenAI推出的一款强大的对话模型,能够通过学习大量的对话数据来生成自然流畅的回复。本文将介绍如
2023-10-26

怎么使用html+css+js实现简易版ChatGPT聊天机器人

本篇内容介绍了“怎么使用html+css+js实现简易版ChatGPT聊天机器人”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:
2023-07-05

基于Python实现微信聊天界面生成器

这篇文章主要为大家详细介绍了如何利用Python实现简单的微信聊天界面生成器,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
2023-01-29

如何使用ChatGPT PHP实现智能聊天机器人的情感分析功能

如何使用ChatGPT PHP实现智能聊天机器人的情感分析功能智能聊天机器人在现代社交网络和商务应用中越来越被广泛使用,但要使机器人更加智能,除了基本的问答功能外,情感分析也是非常重要的一环。通过情感分析,机器人可以更好地理解用户的情绪和意
2023-10-24

使用chatgpt实现微信聊天小程序(秒回复),github开源(附带链接)

文章目录 前言效果展示原理说明服务器端代码说明微信小程序代码说明代码链接总结更新日志2023/5/13 14:42更新 前言 我在前一段时间突发奇想,就使用java来调用chatgpt的接口,然后写了一个简单小程序,也上了热
2023-08-30

react native中如何实现聊天气泡及timer封装成的发送验证码倒计时

这篇文章主要介绍了react native中如何实现聊天气泡及timer封装成的发送验证码倒计时,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.goBack的跨页面跳转,又
2023-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录