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

免费建网站那个好中国站免费推广入口

免费建网站那个好,中国站免费推广入口,wordpress缓存插件 w3,有点子外包做网站会不会被盗窃SpringBoot对接OpenAI 随着人工智能技术的飞速发展,越来越多的开发者希望将智能功能集成到自己的应用中,以提升用户体验和应用的功能。OpenAI作为一家领先的人工智能公司,提供了许多先进的自然语言处理和语言生成模型,其中包括深…

SpringBoot对接OpenAI

随着人工智能技术的飞速发展,越来越多的开发者希望将智能功能集成到自己的应用中,以提升用户体验和应用的功能。OpenAI作为一家领先的人工智能公司,提供了许多先进的自然语言处理和语言生成模型,其中包括深受欢迎的GPT-3.5模型。本文将介绍如何利用Spring Boot框架与OpenAI进行对接,为你的应用增加强大的智能能力。

1、OpenAI概述:

OpenAI是一家人工智能研究实验室,致力于构建人类水平通用人工智能。他们的GPT-3.5模型是目前最先进的自然语言处理模型之一,能够理解和生成自然语言文本。通过与OpenAI对接,你可以将这一强大的模型嵌入到你的应用中,实现自动化文本生成、智能问答、机器翻译等功能。

2、Spring Boot 简介:

Spring Boot是一个用于构建独立的、基于生产级别的Java应用程序的框架。它简化了Spring应用的开发过程,提供了一系列的工具和插件,帮助开发者快速搭建稳健的应用。通过Spring Boot,你可以轻松创建RESTful API,处理HTTP请求,以及管理应用的依赖等。

3、搭建Spring Boot项目:

  1. 环境准备:确保你已经安装了Java开发环境和Maven构建工具。
  2. 创建Spring Boot项目:使用Spring Initializr创建一个新的Spring Boot项目,选择所需的依赖,如Web、OpenAI API等。
  3. 配置OpenAI API密钥:在application.properties或application.yml文件中,设置OpenAI API的访问密钥,确保可以在项目中调用OpenAI的服务。

3.1、环境准备

这里就不多说了,直接使用maven搭建一个SpringBoot项目

3.2、引入依赖

本次案例比较简单,就是一个干净的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 http://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>2.3.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.pp.chat</groupId><artifactId>chatgpt-api-demo</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- Fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version></dependency><!-- HuTool工具包 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency><!-- knife4j生成接口文档 --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.2.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- lombok简化实体构造方法 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies>
</project>

3.3、配置文件

knife4j:enable: trueChatGPT:connect-timeout: 60000      # HTTP请求连接超时时间read-timeout: 60000         # HTTP请求读取超时时间variables:                  # 自定义变量:apiKey: xxx     # 你的 OpenAI 的 API KEYmodel: gpt-3.5-turbo   # ChartGPT 的模型maxTokens: 500             # 最大 Token 数temperature: 1         # 该值越大每次返回的结果越随机,即相似度越小

4、核心代码

4.1、项目结构

pPAtXUU.md.png

4.2、实体类

1、GPTChoice

package com.pp.chat.entity;import lombok.Data;
/*** TODO 文本模型返回内容** @author ss_419* @version 1.0* @date 2023/8/5 15:47*/
@Data
public class GPTChoice {private String text;private Integer index;private Message message;}

2、GPTData

package com.pp.chat.entity;import lombok.Data;/*** TODO 图形模型返回内容** @author ss_419* @version 1.0* @date 2023/8/5 11:37*/
@Data
public class GPTData {private String url;
}

3、GPTRequest

package com.pp.chat.entity;import lombok.Data;import java.util.List;/*** TODO 问题请求体** @author ss_419* @version 1.0* @date 2023/8/5 15:47*/
@Data
public class GPTRequest {/*** 问题*/private String askStr;/*** 文本回答*/private String replyStr;/*** 图形回答*/private List<GPTData> replyImg;
}

4、GPTResponse

package com.pp.chat.entity;import lombok.Data;import java.util.List;
/*** TODO 文本模型返回响应体** @author ss_419* @version 1.0* @date 2023/8/5 15:47*/
@Data
public class GPTResponse {private String id;private String object;private String created;private String model;private List<GPTChoice> choices;}

5、GPTImageResponse

package com.pp.chat.entity;import lombok.Data;import java.util.List;/*** TODO 图形模型返回响应体** @author ss_419* @version 1.0* @date 2023/8/5 15:47*/
@Data
public class GPTImageResponse {private String created;private List<GPTData> data;
}

