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

技术支持 长沙网站建设-创研科技做电视网站需要多大的服务器

技术支持 长沙网站建设-创研科技,做电视网站需要多大的服务器,家具设计手绘,温州网站建设新手1、开始咯 我们来看看如何在 Spring Boot 中调用 OpenAI ChatGPT API。 我们将创建一个 Spring Boot 应用程序,该应用程序将通过调用 OpenAI ChatGPT API 生成对提示的响应。 2、OpenAI ChatGPT API 在开始具体讲解之前,让我们先探讨一下我们将在本教…

1、开始咯

我们来看看如何在 Spring Boot 中调用 OpenAI ChatGPT API。

我们将创建一个 Spring Boot 应用程序,该应用程序将通过调用 OpenAI ChatGPT API 生成对提示的响应。

2、OpenAI ChatGPT API

在开始具体讲解之前,让我们先探讨一下我们将在本教程中使用的 OpenAI ChatGPT API。我们将调用创建聊天完成 API 来生成对提示的响应。

2.1 API 参数与认证

我们看一下API的强制请求参数:

  • model:这是我们将向其发送请求的模型的版本。该模型有几个版本可用。我们将使用 gpt-3.5-turbo 模型,这是该模型公开的最新版本;
  • message:消息是对模型的提示。每条消息都需要两个字段:角色和内容。角色字段指定消息的发送者。请求中它将是“用户”,响应中它将是“助手”。内容字段是实际的消息。

为了使用 API 进行身份验证,我们将生成一个 OpenAI API 密钥。我们将在调用 API 时在 Authorization 标头中设置此密钥。

cURL 格式的示例请求如下所示:

$ curl https://api.openai.com/v1/chat/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer $OPENAI_API_KEY" \-d '{"model": "gpt-3.5-turbo","messages": [{"role": "user", "content": "Hello!"}]}'

此外,该 API 还接受许多可选参数来修改响应。

接着,我们将重点关注一个简单的请求,但让我们看一下一些有助于调整响应的可选参数:

  • n:如果我们想增加生成的响应数量,可以指定。默认值为 1;
  • temperature:控制响应的随机性。默认值为 1(最随机);
  • max_tokens:用于限制响应中令牌的最大数量。默认值是无穷大,这意味着响应将与模型可以生成的一样长。一般来说,最好将此值设置为合理的数字,以避免生成很长的响应并产生很高的成本。

2.2 API Response

API 响应将是一个带有一些元数据和选择字段的 JSON 对象。选择字段将是一个对象数组。每个对象都有一个文本字段,其中包含对提示的响应。

选择数组中的对象数量将等于请求中的可选 n 参数。如果未指定 n 参数,则选项数组将包含单个对象。

具体代码:

{"id": "chatcmpl-123","object": "chat.completion","created": 1677652288,"choices": [{"index": 0,"message": {"role": "assistant","content": "\n\n 来啦,老弟……"},"finish_reason": "stop"}],"usage": {"prompt_tokens": 9,"completion_tokens": 12,"total_tokens": 21}
}

响应中的使用字段将包含提示和响应中使用的令牌数量。这用于计算 API 调用的成本。

3、具体案例

我们将创建一个使用 OpenAI ChatGPT API 的 Spring Boot 应用程序。

为此,我们将创建一个 Spring Boot Rest API,该 API 接受提示作为请求参数,将其传递给 OpenAI ChatGPT API,并将响应作为响应正文返回。

3.1 添加依赖

首先,我们创建一个 Spring Boot 项目。我们需要该项目的 Spring Boot Starter Web 依赖:

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

3.2 DTO

接下来,我们创建一个与 OpenAI ChatGPT API 的请求参数对应的 DTO:

public class ChatRequest {private String model;private List<Message> messages;private int n;private double temperature;public ChatRequest(String model, String prompt) {this.model = model;this.messages = new ArrayList<>();this.messages.add(new Message("user", prompt));}// getters and setters
}

继续定义 Message 类:

public class Message {private String role;private String content;// constructor, getters and setters
}

然后,我们为响应创建一个 DTO:

