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

简易制作网站网络营销所学课程

简易制作网站,网络营销所学课程,网络规划与设计试题,发稿平台渠道1、项目简介 Chatgpt-Java是OpenAI官方Api的Java SDK#xff0c;可以快速接入项目使用。支持OpenAI官方全部接口。 目前收获将2500star#x1f31f;。 开源地址#xff1a;https://github.com/Grt1228/chatgpt-java官方文档#xff1a;https://chatgpt-java.unfbx.com/最…1、项目简介 Chatgpt-Java是OpenAI官方Api的Java SDK可以快速接入项目使用。支持OpenAI官方全部接口。 目前收获将2500star。 开源地址https://github.com/Grt1228/chatgpt-java官方文档https://chatgpt-java.unfbx.com/最新版本1.1.2-beta0 dependencygroupIdcom.unfbx/groupIdartifactIdchatgpt-java/artifactIdversion1.1.2-beta0/version /dependency目前支持的功能 Dall-e-3FineTuneJobTTSChatCompletionWithPictureAI生成图片微调job文本转语音附加图片的ChatCompletion TikTokenChatCompletionsImagesSpeech To Text余额查询Token计算GPT-3.5、4.0对话模型GPT-3.0对话图片模型语音转文字语音翻译余额查询 EmbeddingsFilesModerationsFine-tuneModels嵌入自定义训练模型文本审核敏感词鉴别微调模型检索相关 OpenAi在上周更新了新的版本发布了很多新的功能包括GPT-4V、附加图片的ChatCompletion、指定返回数据格式、Tool Call、Dall-e-3生成图片、FineTuneJob、文本转语音TTS等等功能。 本周Chatgpt-Java同步更新支持最新的Api。 2、新版本更新 所以的新版本Api更新基于原有的OpenAiClient和OpenAiStreamClient所以构建客户端的当时是没有变化的。 创建Client如下 Slf4j public class OpenAiClientTest {private OpenAiClient client;private OpenAiStreamClient streamClient;Beforepublic void before() {HttpLoggingInterceptor httpLoggingInterceptor new HttpLoggingInterceptor(new OpenAILogger());//千万别再生产或者测试环境打开BODY级别日志//生产或者测试环境建议设置为这三种级别NONE,BASIC,HEADERS,httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);OkHttpClient okHttpClient new OkHttpClient.Builder().addInterceptor(httpLoggingInterceptor).addInterceptor(new OpenAiResponseInterceptor()).connectTimeout(10, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).build();client OpenAiClient.builder().apiKey(Arrays.asList(*********************)).okHttpClient(okHttpClient)//自己做了代理就传代理地址没有可不不传,(关注公众号回复openai 获取免费的测试代理地址).apiHost(https://*******/).build();streamClient OpenAiStreamClient.builder()//支持多key传入请求时候随机选择.apiKey(Arrays.asList(*********************)).okHttpClient(okHttpClient)//自己做了代理就传代理地址没有可不不传,(关注公众号回复openai 获取免费的测试代理地址).apiHost(https://*******/).build();} }2.1、附加图片的chatCompletion示例 2.1.1、阻塞请求 /*** 聊天模型支持图片流式示例*/ Test public void pictureChat() {Content textContent Content.builder().text(What’s in this image?).type(Content.Type.TEXT.getName()).build();ImageUrl imageUrl ImageUrl.builder().url(https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg).build();Content imageContent Content.builder().imageUrl(imageUrl).type(Content.Type.IMAGE_URL.getName()).build();ListContent contentList new ArrayList();contentList.add(textContent);contentList.add(imageContent);MessagePicture message MessagePicture.builder().role(Message.Role.USER).content(contentList).build();//#####请求参数使用ChatCompletionWithPicture类ChatCompletionWithPicture chatCompletion ChatCompletionWithPicture.builder().messages(Collections.singletonList(message)).model(ChatCompletion.Model.GPT_4_VISION_PREVIEW.getName()).build();ChatCompletionResponse chatCompletionResponse client.chatCompletion(chatCompletion);chatCompletionResponse.getChoices().forEach(e - System.out.println(e.getMessage())); }2.1.2、流式请求 /*** 聊天模型支持图片流式示例*/ Test public void pictureChatV2() {Content textContent Content.builder().text(What’s in this image?).type(Content.Type.TEXT.getName()).build();ImageUrl imageUrl ImageUrl.builder().url(https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg).build();Content imageContent Content.builder().imageUrl(imageUrl).type(Content.Type.IMAGE_URL.getName()).build();ListContent contentList new ArrayList();contentList.add(textContent);contentList.add(imageContent);MessagePicture message MessagePicture.builder().role(Message.Role.USER).content(contentList).build();ChatCompletionWithPicture chatCompletion ChatCompletionWithPicture.builder().messages(Collections.singletonList(message)).model(ChatCompletion.Model.GPT_4_VISION_PREVIEW.getName()).build();ChatCompletionResponse chatCompletionResponse client.chatCompletion(chatCompletion);chatCompletionResponse.getChoices().forEach(e - System.out.println(e.getMessage())); }2.1.3、注意事项 附加图片的chatCompletion暂时不支持以下简易接口请求 public void streamChatCompletion(List messages, EventSourceListener el)public ChatCompletionResponse chatCompletion(List messages) 2.2、ChatGPT指定返回Json格式 最新版的OpenAi接口支持执行数据返回格式。以下仅举例阻塞输出的方案流式输出一样的使用方法不再举例。 指定数据格式目前支持 json_objecttext 参考源码com/unfbx/chatgpt/entity/chat/ResponseFormat.java 2.2.1、请求 /*** 自定义返回数据格式*/ Test public void diyReturnDataModelChat() {Message message Message.builder().role(Message.Role.USER).content(随机输出10个单词使用json输出).build();ChatCompletion chatCompletion ChatCompletion.builder().messages(Collections.singletonList(message)).responseFormat(ResponseFormat.builder().type(ResponseFormat.Type.JSON_OBJECT.getName()).build()).model(ChatCompletion.Model.GPT_4_1106_PREVIEW.getName()).build();ChatCompletionResponse chatCompletionResponse client.chatCompletion(chatCompletion);chatCompletionResponse.getChoices().forEach(e - System.out.println(e.getMessage())); } {words: [aberration,nostalgia,quintessential,harmony,serendipity,benevolent,ephemeral,labyrinth,zenith,vivacious] }2.3、Dall-e-3生成图片AI绘画 最新版的OpenAi接口支持Dall-e-3模型生成图片功能更加强大。 2.3.1、请求 /*** 新版图片生成模型使用示例*/ Test public void generateImageByDall_e_3() {Image image Image.builder().responseFormat(com.unfbx.chatgpt.entity.images.ResponseFormat.URL.getName()).model(Image.Model.DALL_E_3.getName()).prompt(一个咖啡杯上面印刷Unfbx四个字母。).n(1).quality(Image.Quality.HD.getName()).size(SizeEnum.size_1024_1792.getName()).style(Image.Style.NATURAL.getName()).build();ImageResponse imageResponse client.genImages(image); // ImageResponse imageResponse client.genImages(一个咖啡杯上面印刷Unfbx四个字母。);System.out.println(imageResponse.getData().get(0).getUrl());} 2.4、FineTuneJob微调job OpenAi支持自定义训练专属模型通过FineTuneJob进行模型微调训练。 FineTuneJob支持的模型有 gpt-3.5-turbo-1106gpt-3.5-turbo-0613babbage-002gpt-4-0613davinci-002 更多详细参考源码com/unfbx/chatgpt/entity/fineTune/job/FineTuneJob.java 2.4.1、创建训练数据文件 创建文件格式为json1下面是一个示例文件fine_tune_test_file.json1 文件在github源码根目录文件内容 {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: chagpt-java好用么}, {role: assistant, content: 还行吧。}]} {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: chagpt-java最新版本是什么}, {role: assistant, content: 1.1.2版本}]} {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: chagpt-java支持流式输出么}, {role: assistant, content: 最新版支持流式输出}]} {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: chagpt-java的作者是谁}, {role: assistant, content: 作者是Unfbx个人网站https://www.unfbx.com}]} {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: Unfbx是chagpt-java的作者微信公众号是什么}, {role: assistant, content: 程序员的黑洞。}]} {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: Unfbx是chagpt-java的作者个人博客地址是什么}, {role: assistant, content: https://www.unfbx.com}]} {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: Unfbx是chagpt-java的作者chagpt-java官方地址是什么}, {role: assistant, content: https://chatgpt-java.unfbx.com}]} {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: Unfbx是chagpt-java的作者chagpt-java的github地址是什么}, {role: assistant, content: https://github.com/Grt1228/chatgpt-java}]} {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: Unfbx是chagpt-java的作者chagpt-java的简单介绍。}, {role: assistant, content: OpenAI官方Api的Java SDK可以快速接入项目使用。目前支持OpenAI官方全部接口**同时支持Tokens计算。参考文档[Tokens_README.md](https://github.com/Grt1228/chatgpt-java/blob/main/Tokens_README.md)**}]} {messages: [{role: system, content: OnBot是一个聊天机器人。}, {role: user, content: OpenAi的官方Java Sdk 是什么}, {role: assistant, content: chagpt-javagithub地址https://github.com/Grt1228/chatgpt-java}]} 2.4.2、上传文件 /*** fineTuneJob使用示例*/ Test public void uploadFile() {UploadFileResponse uploadFileResponse client.uploadFile(new java.io.File(fine_tune_test_file.json1));//返回文件的idfile-6KaBdtVlaassk9Y2P5ZjTqICSystem.out.println(uploadFileResponse.getId()); }2.4.3、创建微调job Test public void fineTuneJob() {//file-KaNQn5V9YHlLqVQzo8CUMdIr是文件上传返回的文件idFineTuneJobResponse fineTuneJobResponse client.fineTuneJob(file-KaNQn5V9YHlLqVQzo8CUMdIr);//返回job id ftjob-5WQr0bZ7grvjnY3Or2sqiixlSystem.out.println(fineTuneJobResponse.toString()); }2.4.4、查看微调job 2.4.4.1、详细信息 FineTuneJobResponse的fineTunedModel属性就是微调的模型id也是后续使用的模型id 需要主义只有FineTuneJob执行完成fineTunedModel属性才会有值job失败或者未执行完成此属性为null。 结合第4.0章节可以看到job的执行信息。 Test public void retrieveFineTuneJob() {//传入job idFineTuneJobResponse fineTuneJobResponse client.retrieveFineTuneJob(ftjob-5WQr0bZ7grvjnY3Or2sqiixl);System.out.println(fineTuneJobResponse); }2.4.4.2、job列表 支持分页查询 Test public void retrieveFineTuneJob() {// FineTuneJobListResponseFineTuneJobResponse jobListResponse client.fineTuneJobs(ftjob-cG7zIraBhAkq5Ybs7311lH7t, 5);FineTuneJobListResponseFineTuneJobResponse jobListResponse client.fineTuneJobs(null, 20);System.out.println(jobListResponse); }2.4.5、微调job执行进度查询 支持分页查询支持分页 Test public void fineTuneJobEvents() {FineTuneJobListResponseFineTuneJobEvent listResponse client.fineTuneJobEvents(ftjob-5WQr0bZ7grvjnY3Or2sqiixl, null, 20); // FineTuneJobListResponseFineTuneJobEvent listResponse client.fineTuneJobEvents(ftjob-5WQr0bZ7grvjnY3Or2sqiixl, ftevent-WwB8lpWxhjgUJX9DYdb47zJe, 20);listResponse.getData().forEach(e - System.out.println(e.getMessage())); }输出信息输出信息会返回创建的模型id这个就是后续使用的模型id。 The job has successfully completedNew fine-tuned model created: ft:gpt-3.5-turbo-1106:personal::8K5KwJTUStep 91/100: training loss0.45Step 81/100: training loss0.00Step 71/100: training loss0.00Step 61/100: training loss0.94Step 51/100: training loss0.19Step 41/100: training loss0.06Step 31/100: training loss0.95Step 21/100: training loss1.99Step 11/100: training loss2.50Step 1/100: training loss5.42Fine-tuning job startedFiles validated, moving job to queued stateValidating training file: file-KaNQn5V9YHlLqVQzo8CUMdIrCreated fine-tuning job: ftjob-5WQr0bZ7grvjnY3Or2sqiixl2.4.6、微调模型使用 注意model参数为自定义的模型id。此id会在fineTuneJobEvents完成后返回。 此id的获取有几种方式 1、fineTuneJobEvents接口完成后返回。2、通过3.1章节查询job详细信息可以获取模型idfineTunedModel属性。3、models接口返回参考第5章 Test public void fineTuneJobModelChat() {Message message1 Message.builder().role(Message.Role.SYSTEM).content(OnBot是一个聊天机器人。).build();Message message2 Message.builder().role(Message.Role.USER).content(OnBot请问Chatgpt-java的作者是谁).build();ListMessage messages new ArrayList(2);messages.add(message1);messages.add(message2);ChatCompletion chatCompletion ChatCompletion.builder().messages(messages).model(ft:gpt-3.5-turbo-1106:personal::8K5KwJTU).build();ChatCompletionResponse chatCompletionResponse client.chatCompletion(chatCompletion);chatCompletionResponse.getChoices().forEach(e - {System.out.println(e.getMessage());}); }输出信息 作者是Unfbx个人网站https://www.unfbx.com2.5、文本转语音TTS OpenAi最新接口支持TTS支持高清语音支持六种人声。 2.5.1、文本转语音 /*** tts使用示例*/ Test public void textToSpeed() {TextToSpeech textToSpeech TextToSpeech.builder().model(TextToSpeech.Model.TTS_1_HD.getName()).input(OpenAI官方Api的Java SDK可以快速接入项目使用。目前支持OpenAI官方全部接口同时支持Tokens计算。官方github地址https://github.com/Grt1228/chatgpt-java。欢迎star。).voice(TtsVoice.NOVA.getName()).responseFormat(TtsFormat.MP3.getName()).build();File file new File(C:\\Users\\***\\Desktop\\test.mp3);client.textToSpeech(textToSpeech, new CallbackResponseBody() {SneakyThrowsOverridepublic void onResponse(CallResponseBody call, ResponseResponseBody response) {InputStream inputStream response.body().byteStream();//创建文件if (!file.exists()) {if (!file.getParentFile().exists())file.getParentFile().mkdir();try {file.createNewFile();} catch (IOException e) {e.printStackTrace();log.error(createNewFile IOException);}}OutputStream os null;try {os new BufferedOutputStream(new FileOutputStream(file));byte data[] new byte[8192];int len;while ((len inputStream.read(data, 0, 8192)) ! -1) {os.write(data, 0, len);}} catch (IOException e) {e.printStackTrace();} finally {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}try {if (os ! null) {os.close();}} catch (IOException e) {e.printStackTrace();}}}Overridepublic void onFailure(CallResponseBody call, Throwable t) {}});CountDownLatch countDownLatch new CountDownLatch(1);try {countDownLatch.await();} catch (InterruptedException e) {e.printStackTrace();} }3、更多 访问项目开源地址https://github.com/Grt1228/chatgpt-java 点一点免费的star 获取更多SDK功能
http://www.zqtcl.cn/news/151792/

