首页 > 其他分享 >ChatGpt API接口技术对接教程

ChatGpt API接口技术对接教程

时间:2023-05-21 10:05:15浏览次数:50  
标签:java 接口技术 tokens json API new import ChatGpt 现在

背景:

从去年十二月份到现在,chatgpt火了很长一段时间,是继Copliot之后又一个智能AI机器人,而且他的功能不限于写代码,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。

引用一段他自己的回复:ChatGPT是一种基于自然语言处理(NLP)的聊天机器人技术,它可以根据用户的输入来生成自然的回复。它使用了一种名为“GPT-4”的深度学习模型,可以根据上下文和历史记录来生成自然的回复。

ChatGpt API接口技术对接教程_java

调用形式:

url:http://c0b.cc/nIAWD4

method:post

header:{Content-Type:application/json}

Authorization: Bearer 你的key和secret

参数说明:

调用 openai.Completion.create 函数需要了解几个基本参数:

  • model: 要使用的模型的 ID,访问 OpenAI Docs Models 页面可以查看全部可用的模型
  • prompt: 生成结果的提示文本,即你想要得到的内容描述
  • max_tokens: 生成结果时的最大 tokens 数,不能超过模型的上下文长度,可以把结果内容复制到 OpenAI Tokenizer 来了解 tokens 的计数方式
  • temperature: 控制结果的随机性,如果希望结果更有创意可以尝试 0.9,或者希望有固定结果可以尝试 0.0
  • top_p: 一个可用于代替 temperature 的参数,对应机器学习中 nucleus sampling,如果设置 0.1 意味着只考虑构成前 10% 概率质量的 tokens
  • frequency_penalty: [控制字符的重复度] -2.0 ~ 2.0 之间的数字,正值会根据新 tokens 在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性(以恐怖故事为例)
    = -2.0:当早上黎明时,我发现我家现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在(频率最高字符是 “现”,占比 44.79%)
    = -1.0:他总是在清晨漫步在一片森林里,每次漫游每次每次游游游游游游游游游游游游游游游游游游游游游游游游游游游游游(频率最高字符是 “游”,占比 57.69%)
    = 0.0:当一道阴森的风吹过早晨的小餐馆时,一个被吓得发抖的人突然出现在门口,他的嘴唇上挂满血迹,害怕的店主决定给他一份早餐,却发现他的早餐里满是血渍。(频率最高字符是 “的”,占比 8.45%)
    = 1.0:一个熟睡的女孩被一阵清冷的风吹得不由自主地醒了,她看到了早上还未到来的黑暗,周围只有像诉说厄运般狂风呼啸而过。(频率最高字符是 “的”,占比 5.45%)
    = 2.0:每天早上,他都会在露台上坐着吃早餐。柔和的夕阳照耀下,一切看起来安详寂静。但是有一天,当他准备端起早食的时候发现胡同里清冷的风扑进了他的意识中并带来了不安全感…… (频率最高字符是 “的”,占比 4.94%)
  • presence_penalty: [控制主题的重复度] -2.0 ~ 2.0 之间的数字,正值会根据到目前为止是否出现在文本中来惩罚新 tokens,从而增加模型谈论新主题的可能性(以云课堂的广告文案为例)
    = -2.0:家长们,你们是否为家里的孩子学业的发展而发愁?担心他们的学习没有取得有效的提高?那么,你们可以放心,可以尝试云课堂!它是一个为从幼儿园到高中的学生提供的一个网络平台,可以有效的帮助孩子们提高学习效率,提升学习成绩,帮助他们在学校表现出色!让孩子们的学业发展更加顺利,家长们赶紧加入吧!(抓住一个主题使劲谈论)
    = -1.0:家长们,你们是否还在为孩子的学习成绩担忧?云课堂给你们带来了一个绝佳的解决方案!我们为孩子提供了专业的学习指导,从幼儿园到高中,我们都能帮助孩子们在学校取得更好的成绩!让孩子们在学习中更轻松,更有成就感!加入我们,让孩子们拥有更好的学习体验!(紧密围绕一个主题谈论)
    = 0.0:家长们,你们是否担心孩子在学校表现不佳?云课堂将帮助您的孩子更好地学习!云课堂是一个网络平台,为从幼儿园到高中的学生提供了全面的学习资源,让他们可以在学校表现出色!让您的孩子更加聪明,让他们在学校取得更好的成绩,快来云课堂吧!(相对围绕一个主题谈论)
    = 1.0:家长们,你们的孩子梦想成为最优秀的学生吗?云课堂就是你们的答案!它不仅可以帮助孩子在学校表现出色,还能够提供专业教育资源,助力孩子取得更好的成绩!让你们的孩子一路走向成功,就用云课堂!(避免一个主题谈论的太多)
    = 2.0:家长们,您有没有想过,让孩子在学校表现出色可不是一件容易的事?没关系!我们为您提供了一个优质的网络平台——云课堂!无论您的孩子是小学生、初中生还是高中生,都能够通过云课堂找到最合适的学习方法,帮助他们在学校取得优异成绩。快来体验吧!(最大程度避免谈论重复的主题)
  • stop: 最大长度为 4 的字符串列表,一旦生成的 tokens 包含其中的内容,将停止生成并返回结果
