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

萍乡网站优化广州seo教程

萍乡网站优化,广州seo教程,互联网站账户e服务平台,sem 优化软件整合很简单#xff0c;不过需要几个小条件 1.必须要有openai官方的key 2.国内需要有代理服务器或者国外的服务器把项目部署出去也没问题 我没有使用spring的springAI#xff0c;听说很方便#xff0c;日后有机会去体验体验#xff0c;我今天用了两种方式整合了gpt 1.Ch…整合很简单不过需要几个小条件 1.必须要有openai官方的key 2.国内需要有代理服务器或者国外的服务器把项目部署出去也没问题 我没有使用spring的springAI听说很方便日后有机会去体验体验我今天用了两种方式整合了gpt 1.Chatgpt-Java 项目简介 | Chatgpt-Java (unfbx.com) 这个巨巨巨方便整合gpt可以跟着官网的快速入门走一下就解决了 先导入maven依赖 dependencygroupIdcom.unfbx/groupIdartifactIdchatgpt-java/artifactIdversion1.1.5/version/dependency 然后我直接写接口 RestController RequestMapping(/ai) Api(tags ai) public class AiController {ApiOperation(ai对话)PostMapping(/test)public ResultResponse test(String msg){OpenAiClient openAiClient OpenAiClient.builder().apiKey(Arrays.asList(xxxxxxxxxxxxxxxxxxxxxxxxxxxxx)).build();Message message Message.builder().role(Message.Role.USER).content(msg).build();ChatCompletion chatCompletion ChatCompletion.builder().messages(Arrays.asList(message)).build();ChatCompletionResponse chatCompletionResponse openAiClient.chatCompletion(chatCompletion); // chatCompletionResponse.getChoices().forEach(e - { // System.out.println(e.getMessage()); // });return ResultResponse.success(chatCompletionResponse.getChoices());} } xxxxxxxxxxxxxxx自己替换成自己的key哈。 结束到这里就可以直接使用gpt了自己去postman测试一下就行。 2.直接给官网api发请求 首先3个dto类 Data NoArgsConstructor AllArgsConstructor public class ChatBotRequest {private String model;private ListMessage messages;private int n;private double temperature;private int max_tokens; } ------------------------------------------ Data AllArgsConstructor NoArgsConstructor public class ChatBotResponse {private ListChoice choices;DataAllArgsConstructorNoArgsConstructorpublic static class Choice {private int index;private Message message;} } ------------------------------------------ Data NoArgsConstructor AllArgsConstructor public class Message {private String role;private String content;} 其次配置一下config Configuration public class OpenAIChatGtpConfig {private final String openaiApiKey xxxxxxxxxxxxxxxxxxxxxxx;Beanpublic RestTemplate restTemplate() {RestTemplate restTemplate new RestTemplate();restTemplate.getInterceptors().add((request, body, execution) - {request.getHeaders().add(Authorization, Bearer openaiApiKey);return execution.execute(request, body);});return restTemplate;} } 最后依然是直接写接口 Api(tags chat) RestController RequestMapping(/chats) public class ChatBotController {Autowiredprivate RestTemplate restTemplate;ApiOperation(chat)PostMapping(/chat)public ChatBotResponse chat(RequestParam(prompt) String prompt) {ChatBotRequest request new ChatBotRequest(gpt-3.5-turbo,Arrays.asList(new Message(user, prompt)),1,0,100);ChatBotResponse chatBotResponse restTemplate.postForObject(https://api.openai.com/v1/chat/completions, request, ChatBotResponse.class);return chatBotResponse;} } 至此第二种整合方式也结束了其实就这种阻塞式整合真的很简单不过体验感其实比不上流式整合回头什么时候去试试流式整合。 Cannot resolve method ‘of’ in ‘List’ 或 找不到符号of 顺带今天碰见了一点小报错才知道Arrays.asList其实等同于List.of。不过List.of是jdk9里面新出的jdk8没有因此只能用自己的老东西Arrays.asList。 参考的是【BUG】Cannot resolve method ‘of‘ in ‘List‘ 或 找不到符号of非jdk8版本问题_cannot resolve method of in list-CSDN博客 两种整合方式都可以顺利连通不过此时我发现gpt竟然无法联系上下文。去网上找了很久发现原来暂时没有可以直接自己联系上下文的大模型因此得自己来做操作。感到疑惑可以看一下这个博客手把手教会你如何通过ChatGPT API实现上下文对话 - 个人文章 - SegmentFault 思否 原理很简单每次把之前得mes全部拼接起来直接开始实现吧 maven依赖: dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency RestController RequestMapping(/ai) Api(tags ai) public class AiController {public static final String token sk-proj-xElzheeQc3nqZrWm3J6lT3BlbkFJRCQpGjcqfdkj5jsdC1KM;private static final String CHAT_HISTORY_KEY chat_history;Autowiredprivate RedisTemplateString, String redisTemplate;Autowiredprivate AiService aiService;ApiOperation(ai对话)PostMapping(/tall)public ResultResponse tall(RequestParam(msg) String msg,RequestParam(userId) String userId) {String keyword CHAT_HISTORY_KEY _tall userId;ListOperationsString, String listOps redisTemplate.opsForList();Message userMessage Message.builder().role(Message.Role.USER).content(msg).build();ListString history listOps.range(keyword , 0, -1);ListMessage messages new ArrayList();for (String historicalMessage : history) {messages.add(Message.builder().role(Message.Role.USER).content(historicalMessage).build());}messages.add(userMessage);OpenAiClient openAiClient OpenAiClient.builder().apiKey(Arrays.asList(token)).build();ChatCompletion chatCompletion ChatCompletion.builder().messages(messages).model(gpt-3.5-turbo).build();ChatCompletionResponse chatCompletionResponse openAiClient.chatCompletion(chatCompletion);String gptResponse chatCompletionResponse.getChoices().get(0).getMessage().getContent();if(redisTemplate.opsForList().size(keyword ) 6){listOps.leftPop(keyword );}listOps.rightPush(keyword, user:msg); //指定role角色更有利于ai理解上下文信息listOps.rightPush(keyword, assistant:gptResponse);return ResultResponse.success(gptResponse);} }很简单就用了redis得list结构当作一个消息队列用记录最近得6条上下文每次拼接过去就好。 防止缓存一直占空间可以自己弄个定时器每天或者每个月清理一次消息队列。 先再自己得application上面加个开关注解: EnableScheduling SpringBootApplication() public class ExamsystemApplication extends SpringBootServletInitializer 然后直接写定时器: Component public class TimerTask {Autowiredprivate RedisTemplateString, String redisTemplate;Scheduled(cron 0 0 0 1 * ?) // 每个月1号的凌晨执行public void TaskMethod() {try {SetString keys redisTemplate.keys(chat_history*);redisTemplate.delete(keys);} catch (Exception e) {System.err.println(Failed to reset frequency: e.getMessage());}}}到现在ai也拥有上下文了爽歪歪。
http://www.w-s-a.com/news/588936/