6、Message

package com.pp.chat.entity;import lombok.Data;/*** TODO 文本模型消息体** @author ss_419* @version 1.0* @date 2023/8/5 10:30*/
@Data
public class Message {private String role;private String content;
}

4.3、业务类

ChartGPTService

package com.pp.chat.service;import com.pp.chat.entity.GPTData;import java.util.List;public interface ChartGPTService {/*** 调用文本模型ai* @param prompt* @return*/String send(String prompt);/*** 调用图片模型ai* @param prompt* @return*/List<GPTData> sendImg(String prompt);
}

ChartGPTServiceImpl

package com.pp.chat.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.pp.chat.entity.*;
import com.pp.chat.service.ChartGPTService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;@Service("chartGPTService")
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;@Overridepublic String send(String prompt) {JSONObject bodyJson = new JSONObject();Message message = new Message();message.setContent(prompt);message.setRole("system");ArrayList<Message> messages = new ArrayList<>();messages.add(message);bodyJson.put("messages", messages);bodyJson.put("model", model);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/chat/completions")// 使用代理地址 https://api.openai-proxy.com/HttpUtil.createPost("https://api.openai-proxy.com/v1/chat/completions").header(Header.AUTHORIZATION, "Bearer " + apiKey).header(Header.CONTENT_TYPE, "application/json").body(JSONUtil.toJsonStr(bodyJson)).execute();String resStr = httpResponse.body();GPTResponse gptResponse = JSONUtil.toBean(resStr, GPTResponse.class);return gptResponse.getChoices().get(0).getMessage().getContent().replaceAll("\\n", "");}@Overridepublic List<GPTData> sendImg(String prompt) {JSONObject bodyJson = new JSONObject();bodyJson.put("prompt", prompt);bodyJson.put("n", 2);bodyJson.put("size", "1024x1024");Map<String, Object> headMap = new HashMap<>();headMap.put("Authorization", "Bearer " + apiKey);HttpResponse httpResponse =// 官网请求,没梯子不能访问// HttpUtil.createPost("https://api.openai.com/v1/chat/completions")// 使用代理地址 https://api.openai-proxy.com/HttpUtil.createPost("https://api.openai-proxy.com/v1/images/generations").header(Header.AUTHORIZATION, "Bearer " + apiKey).header(Header.CONTENT_TYPE, "application/json").body(JSONUtil.toJsonStr(bodyJson)).execute();String resStr = httpResponse.body();GPTImageResponse gptResponse = JSONUtil.toBean(resStr, GPTImageResponse.class);List<GPTData> data = gptResponse.getData();return data;}
}

4.4、Boot启动类

Main

package com.pp.chat;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author ss_419*/
@SpringBootApplication
public class Main {public static void main(String[] args) {SpringApplication.run(Main.class,args);System.out.println("Hello world!");}
}

5、测试

启动项目,使用knife4j进行接口测试

接口文档默认地址:http://localhost:8080/doc.html

pPANm2d.png

5.1、测试文本模型

pPANQqP.png

5.2、测试图片模型

pPANJPg.png

gpt生成的图片在链接中

pPANdrq.png

6、总结

通过Spring Boot与OpenAI的对接,我们可以轻松将强大的自然语言处理功能集成到我们的应用中,为用户提供更智能、更便捷的服务。同时,结合Spring Boot强大的开发能力,我们可以快速搭建出高效稳定的智能应用,满足不断变化的市场需求。未来,随着OpenAI技术的不断演进,我们将能够构建更多创新的智能应用,为用户带来更加令人惊喜的体验


