嘉兴网站建设方案优化/百度网站域名

嘉兴网站建设方案优化,百度网站域名,网站建设好之后都有哪些推广方法,电脑工具wordpress链接 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://www.mzph.cn/news/896285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux时间日期类指令

1、data指令 基本语法&#xff1a; date &#xff1a; 显示当前时间date %Y : 显示当前年份date %m &#xff1a; 显示当前月份date %d &#xff1a; 显示当前哪一天date “%Y-%m-%d %H:%M:%S" &#xff1a; 显示年月日时分秒date -s 字符串时间 &#xff1a; 设置系统时…

SQLMesh 系列教程9- 宏变量及内置宏变量

SQLMesh 的宏变量是一个强大的工具&#xff0c;能够显著提高 SQL 模型的动态化能力和可维护性。通过合理使用宏变量&#xff0c;可以实现动态时间范围、多环境配置、参数化查询等功能&#xff0c;从而简化数据模型的开发和维护流程。随着数据团队的规模扩大和业务复杂度的增加&…

鹏哥c语言数组(初阶数组)

前言&#xff1a; 对应c语言视频54集 内容&#xff1a; 一维数组的创建 数组是一组相同元素的集合&#xff0c; 数组的创建方式 type_t就是数组的元素类型&#xff0c;const_n是一个常量表达式&#xff0c;用来指定数组的大小 c99标准之前的&#xff0c;数组的大小必须是…

计算机视觉:经典数据格式(VOC、YOLO、COCO)解析与转换(附代码)

第一章&#xff1a;计算机视觉中图像的基础认知 第二章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(一) 第三章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(二) 第四章&#xff1a;搭建一个经典的LeNet5神经网络(附代码) 第五章&#xff1…

linux--多进程基础(2)GDB多进程调试(面试会问)

将其中的命令记住就行。 总结&#xff1a;GDB下默认调试父进程&#xff0c;可以设置调试父进程还是子进程&#xff0c;也可以设置调试模式&#xff0c;调试模式默认是on即一个在调试另一个直接运行&#xff0c;off就是另一个进程挂起&#xff0c;最后可以查看调试进程 一般默认…

【复习】Redis

数据结构 Redis常见的数据结构 String&#xff1a;缓存对象Hash&#xff1a;缓存对象、购物车List&#xff1a;消息队列Set&#xff1a;点赞、共同关注ZSet&#xff1a;排序 Zset底层&#xff1f; Zset底层的数据结构是由压缩链表或跳表实现的 如果有序集合的元素 < 12…

Git add --- error: Filename too long

0 Preface/Foreword 1 解决办法 git config --system core.longpaths true

qt-C++笔记之创建和初始化 `QGraphicsScene` 和 `QGraphicsView` 并关联视图和场景的方法

qt-C++笔记之创建和初始化 QGraphicsScene 和 QGraphicsView 并关联视图和场景的方法 code review! 参考笔记 1.qt-C++笔记之创建和初始化 QGraphicsScene 和 QGraphicsView 并关联视图和场景的方法 2.qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到vie…

Win32/ C++ 简易对话框封装框架(多语言, 通知栏菜单, 拖拽文件处理)

Win32 简易对话框封装简易框架示例 1. 菜单操作: 多语言 2. 通知栏图标菜单 3. 其他操作: 接受拖拽文件等等 CDialogFrame.h #pragma once #include "CWindow/CDialogBase.h" #include "CNSFHeader.h" #include "Win32Utils/CBytesUtils.h" …

如何在WordPress网站中查看移动版本—快速预览与自定义设置

在WordPress网站的构建过程中&#xff0c;确保网站在移动端的显示效果至关重要。毕竟&#xff0c;随着越来越多的用户通过手机访问互联网&#xff0c;一个优化良好的移动版网站将直接影响用户的留存率和访问体验。 如果你是WordPress网站的所有者&#xff0c;本文将向你介绍如…

课程1. 深度学习简介

课程1. 深度学习简介 神经网络结构逻辑回归XOR问题&#xff08;异或问题&#xff09; 中间特征的生成全连接神经网络中间网络层的激活函数Sigmoid函数Tanh函数ReLU函数其它激活函数 使用全连接神经网络解决 XOR 问题神经网络用于回归问题训练神经网络 不同类型的神经网络 附加材…

数据结构 1-2 线性表的链式存储-链表

1 原理 顺序表的缺点&#xff1a; 插入和删除移动大量元素数组的大小不好控制占用一大段连续的存储空间&#xff0c;造成很多碎片 链表规避了上述顺序表缺点 逻辑上相邻的两个元素在物理位置上不相邻 头结点 L&#xff1a;头指针 头指针&#xff1a;链表中第一个结点的存储…

Kubernetes开发环境minikube | 开发部署MySQL单节点应用

minikube是一个主要用于开发与测试Kubernetes应用的运行环境 本文主要描述在minikube运行环境中部署MySQL单节点应用 minikube start --force kubectl get nodes 如上所示&#xff0c;启动minikube单节点运行环境 minikube ssh docker pull 如上所示&#xff0c;从MySQL官…

DeepSeek 助力 Vue 开发:打造丝滑的二维码生成(QR Code)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

一文详解U盘启动UEFI/Legacy方式以及GPT/MBR关系

对于装系统的老手而说一直想研究一下装系统的原理&#xff0c;以及面对一些问题时的解决思路&#xff0c;故对以前的方法进行原理上的解释&#xff0c;主要想理解其底层原理。 引导模式 MBR分区可以同时支持UEFI和Legacy引导&#xff0c;我们可以看一下微pe制作的启动盘&#…

一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili flask3提供了session,g和current_app上下文全局变量来方便我们操作访问数据。 以下是一个表格&#xff0c;用于比较Flask中的…

antv G6绘制流程图

效果图&#xff08;优点&#xff1a;可以自定义每一条折线的颜色&#xff0c;可以自定义节点的颜色&#xff0c;以及折线的计算样式等&#xff09;&#xff1a; 代码&#xff1a; <!-- 流程图组件 --> <template><div id"container"></div>…

DeepSeek-R1本地部署保姆级教程

一、DeepSeek-R1本地部署配置要求 &#xff08;一&#xff09;轻量级模型 ▌DeepSeek-R1-1.5B 内存容量&#xff1a;≥8GB 显卡需求&#xff1a;支持CPU推理&#xff08;无需独立GPU&#xff09; 适用场景&#xff1a;本地环境验证测试/Ollama集成调试 &#xff08;二&a…

2025-spring boot 之多数据源管理

1、是使用Spring提供的AbstractRoutingDataSource抽象类 注入多个数据源。 创建 DataSourceConfig 配置类 通过spring jdbc 提供的带路由的抽象数据源 AbstractRoutingDataSource import org.springframework.beans.factory.annotation.Autowired; import org.springframew…

项目实战--网页五子棋(匹配模块)(4)

上期我们完成了游戏大厅的前端部分内容&#xff0c;今天我们实现后端部分内容 1. 维护在线用户 在用户登录成功后&#xff0c;我们可以维护好用户的websocket会话&#xff0c;把用户表示为在线状态&#xff0c;方便获取到用户的websocket会话 package org.ting.j20250110_g…