public class ChatResponse {private List<Choice> choices;// constructors, getters and setterspublic static class Choice {private int index;private Message message;// constructors, getters and setters}
}

3.3 控制器

我们创建一个控制器,它将接受提示作为请求参数并返回响应作为响应正文:

@RestController
public class ChatController {@Qualifier("openaiRestTemplate")@Autowiredprivate RestTemplate restTemplate;@Value("${openai.model}")private String model;@Value("${openai.api.url}")private String apiUrl;@GetMapping("/chat")public String chat(@RequestParam String prompt) {// create a requestChatRequest request = new ChatRequest(model, prompt);// call the APIChatResponse response = restTemplate.postForObject(apiUrl, request, ChatResponse.class);if (response == null || response.getChoices() == null || response.getChoices().isEmpty()) {return "No response";}// return the first responsereturn response.getChoices().get(0).getMessage().getContent();}
}

分析一下代码中一些重要部分:

  • 我们使用 @Qualifier 注释来注入我们将在下一节中创建的 RestTemplate bean;
  • 使用 RestTemplate bean,我们使用 postForObject() 方法调用 OpenAI ChatGPT API。 postForObject() 方法将 URL、请求对象和响应类作为参数;
  • 最后,我们读取回复的选择列表并返回第一个回复。

3.4 RestTemplate

我们定义一个自定义 RestTemplate bean,它将使用 OpenAI API 密钥进行身份验证:

@Configuration
public class OpenAIRestTemplateConfig {@Value("${openai.api.key}")private String openaiApiKey;@Bean@Qualifier("openaiRestTemplate")public RestTemplate openaiRestTemplate() {RestTemplate restTemplate = new RestTemplate();restTemplate.getInterceptors().add((request, body, execution) -> {request.getHeaders().add("Authorization", "Bearer " + openaiApiKey);return execution.execute(request, body);});return restTemplate;}
}

3.5 Properties

在 application.properties 文件中提供 API 的属性:

openai.model=gpt-3.5-turbo
openai.api.url=https://api.openai.com/v1/chat/completions
openai.api.key=your-api-key

然后,就可以运行程序了。

4、总结

我们探索了 OpenAI ChatGPT API 以生成对提示的响应。我们创建了一个 Spring Boot 应用程序,它调用 API 来生成对提示的响应。

http://www.yayakq.cn/news/335606/

相关文章:

  • 下载wix做的网站山西焦煤集团公司网站
  • 网站建设中英文版网站后台管理模板下载
  • 职业教育网站建设方案河南做网站公司有哪些
  • 青岛seo网站关键词优化海口网红店
  • .网站链接策略做外贸网站哪家的好
  • 网站建设找天宇智能程序员一个月多少工资
  • 成都asp网站建设文学投稿网站平台建设
  • 济宁哪里做网站最便宜招平面设计师的招聘信息
  • 图书馆网站建设的作用如皋网站建设招标
  • 镇海建设银行网站推广网发布的信息准确吗
  • 织梦网站模版wordpress如何设置博客代码高亮
  • 成品网站 源码1688常平镇网站建设
  • 网站描述修改手工做火枪的网站
  • 网站的权限管理怎么做c 网站建设可视化实现
  • 文具网站建设规划书如何加快网站访问速度
  • 专业网站定制团队西安网络公司
  • 网站修改文案成全视频在线时间观看
  • 南宁网站制作建设中建国际建设有限公司官网
  • 盘州网站建设汕头信息网官网
  • 备案网站到期了怎么办wordpress靶机下载网站
  • 竹溪县县建设局网站电脑如何做ppt模板下载网站
  • 网站后台尺寸一般做多大的中交建设集团网站
  • 怎么做平台网站专门做钻石国外网站
  • 公司产品网站应该怎么做深圳市涂能装饰设计公司网站
  • 珠海集团网站建设焊接加工东莞网站建设
  • asp手机网站源码网络管理员网址
  • 手机如何制作一个网站网站前端切图做多个页面
  • 做地方旅游网站网站服务器 免费的吗
  • 加盟网站建设做网站建设需要会哪些
  • jquery效果网站网站设计确认函