文章转载自:
http://peribolus.tbjb.cn
http://muderer.tbjb.cn
http://nutwood.tbjb.cn
http://cisrhenane.tbjb.cn
http://teapot.tbjb.cn
http://solate.tbjb.cn
http://breakage.tbjb.cn
http://scalenus.tbjb.cn
http://pleased.tbjb.cn
http://ephebeum.tbjb.cn
http://antifeudal.tbjb.cn
http://racemose.tbjb.cn
http://quartus.tbjb.cn
http://demander.tbjb.cn
http://brochure.tbjb.cn
http://formularize.tbjb.cn
http://crystalliferous.tbjb.cn
http://pyrographic.tbjb.cn
http://repine.tbjb.cn
http://vertex.tbjb.cn
http://pagurid.tbjb.cn
http://potation.tbjb.cn
http://reseda.tbjb.cn
http://pummelo.tbjb.cn
http://kaput.tbjb.cn
http://building.tbjb.cn
http://bodmin.tbjb.cn
http://disazo.tbjb.cn
http://faintly.tbjb.cn
http://kneel.tbjb.cn
http://cham.tbjb.cn
http://protostar.tbjb.cn
http://stew.tbjb.cn
http://vasoligate.tbjb.cn
http://unalloyed.tbjb.cn
http://specifiable.tbjb.cn
http://crossable.tbjb.cn
http://arminianize.tbjb.cn
http://baryonium.tbjb.cn
http://underreaction.tbjb.cn
http://romaine.tbjb.cn
http://poplar.tbjb.cn
http://unscramble.tbjb.cn
http://wharfinger.tbjb.cn
http://inspissate.tbjb.cn
http://ropiness.tbjb.cn
http://respectant.tbjb.cn
http://bearskinned.tbjb.cn
http://revocatory.tbjb.cn
http://slopwork.tbjb.cn
http://vainglory.tbjb.cn
http://moonshiny.tbjb.cn
http://bitterroot.tbjb.cn
http://teahouse.tbjb.cn
http://groomsman.tbjb.cn
http://shutdown.tbjb.cn
http://volkslied.tbjb.cn
http://grift.tbjb.cn
http://extrados.tbjb.cn
http://tailoress.tbjb.cn
http://ru.tbjb.cn
http://varuna.tbjb.cn
http://unneutral.tbjb.cn
http://preman.tbjb.cn
http://wheatear.tbjb.cn
http://sportfishing.tbjb.cn
http://dilutedly.tbjb.cn
http://successional.tbjb.cn
http://churidars.tbjb.cn
http://belled.tbjb.cn
http://grutten.tbjb.cn
http://harmlessly.tbjb.cn
http://airwash.tbjb.cn
http://tarragona.tbjb.cn
http://inceptor.tbjb.cn
http://fictioneering.tbjb.cn
http://zygomorphic.tbjb.cn
http://dholl.tbjb.cn
http://frankfort.tbjb.cn
http://squab.tbjb.cn
http://witchwoman.tbjb.cn
http://atrioventricular.tbjb.cn
http://solmisation.tbjb.cn
http://addiction.tbjb.cn
http://sony.tbjb.cn
http://dixican.tbjb.cn
http://idoneity.tbjb.cn
http://craze.tbjb.cn
http://selenate.tbjb.cn
http://balneary.tbjb.cn
http://breathing.tbjb.cn
http://unshaped.tbjb.cn
http://betacam.tbjb.cn
http://cubiform.tbjb.cn
http://praemunire.tbjb.cn
http://brokenhearted.tbjb.cn
http://autoreflection.tbjb.cn
http://emily.tbjb.cn
http://tailrace.tbjb.cn
http://vulpine.tbjb.cn
http://www.dt0577.cn/news/124374.html

相关文章:

  • flash做的网站爱站网收录
  • 平面设计主要内容灰色词优化培训
  • 许昌公司做网站百度公司
  • 响应式门户网站模板上海比较好的seo公司
  • 网络工作室可以做房产网站吗武汉网站开发公司seo
  • 静态购物网站模版最新收录查询
  • 网站建设什么公司好百度收录查询
  • 幼儿园宣传网站怎么做如何申请域名
  • 不属于网站架构app拉新推广平台
  • 淘宝网怎样做网站外贸订单一般在哪个平台接
  • 太原做网站baidu网上学电脑培训中心
  • 河南省建设厅处长名单网站打开速度优化
  • vs中新建网站和新建web项目的区别做百度推广
  • 2015做导航网站有哪些行业网站有哪些平台
  • 自己做影视网站无锡seo
  • 网站图片是用什么软件做的免费制作小程序平台
  • 厦门专业网站建设建站营销手机都有什么功能啊
  • 广州番禺职业技术学院门户网站沈阳网络seo公司
  • 网站什么意思网站建设策划书案例
  • 餐饮门户网站 方案怎么做郑州竞价托管代运营
  • 黑龙江省建设网官方网站沈阳百度推广排名优化
  • 寻找移动网站建设怎么样推广自己的店铺和产品
  • 网站建设宣传单素材搜索引擎推广培训
  • 网页升级紧急通知直播网络优化工程师需要学什么
  • 镇江模板网站站长工具国产
  • 提升了自己的网站品牌公关公司
  • 合肥专业网站建设百度网址大全电脑版
  • 自己公司网站设计cms系统
  • 福州网站建设优化ks数据分析神器
  • 日本做a的动画视频网站有哪些抖音seo排名系统