使用java调用封装接口

chatgpt API接口

1.请求方式:HTTP POST  GET

2.请求参数:

请求参数:method=&_o_args=

参数说明: 文本模式参数:&_o_args={"prompt": "中国队什么时候进世界杯","max_tokens":200} prompt 文本,max_token 词汇最大量
图片模式参数:&_o_args={"prompt":"地球","n":10} prompt 图片描述文本,n 返回图片数
api:openAI开放平台的接口名(如:v1/completions)
其它参数:参考官方平台接口文档,与官方的参数一致

3.公共参数:

名称

类型

必须

描述

key

String

调用key(必须以GET方式拼接在URL中)

secret

String

调用密钥 (复制:Taobaoapi2014 )

api_name

String

API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]

cache

String

[yes,no]默认yes,将调用缓存的数据,速度比较快

result_type

String

[json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读

lang

String

[cn,en,ru]翻译语言,默认cn简体中文

version

String

API版本 (查看接口调用演示

4.请求代码示例,支持高并发请求(CURL、PHP 、PHPsdk 、Java 、C# 、Python...)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.net.URLConnection;

public class Example {
	private static String readAll(Reader rd) throws IOException {
		StringBuilder sb = new StringBuilder();
		int cp;
		while ((cp = rd.read()) != -1) {
			sb.append((char) cp);
		}
		return  sb.toString();
	}
	public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {
		URL realUrl = new URL(url);
		URLConnection conn = realUrl.openConnection();
		conn.setDoOutput(true);
		conn.setDoInput(true);
		PrintWriter out = new PrintWriter(conn.getOutputStream());
		out.print(body);
		out.flush();
		InputStream instream = conn.getInputStream();
		try {
			BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
			String jsonText = readAll(rd);
			JSONObject json = new JSONObject(jsonText);
			return json;
		} finally {
			instream.close();
		}
	}
	public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {
		URL realUrl = new URL(url);
		URLConnection conn = realUrl.openConnection();
		InputStream instream = conn.getInputStream();
		try {
			BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
			String jsonText = readAll(rd);
			JSONObject json = new JSONObject(jsonText);
			return json;
		} finally {
			instream.close();
		}
	}
	public static void main(String[] args) throws IOException, JSONException {
		// 请求示例 url 默认请求参数已经URL编码处理
		String url = "https://api-gw.Taobaoapi2014.cn/ai/custom/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&method=";
		JSONObject json = getRequestFromUrl(url);
		System.out.println(json.toString());
	}

}

5.响应示例

{
	"response": {
		"id": "cmpl-6qY0bIoPXYs7nCMME3g9buaZcxbf6",
		"object": "text_completion",
		"created": 1677981805,
		"model": "text-davinci-003",
		"choices": [
			{
				"text": "\n\n按中国富豪榜排名,中国最有钱的人是马云。",
				"index": 0,
				"logprobs": null,
				"finish_reason": "stop"
			}
		],
		"usage": {
			"prompt_tokens": 16,
			"completion_tokens": 43,
			"total_tokens": 59
		}
	},
	"error": "",
	"reason": "",
	"error_code": "0000",
	"request_id": "1.6403f86cd67f6",
	"last_id": "1593583206"
}


标签:java,接口技术,tokens,json,API,new,import,ChatGpt,现在
From: https://blog.51cto.com/tbapi2014/6318617

相关文章

  • CCS提示: error #10008-D: cannot find file "Flash28335_API_V210.1ib
    1. 问题描述     2. 解决措施   在CCS安装路径下的库文件中没有"Flash28335_API_V210.1ib"这个文件。   把Flash28335_API_V210.1ib这个文件放到你ccs的安装路径下   类似如下所示的文件夹:      ......
  • 使用 Elasticsearch 的 REST API 来查询节点的内存使用情况
    curl-XGET'http://172.18.10.96:9200/_nodes/node-1/stats?pretty&human&filter_path=nodes.*.jvm.mem.heap_used_percent'{"nodes":{"WKECtNqYSuCKgHu-HNJTfg":{"jvm":{"mem":......
  • OpenAI 官宣首个 ChatGPT iOS 应用
    最近,OpenAI宣布推出官方iOS应用,允许用户随时随地访问其高人气AI聊天机器人,此举也打破了近几个月内苹果AppStore上充斥似是而非的山寨服务的窘境。该应用程序是ChatGPT的首个官方移动应用程序。ChatGPT软件程序在去年推出后迅速获得了超过1亿用户,这也让技术行业火速......
  • APIO2023 游记
    算法竞赛打APIO,就像,只能度过一个相对失败的人生。比赛打的不错。吃的很好。玩的也很开心。谢谢CCF。谢谢。我不怕天黑也不要来回让风吹动身上这山山水水最后这一回最后这一回最后这一回也没有任何因为......
  • 微博官方API使用教程【全流程教学】
    目录微博开发者身份认证创建自己的应用新应用的相关配置基本信息高级信息微博认证流程OAuth2.0认证(核心步骤)AccessToken授权有效期接口调用Demo(以评论接口为例)微博开发者身份认证访问微博开放平台,登录自己微博账号,登录之后首先需要完善开发者的基本信息。填写完成后提交即......
  • drf之APIView+序列化类+Response
    昨日回顾#0ser=BookSerialzier(instance=qs,many=True)---->ListSerializer[序列化对象,序列化对象]ser=BookSerialzier(instance=book)---->BookSerialzier#1定制序列化的字段之source,字段参数 -指定一个要序列化的对象中得字段-指定一个要序列化的对象中得方法,方......
  • 慎与ChatGpt聊天,会后悔!
    起因:    大无语事件啊家人们    大家还习惯使用chatGpt等AI工具为你整理文档或者搜一些资料吗,上点心吧,小心被AI坑了。    起初是偶然看到公司也有AI应用产品了,大家可以看看这个T-Chat(非公测产品),T-Chat是公司新出的一个AI产品,基于ChatGpt核心封装的一个便捷性聊天......
  • c++ socket API使用流程(转)
    原文:https://blog.csdn.net/weixin_43687811/article/details/122657720?spm=1001.2101.3001.6650.16&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-16-122657720-blog-121686590.pc_relevant_multi_platform_featuressor......
  • [RapidOCRWeb] 桌面版使用教程
    引言说明:桌面版指的是可以直接解压,双击即可运行的版本。通俗来说,对rapidocr_web做了打包,将相关依赖全部放到一个zip包中,不需要本地有额外的环境,降低使用门槛。下面会以Windows版为例,作简要说明。详情参见:RapidOCRWeb使用步骤下载对应的zip包目前已有的zip包如下:......
  • 基于ChatGPT和谷歌3D贴图的虚幻引擎5
    作者:githubdaily相信大家小时候躺在床上,都曾设想过这么一个场景:当你闭上眼睛时,感觉身心十分安宁,物理世界慢慢淡出,身体也随着变得飘逸,一切仿佛只剩下呼吸声和心跳声。一阵微风拂过,你缓缓睁开双眼,发现自己摆脱了地心引力,出现在了天空之上,只要一个想法,便可瞬间穿梭到地球上任意位......