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

织梦手机网站教程视频教程兰州关键词优化排名

织梦手机网站教程视频教程,兰州关键词优化排名,百度做app的网站,做网站哪家公司比较好而且不贵讯飞星火大模型#xff0c;通过websocket方式通信传递协议要求的报文#xff0c;然后将流式返回的报文拼接为完整的响应内容#xff0c;status2时是最后一条消息。因为是websocket方式所以是异步响应的#xff0c;如果想要同步需要使用CountDownLatch控制下线程等待最后一条…讯飞星火大模型通过websocket方式通信传递协议要求的报文然后将流式返回的报文拼接为完整的响应内容status2时是最后一条消息。因为是websocket方式所以是异步响应的如果想要同步需要使用CountDownLatch控制下线程等待最后一条消息处理完再继续往下走。星火不同版本稍微有一些差异具体以官网提供的demo为准。 具体步骤 首先,需要在公网创建应用然后查看服务接口认证信息APPID、APISecret、APIKey、URL。 https://console.xfyun.cn/services/bm3 点应用名称进去查看详情 然后点“文档”查看报文协议可以下载调用示例使用Java代码调用星火api https://www.xfyun.cn/doc/spark/Web.html 下面仅仅是个示例具体代码要根据官网最新文档确定。注意domain在1.523版本分别传general,generalv2,generalv3传错了会报错10404。另外如果想同步返回结果需要自己使用CountDownLatch控制主线程等待一段时间 countDownLatch.await(30000, TimeUnit.MILLISECONDS); 这样会在指定的最大超时时间内等待。 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import okhttp3.*;import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.io.IOException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.*;/*** 带历史会话的示例*/ public class BigModelNew extends WebSocketListener {// 地址与鉴权信息 https://spark-api.xf-yun.com/v1.1/chat 1.5地址 domain参数为general// 地址与鉴权信息 https://spark-api.xf-yun.com/v2.1/chat 2.0地址 domain参数为generalv2public static final String hostUrl https://spark-api.xf-yun.com/v1/chat;public static final String appid 1234;public static final String apiSecret xxxxx;public static final String apiKey xxxxxxxxxx;public static final String domain general; //1.523版本分别传general,generalv2,generalv3传错了会报错10404public static ListRoleContent historyListnew ArrayList(); // 对话历史存储集合public static String totalAnswer; // 大模型的答案汇总// 环境治理的重要性 环保 人口老龄化 我爱我的祖国public static String NewQuestion ;public static final Gson gson new Gson();// 个性化参数private String userId;private Boolean wsCloseFlag;private static Boolean totalFlagtrue; // 控制提示用户是否输入// 构造函数public BigModelNew(String userId, Boolean wsCloseFlag) {this.userId userId;this.wsCloseFlag wsCloseFlag;}// 主函数public static void main(String[] args) throws Exception {// 个性化参数入口如果是并发使用可以在这里模拟while (true){if(totalFlag){Scanner scannernew Scanner(System.in);System.out.print(我);totalFlagfalse;NewQuestionscanner.nextLine();// 构建鉴权urlString authUrl getAuthUrl(hostUrl, apiKey, apiSecret);OkHttpClient client new OkHttpClient.Builder().build();String url authUrl.toString().replace(http://, ws://).replace(https://, wss://);Request request new Request.Builder().url(url).build();for (int i 0; i 1; i) {totalAnswer;WebSocket webSocket client.newWebSocket(request, new BigModelNew(i ,false));}}else{Thread.sleep(200);}}}public static boolean canAddHistory(){ // 由于历史记录最大上线1.2W左右需要判断是能能加入历史int history_length0;for(RoleContent temp:historyList){history_lengthhistory_lengthtemp.content.length();}if(history_length12000){historyList.remove(0);historyList.remove(1);historyList.remove(2);historyList.remove(3);historyList.remove(4);return false;}else{return true;}}// 线程来发送音频与参数class MyThread extends Thread {private WebSocket webSocket;public MyThread(WebSocket webSocket) {this.webSocket webSocket;}public void run() {try {JSONObject requestJsonnew JSONObject();JSONObject headernew JSONObject(); // header参数header.put(app_id,appid);header.put(uid,UUID.randomUUID().toString().substring(0, 10));JSONObject parameternew JSONObject(); // parameter参数JSONObject chatnew JSONObject();chat.put(domain, domain);chat.put(temperature,0.5);chat.put(max_tokens,4096);parameter.put(chat,chat);JSONObject payloadnew JSONObject(); // payload参数JSONObject messagenew JSONObject();JSONArray textnew JSONArray();// 历史问题获取if(historyList.size()0){for(RoleContent tempRoleContent:historyList){text.add(JSON.toJSON(tempRoleContent));}}// 最新问题RoleContent roleContentnew RoleContent();roleContent.roleuser;roleContent.contentNewQuestion;text.add(JSON.toJSON(roleContent));historyList.add(roleContent);message.put(text,text);payload.put(message,message);requestJson.put(header,header);requestJson.put(parameter,parameter);requestJson.put(payload,payload);// System.err.println(requestJson); // 可以打印看每次的传参明细webSocket.send(requestJson.toString());// 等待服务端返回完毕后关闭while (true) {// System.err.println(wsCloseFlag ---);Thread.sleep(200);if (wsCloseFlag) {break;}}webSocket.close(1000, );} catch (Exception e) {e.printStackTrace();}}}Overridepublic void onOpen(WebSocket webSocket, Response response) {super.onOpen(webSocket, response);System.out.print(大模型);MyThread myThread new MyThread(webSocket);myThread.start();}Overridepublic void onMessage(WebSocket webSocket, String text) {// System.out.println(userId 用来区分那个用户的结果 text);JsonParse myJsonParse gson.fromJson(text, JsonParse.class);if (myJsonParse.header.code ! 0) {System.out.println(发生错误错误码为 myJsonParse.header.code);System.out.println(本次请求的sid为 myJsonParse.header.sid);webSocket.close(1000, );}ListText textList myJsonParse.payload.choices.text;for (Text temp : textList) {System.out.print(temp.content);totalAnswertotalAnswertemp.content;}if (myJsonParse.header.status 2) {// 可以关闭连接释放资源System.out.println();System.out.println(*************************************************************************************);if(canAddHistory()){RoleContent roleContentnew RoleContent();roleContent.setRole(assistant);roleContent.setContent(totalAnswer);historyList.add(roleContent);}else{historyList.remove(0);RoleContent roleContentnew RoleContent();roleContent.setRole(assistant);roleContent.setContent(totalAnswer);historyList.add(roleContent);}wsCloseFlag true;totalFlagtrue;}}Overridepublic void onFailure(WebSocket webSocket, Throwable t, Response response) {super.onFailure(webSocket, t, response);try {if (null ! response) {int code response.code();System.out.println(onFailure code: code);System.out.println(onFailure body: response.body().string());if (101 ! code) {System.out.println(connection failed);System.exit(0);}}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}// 鉴权方法public static String getAuthUrl(String hostUrl, String apiKey, String apiSecret) throws Exception {URL url new URL(hostUrl);// 时间SimpleDateFormat format new SimpleDateFormat(EEE, dd MMM yyyy HH:mm:ss z, Locale.US);format.setTimeZone(TimeZone.getTimeZone(GMT));String date format.format(new Date());// 拼接String preStr host: url.getHost() \n date: date \n GET url.getPath() HTTP/1.1;// System.err.println(preStr);// SHA256加密Mac mac Mac.getInstance(hmacsha256);SecretKeySpec spec new SecretKeySpec(apiSecret.getBytes(StandardCharsets.UTF_8), hmacsha256);mac.init(spec);byte[] hexDigits mac.doFinal(preStr.getBytes(StandardCharsets.UTF_8));// Base64加密String sha Base64.getEncoder().encodeToString(hexDigits);// System.err.println(sha);// 拼接String authorization String.format(api_key\%s\, algorithm\%s\, headers\%s\, signature\%s\, apiKey, hmac-sha256, host date request-line, sha);// 拼接地址HttpUrl httpUrl Objects.requireNonNull(HttpUrl.parse(https:// url.getHost() url.getPath())).newBuilder().//addQueryParameter(authorization, Base64.getEncoder().encodeToString(authorization.getBytes(StandardCharsets.UTF_8))).//addQueryParameter(date, date).//addQueryParameter(host, url.getHost()).//build();// System.err.println(httpUrl.toString());return httpUrl.toString();}//返回的json结果拆解class JsonParse {Header header;Payload payload;}class Header {int code;int status;String sid;}class Payload {Choices choices;}class Choices {ListText text;}class Text {String role;String content;}class RoleContent{String role;String content;public String getRole() {return role;}public void setRole(String role) {this.role role;}public String getContent() {return content;}public void setContent(String content) {this.content content;}} }pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdbig_model/artifactIdversion1.0-SNAPSHOT/versionbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdconfigurationsource8/sourcetarget8/target/configuration/plugin/plugins/buildpropertiesjava.version1.8/java.version/propertiesdependencies!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.67/version/dependency!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --dependencygroupIdcom.google.code.gson/groupIdartifactIdgson/artifactIdversion2.8.5/version/dependency!-- https://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket --dependencygroupIdorg.java-websocket/groupIdartifactIdJava-WebSocket/artifactIdversion1.3.8/version/dependency!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp --dependencygroupIdcom.squareup.okhttp3/groupIdartifactIdokhttp/artifactIdversion4.10.0/version/dependency!-- https://mvnrepository.com/artifact/com.squareup.okio/okio --dependencygroupIdcom.squareup.okio/groupIdartifactIdokio/artifactIdversion2.10.0/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversionRELEASE/versionscopecompile/scope/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.25/version/dependency/dependencies/project# Global logging configuration log4j.rootLoggerDEBUG, stdout # Console output... log4j.appender.stdoutorg.apache.log4j.ConsoleAppender log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern%5p [%t] - %m%n
http://www.pierceye.com/news/147826/

