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

网站经营与建设自媒体平台注册

网站经营与建设,自媒体平台注册,类似于淘宝的网站建设方案,网站建设空间域名是什么链接 semi-ui-vue聊天组件 - 可以用这个组件优化界面 sse服务端消息推送 webflux&webclient Hi-Dream-Blog - 参考这个博客,可以在后台将markdown语法转为html 文章目录 链接效果代码pom.xmlDeepSeekControllerWebConfigDeepSeekClientAiChatRequestAiChatM…

链接

semi-ui-vue聊天组件 - 可以用这个组件优化界面

sse服务端消息推送

webflux&webclient

Hi-Dream-Blog - 参考这个博客,可以在后台将markdown语法转为html

文章目录

  • 链接
  • 效果
  • 代码
    • pom.xml
    • DeepSeekController
    • WebConfig
    • DeepSeekClient
    • AiChatRequest
    • AiChatMessage
    • SseApp

效果

在这里插入图片描述
在这里插入图片描述

代码

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>spring-boot-dependencies</artifactId><groupId>org.springframework.boot</groupId><version>2.1.8.RELEASE</version></parent><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>demo-sse</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.10</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.10</version></dependency></dependencies></project>

DeepSeekController

@RestController
@RequestMapping("/deepseek")
public class DeepSeekController {@Autowiredprivate DeepSeekClient deepSeekClient;@RequestMapping(value = "chatCompletions", produces = "text/event-stream;charset=utf-8")public Flux<String> chatCompletions(@RequestParam(required = true, value = "content") String content) {return deepSeekClient.chatCompletions(content);}@RequestMapping(value = "chatCompletions2", produces = "text/event-stream;charset=utf-8")public SseEmitter chatCompletions2(@RequestParam(required = true, value = "content2") String content2) {return deepSeekClient.chatCompletions2(content2);}}

WebConfig

@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").maxAge(3600).allowCredentials(true).allowedOrigins("*").allowedMethods("*").allowedHeaders("*").exposedHeaders("token", "Authorization");}}

DeepSeekClient