相关文章:

  • 网站开发所需要的的环境客户关系管理的内涵
  • 优质做网站公司做软件的人叫什么
  • 徐州市徐州市城乡建设局网站首页网站建设刂金手指下拉十五
  • 建设游戏网站目的及其定位市场营销策略概念
  • 小学电教检查网站建设资料wordpress谷歌字体
  • 南通做网站的公司有哪些中国建筑论坛网
  • 技术支持 佛山网站建设wordpress不用ftp
  • 广州定制app开发wordpress配置搜索引擎优化
  • 兰州网站建设论坛四川建设网官网登录
  • 在线作图免费网站湖南批量出品机
  • 深圳做网站公司有哪些地方妇联加强网站平台建设
  • vps建设网站别人访问不了网页链接生成器
  • 网站建设一般要多少钱电商平台取名字大全
  • 怎么做网站封面上的图网站开发语言 微信接口
  • 免费观看网站建设优化安徽
  • 上海电商网站开发公司做婚恋网站的翻译好吗
  • 以网站建设为开题报告大数据技术就业前景
  • dw做网站字体 别人电脑显示青岛活动策划公司
  • 网站成立时间查询墨猴seo排名公司
  • 技术支持 随州网站建设苏州企业网站建设定制
  • 美食网站开发目的与意义网站开发环境选择
  • 青岛西海岸新区城市建设局网站开发板在null不可用
  • 企业信息管理系统免费seo优化个人博客
  • 做任务的设计网站泰州哪里做网站
  • 什么网站可以做设计赚钱吗南京十大软件公司排名
  • 网站开发时间进度北京有哪些著名网站
  • 深圳比较好的设计网站公司自己的网站到期域名如何续费
  • 温州做网站哪儿新云网站模版
  • 网站开发 视频存在哪检察院前期网站建设
  • 备案中的网站信息怎么填如何做分享赚钱的网站