Web应用如何集成OpenAI开放能力实现ChatGPT的对话功能
Posted 程序员盒子技术团队
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web应用如何集成OpenAI开放能力实现ChatGPT的对话功能相关的知识,希望对你有一定的参考价值。
一、先看效果
目前程序员盒子Web应该已经基于OpenAI开放能力实现了一个用起来还比较流畅的AI智能对话机器人。
访问程序员盒子首页: 程序员盒子 - 助力编程学习提效
Ctrl + Enter 快捷键可唤醒AI助手:
我问:程序员盒子网站
AI回答:程序员盒子网站是一家专注于提供程序员需要的资源的网站。它提供了各种关于编程的资源,以及讨论、分享等社区功能,使用户可以更快更好的学习开发技能。程序员盒子网站收集了大量与编程相关的资料和内容,这些资料包括但不限于书籍、教程、技术文章、编程语言等。它还提供了一个交流平台,让用户可以相互分享经验,讨论技术问题,提出建议和解决问题。
如图对话所示,当我问到程序员盒子网站的时候,AI的回答却是对网站内容进行的一定分析之后给出了回复,这个回复内容在网上找不到的(也证明分析能力还是很强的,确实可以称为我的一个AI助手!)
那我们下来看下这样的对话能力我们改如何实现,即如何接入OpenAi的对话能力,自己实现一个ChatGPT的对话功能。
二、申请Token
大家自己如果有了解过的也知道OpenAi在访问账号、网络等对国内有限制,盒子对此作了一层简单的封装,让我们的对话能力接入变得非常简单。首先,在对话之前你需要先申请OpenAi接口请求Token,这个由程序员盒子cu.api接口平台提供技术支持:
接口文档地址: OpenAi Token国内获取API接口
盒子提供了后端请求的API与支持前端跨域请求的Jsonp API两个接口:
Java调用示例:
// 创建自己的token获取API(其中AK、SK在程序员盒子个人中心接口调用菜单下可以获取)
String tokenApi = String.format("https://www.coderutil.com/api/openai/getToken?access-key=%s&secret-key=%s", 盒子为你分配的AK, 盒子为你分配的SK);
// 请求获取token
String token = HttpClientUtil.get(tokenApi, String.class);
三、请求OpenAi 对话API实现对话能力
这里说前端如何实现,主要关心对话数据能力:
示例代码:
/**
* 聊天对话
*/
public Object chat(String input)
// 请求程序员盒子获取Token
String token = getTokenFromCoderUtilApi(ak, sk);
// 请求头参数
Map<String, String> headers = this.buildHeaders(token);
// 对话模型、输入 body
Map<String, Object> param = this.buildChatParam(input);
// openAi 对话接口
String completionsApi = "https://api.openai.com/v1/completions";
try
// 请求并返回对话结果
return HttpClientUtil.post(completionsApi, param, headers, Object.class);
catch (URISyntaxException e)
throw new RuntimeException(e);
/**
* 构造请求头
*/
private Map<String, String> buildHeaders(String token)
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
headers.put("Authorization", "Bearer ".concat(token));
return headers;
/**
* 构造请求参数
*/
private Map<String, Object> buildChatParam(String input)
Map<String, Object> param = new HashMap<>();
param.put("model", "text-davinci-003"); // 对话模型
param.put("prompt", input+"\\n");
param.put("max_tokens", 3000);
param.put("temperature", 0.8);
return param;
Done!!
以上是关于Web应用如何集成OpenAI开放能力实现ChatGPT的对话功能的主要内容,如果未能解决你的问题,请参考以下文章
科大讯飞回应薪酬回溯制度;OpenAI宣布开放API,开发人员可将ChatGPT集成到自己产品;Godot 4.0发布|极客头条...
科大讯飞回应薪酬回溯制度;OpenAI宣布开放API,开发人员可将ChatGPT集成到自己产品;Godot 4.0发布|极客头条