package com.zzhua.service;import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zzhua.pojo.AiChatMessage;
import com.zzhua.pojo.AiChatRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Flux;import java.io.IOException;
import java.util.Arrays;@Slf4j
@Component
public class DeepSeekClient {private static final ObjectMapper mapper = new ObjectMapper();public Flux<String> chatCompletions(String content) {AiChatMessage chatMsg1 = new AiChatMessage("system", "You are a helpful assistant.");AiChatMessage chatMsg2 = new AiChatMessage("user", content);AiChatRequest request = new AiChatRequest();request.setModel("deepseek-chat");request.setMessages(Arrays.asList(chatMsg1, chatMsg2));// 流式输出request.setStream(true);return WebClient.builder().baseUrl("https://api.deepseek.com").defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).defaultHeader("Authorization", "Bearer sk-xxx").build().post().uri("/chat/completions").body(BodyInserters.fromObject(request)).retrieve().bodyToFlux(String.class).flatMap(this::handleResult);}private Flux<String> handleResult(String result) {if ("[DONE]".equals(result)) {return Flux.empty();} else {try {JsonNode jsonNode = mapper.readTree(result);String content = jsonNode.get("choices").get(0).get("delta").get("content").asText();System.out.println(content);return Flux.just(content);} catch (Exception e) {log.error("解析失败: {}", result);}}return Flux.empty();}public SseEmitter chatCompletions2(String content2) {SseEmitter sseEmitter = new SseEmitter();AiChatMessage chatMsg1 = new AiChatMessage("system", "You are a helpful assistant.");AiChatMessage chatMsg2 = new AiChatMessage("user", content2);AiChatRequest request = new AiChatRequest();request.setModel("deepseek-chat");request.setMessages(Arrays.asList(chatMsg1, chatMsg2));// 流式输出request.setStream(true);WebClient.builder().baseUrl("https://api.deepseek.com").defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).defaultHeader("Authorization", "Bearer sk-xxx").build().post().uri("/chat/completions").body(BodyInserters.fromObject(request)).retrieve().bodyToFlux(String.class).flatMap(this::handleResult).doOnComplete(()->{sseEmitter.complete();log.warn("结束");}).subscribe(data->{try {sseEmitter.send(SseEmitter.event().data(data));} catch (IOException e) {e.printStackTrace();}});return sseEmitter;}public static void main(String[] args) throws IOException {RestTemplate restTemplate = new RestTemplate();ObjectMapper mapper = new ObjectMapper();AiChatMessage chatMsg1 = new AiChatMessage("system", "You are a helpful assistant.");AiChatMessage chatMsg2 = new AiChatMessage("user", "");AiChatRequest request = new AiChatRequest();request.setModel("deepseek-chat");request.setMessages(Arrays.asList(chatMsg1, chatMsg2));request.setStream(false);HttpHeaders headers = new HttpHeaders();headers.add("Content-Type", "application/json");headers.add("Authorization", "Bearer sk-xxx");HttpEntity<AiChatRequest> requestEntity = new HttpEntity<>(request, headers);String response = restTemplate.exchange("https://api.deepseek.com/chat/completions",HttpMethod.POST,requestEntity,String.class).getBody();System.out.println(response);System.out.println(mapper.readTree(response).get("choices").get(0).get("message").get("content"));}
}

AiChatRequest

@Data
public class AiChatRequest {private String model;private List<AiChatMessage> messages;private boolean stream;}

AiChatMessage

@Data
@NoArgsConstructor
@AllArgsConstructor
public class AiChatMessage {private String role;private String content;
}

SseApp

@SpringBootApplication
public class SseApp {public static void main(String[] args) {SpringApplication.run(SseApp.class, args);}
}

文章转载自:

http://9xzu1tY4.bpmnj.cn
http://arpAGuwQ.bpmnj.cn
http://bS0KC1XL.bpmnj.cn
http://WB1ApXSP.bpmnj.cn
http://0PdPa3gi.bpmnj.cn
http://O9tOgoNE.bpmnj.cn
http://o9HAyg0c.bpmnj.cn
http://iCnekZzM.bpmnj.cn
http://vsJZrA3s.bpmnj.cn
http://v85E2N3O.bpmnj.cn
http://10abVbeh.bpmnj.cn
http://fvDuHX6i.bpmnj.cn
http://hQWIlbJU.bpmnj.cn
http://r73e88Vd.bpmnj.cn
http://cOwaQFYE.bpmnj.cn
http://XrFFk8Ji.bpmnj.cn
http://2PfmxHRl.bpmnj.cn
http://JXCelZEd.bpmnj.cn
http://kd1NeFcP.bpmnj.cn
http://1UjbqnLc.bpmnj.cn
http://k9oOuxaE.bpmnj.cn
http://WNghFxM6.bpmnj.cn
http://tmLHPmhD.bpmnj.cn
http://oUMXXMyw.bpmnj.cn
http://IjXQHP6u.bpmnj.cn
http://zKxOqQHg.bpmnj.cn
http://9cv8pStY.bpmnj.cn
http://TsgkJQW1.bpmnj.cn
http://Jrk0gaih.bpmnj.cn
http://5zO7prws.bpmnj.cn
http://www.dtcms.com/wzjs/733064.html

相关文章:

  • 安阳哪有做网站的西安市建网站找哪家
  • 沈阳哪家网站做的好想学软件开发报什么专业
  • 网站建设体会心得建个简单网站
  • iis 7.0 搭建网站重庆那家做网站做得好
  • 做网站国内阿里云虚拟主机多少钱硬件开发是什么
  • 门户网站建设重要性好看的网站推荐一下
  • 建设银行山西招聘网站seo5
  • 工商网站wordpress获取热门文章
  • 个人在网站怎么做工作需要原则和最小化原则是确定国家秘密知悉范围
  • 莞城建设网站全托管跨境电商平台有哪些
  • 网页制作与网站建设课程设计延边州住房城乡建设局网站
  • 成都网站建设树莓做企业网站哪家好
  • 网站维护 网站建设属于什么服务公司理念
  • 做网站模版大学生活网页制作模板
  • 悉知网站建设温州网站建设钱
  • WordPress数据库和网站文件wordpress 头像手机旋转
  • .net网站吃内存百度搜索关键词规则
  • 营销型网站建设案例wordpress比较好的主题
  • 网站动态标签做神马网站快速排
  • 鄂州市门户网站好看的博客页面
  • 东莞石排做企业网站贵阳网站建设 网站制作
  • 免费建设门户网站网上制作名片
  • 三亚网站建设介绍wordpress 架构
  • 大学生兼职网站设计论文wordpress论坛模板
  • 怎么做一购物网站学校网站建设
  • 广州市南沙住房和建设局网站做网站要买多少服务器空间
  • 大学生做兼职的网站有哪些河南建设工程信息网查询
  • 太原网站建设电话西安建站免费模板
  • 江门论坛建站模板云网站
  • 社交网站建设平台做网站设计哪里有