相关文章:

  • 琪觅公司网站开发中文网页开发工具
  • 教育网站制作设计成都网络营销公司
  • 怎么查看一个网站页面的seo优化情况网站建站建设首选上海黔文信息科技有限公司2
  • 威海网站建设价格深圳优美网络科技有限公司
  • 做网站用什么系统建设网站投资多少
  • 凡科建站官网 网络服务抚顺 网站建设
  • 学校网站的建设方案西安企业seo外包服务公司
  • 建设租车网站深圳ww
  • 推广网络网站潜江资讯网一手机版
  • 凡科网站自己如何做毕设 做网站
  • 一起做网站逛市场百度权重查询网站
  • 专业网站优化推广网站核查怎么抽查
  • 牡丹江站salong wordpress
  • 网站建设公司做网站要多少费用有哪些外国网站国内可以登录的
  • 天津建站平台网页制作免费的素材网站
  • 建设网站需要专业哪个企业提供电子商务网站建设外包
  • 公司网站建设及维护网站建设思维
  • 那个网站可以学做西餐17做网站广州沙河
  • 品牌网站建设哪里好京东网站建设案例
  • 亚马逊海外版网站深圳市工商注册信息查询网站
  • 新乐做网站优化网站上漂亮的甘特图是怎么做的
  • 新网站应该怎么做seo品牌推广方案思维导图
  • 想要网站导航推广页浅谈中兴电子商务网站建设
  • 免费引流在线推广成都网站优化费用
  • 老河口市网站佛山市点精网络科技有限公司
  • word模板免费网站seo引擎优化是做什么的
  • 办网站怎么赚钱鄠邑建站 网站建设
  • 宜春网站建设推广微信小程序开发
  • 巴南城乡建设网站免费网站建设软件大全
  • 湖南网站建设公公司没有自己的网站