相关文章:

  • 温岭做网站公司开发一个企业官网多少钱
  • 宿迁明远建设有限公司网站赣州58同城网招聘找工作
  • 网站未续费到期后打开会怎样wordpress 顶部栏 悬浮
  • 内部优惠券网站怎么做大连网站制作建设
  • 经营虚拟网站策划书福建设备公司网站
  • 网站建设费用明细报价wordpress暗箱
  • 南宁网站建公司电话福州建站服务
  • 有没有什么推荐的网站用 php网站建设打出一首古诗
  • 品牌网站建设浩森宇特wordpress 首页 缩略图
  • 一个主机可以做几个网站域名织梦cms网站更新
  • 知名网站有哪些网站开发是什么环境
  • 哪些网站是用wordpress开发一款视频app多少钱
  • 济南网站定制制作建设项目 环评申报网站
  • 无锡响应式网站设计wordpress站群管理系统
  • 主题网站策划设计书网络营销是什么的一项活动
  • python+网站开发实例教程免费做视频网站
  • 免费建站自己的网址美化网站公司
  • 做购物网站哪个cms好用网络规划与设计就业前景
  • wordpress仿站工具网站建设jw100
  • 网站推广过程叙述关键词歌词
  • vip影视网站如何做appwordpress centos查看目录
  • 网站怎么套模板山西seo博客
  • 好看的手机网站推荐新建的网站 找不到
  • 网站站内搜索怎么做seo搜索优化
  • 建设部网站 测绘规章pc网站手机网站
  • 建网站如何赚钱vs哪个版本做网站好
  • 新衡阳网站游戏软件开发公司简介
  • 湖南基础建设投资集团网站做体育最好的网站
  • 上海php网站开发公司wordpress 邮件认证
  • 教做香肠的网站张家港专业网站建设