DeepSeek API接口调用示例(开发语言C#,替换其中key值为自己的key值即可)
示例:
DeepSeek官方接口说明文档:对话补全 | DeepSeek API Docs
官网暂未提供C#代码实现:(以下为根据CURL接口C#代码调用)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using System.Net.Http;
using Newtonsoft.Json;
using System.Net;
using System.IO;namespace DeepSeekDemo
{// DeepSeek API接口(无免费试用,接口需付费开通)// https://api-docs.deepseek.com/zh-cn/api/create-chat-completionpublic class DeepSeekChatService{private const string API_KEY = "sk-b2eda36fc94032a966427d01a4e0**"; // 修改为自己申请的KEY值: https://platform.deepseek.com/api_keysprivate const string API_ENDPOINT = "https://api.deepseek.com/chat/completions";private const string CHAT_MODEL = "deepseek-chat"; // 根据实际模型名称修改private static readonly HttpClient _httpClient = new HttpClient();public async Task<string> ChatAsync(string userMessage){try{// 构造对话请求体var requestData = new{model = CHAT_MODEL,messages = new[]{new { role = "user", content = userMessage }},temperature = 1,max_tokens = 500};System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;string content = JsonConvert.SerializeObject(requestData);//string response0 = Request(API_ENDPOINT, API_KEY, content);//return response0;// 设置认证头_httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", API_KEY);// 发送请求var response = await _httpClient.PostAsync(API_ENDPOINT,new StringContent(content, Encoding.UTF8, "application/json"));// 处理响应if (response.IsSuccessStatusCode){var jsonResponse = await response.Content.ReadAsStringAsync();try{var result = JsonConvert.DeserializeObject<ChatResponse>(jsonResponse);return result.choices[0].message.content;}catch { return jsonResponse; }}else{return "API错误: " + response.StatusCode + "\r\n" + response.ToString();}}catch (Exception ex){return "请求异常: " + ex.Message + "\r\n" + ex.ToString();}}// 响应模型public class ChatResponse{public Choice[] choices { get; set; }public class Choice{public Message message { get; set; }}public class Message{public string role { get; set; }public string content { get; set; }}}//POST / HTTP/1.1//Content-Type: application/json;charset=UTF-8//Authorization: Bearer sk-b02eda3a6fc94032a9626427d0c1a4e0//Host: 127.0.0.1:30001//Content-Length: 120//Expect: 100-continue//{"model":"deepseek-chat","messages":[{"role":"user","content":"测试"}],"temperature":0.7,"max_tokens":500,"stream":false}public string ChatAsync2(string userMessage){try{// 构造对话请求体var requestData = new{model = CHAT_MODEL,messages = new[]{new { role = "user", content = userMessage }},temperature = 1,max_tokens = 500};System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;string content = JsonConvert.SerializeObject(requestData);string response0 = Request(API_ENDPOINT, API_KEY, content);return response0;}catch (Exception ex){return "请求异常: " + ex.Message + "\r\n" + ex.ToString();}}/// <summary>/// 执行http请求/// </summary>/// <param name="url">请求网址</param>/// <param name="postData">需要通过post提交的数据</param>/// <returns>返回服务器端响应结果</returns>public static string Request(string url, string API_KEY, string postData = null){string result = "";if (string.IsNullOrEmpty(url)) return "";try{// 创建Request请求var request = (HttpWebRequest)WebRequest.Create(url);// 提交POStT数据if (!string.IsNullOrEmpty(postData)){request.Method = "POST";request.ContentType = "application/json;charset=UTF-8";request.Headers.Add("Authorization: Bearer " + API_KEY);byte[] bytes = Encoding.UTF8.GetBytes(postData);request.ContentLength = bytes.Length;Stream stream = request.GetRequestStream();stream.Write(bytes, 0, bytes.Length);stream.Close();}// 获取返回的响应结果try{var response = (HttpWebResponse)request.GetResponse();if (response != null){Stream responseStream = response.GetResponseStream();StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);result = reader.ReadToEnd();reader.Close();responseStream.Close();}}catch (Exception){result = "4004, url对应的服务器,未返回响应信息!";}}catch (Exception ex){result = ex.ToString();//result = "4003, url对应的服务器,不存在!";}return result;}}}
因为deepseek官方API已经开始收费了,测试都要收费。所以又搜到了国家超算中心,支持暂时试用。就试了下。可以用。同样的接口实现。不同的参数。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using System.Net.Http;
using Newtonsoft.Json;
using System.Net;
using System.IO;namespace DeepSeekDemo
{// 国家互联网超算中心DeepSeek API接口(可免费试用,但模型非最新)//https://www.scnet.cn/ac/openapi/doc/2.0/moduleapi/api/chat.htmlpublic class DeepSeekChatService2{private const string API_KEY = "sk-Mjg5LTExNDEwNzMzMDg0LTE3NDYwOTkyNzgyOTc="; // 这个是我的,暂时还可以试用,后面试用量结束不续费会自动关闭。你修改为修改为自己申请的KEY值: https://www.scnet.cn/ui/llm/apikeysprivate const string API_ENDPOINT = "https://api.scnet.cn/api/llm/v1/chat/completions";//private const string CHAT_MODEL = "DeepSeek-R1-Distill-Qwen-7B"; // 根据实际模型名称修改 https://www.scnet.cn/ac/openapi/doc/2.0/moduleapi/tutorial/modulefee.htmlprivate const string CHAT_MODEL = "DeepSeek-R1-Distill-Qwen-32B"; private static readonly HttpClient _httpClient = new HttpClient();public async Task<string> ChatAsync(string userMessage){try{// 构造对话请求体var requestData = new{model = CHAT_MODEL,messages = new[]{new { role = "user", content = userMessage }},temperature = 1,max_tokens = 4096};System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;string content = JsonConvert.SerializeObject(requestData);//string response0 = Request(API_ENDPOINT, API_KEY, content);//return response0;// 设置认证头_httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", API_KEY);// 发送请求var response = await _httpClient.PostAsync(API_ENDPOINT,new StringContent(content, Encoding.UTF8, "application/json"));// 处理响应if (response.IsSuccessStatusCode){var jsonResponse = await response.Content.ReadAsStringAsync();try{var result = JsonConvert.DeserializeObject<ChatResponse>(jsonResponse);return result.choices[0].message.content;}catch { return jsonResponse; }}else{return "API错误: " + response.StatusCode + "\r\n" + response.ToString();}}catch (Exception ex){return "请求异常: " + ex.Message + "\r\n" + ex.ToString();}}// 响应模型public class ChatResponse{public Choice[] choices { get; set; }public class Choice{public Message message { get; set; }}public class Message{public string role { get; set; }public string content { get; set; }}}//POST / HTTP/1.1//Content-Type: application/json;charset=UTF-8//Authorization: Bearer sk-b02eda3a6fc94032a9626427d0c1a4e0//Host: 127.0.0.1:30001//Content-Length: 120//Expect: 100-continue//{"model":"deepseek-chat","messages":[{"role":"user","content":"测试"}],"temperature":0.7,"max_tokens":500,"stream":false}public string ChatAsync2(string userMessage){try{// 构造对话请求体var requestData = new{model = CHAT_MODEL,messages = new[]{new { role = "user", content = userMessage }},temperature = 1,max_tokens = 500};System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;string content = JsonConvert.SerializeObject(requestData);string response0 = Request(API_ENDPOINT, API_KEY, content);return response0;}catch (Exception ex){return "请求异常: " + ex.Message + "\r\n" + ex.ToString();}}/// <summary>/// 执行http请求/// </summary>/// <param name="url">请求网址</param>/// <param name="postData">需要通过post提交的数据</param>/// <returns>返回服务器端响应结果</returns>public static string Request(string url, string API_KEY, string postData = null){string result = "";if (string.IsNullOrEmpty(url)) return "";try{// 创建Request请求var request = (HttpWebRequest)WebRequest.Create(url);// 提交POStT数据if (!string.IsNullOrEmpty(postData)){request.Method = "POST";request.ContentType = "application/json;charset=UTF-8";request.Headers.Add("Authorization: Bearer " + API_KEY);byte[] bytes = Encoding.UTF8.GetBytes(postData);request.ContentLength = bytes.Length;Stream stream = request.GetRequestStream();stream.Write(bytes, 0, bytes.Length);stream.Close();}// 获取返回的响应结果try{var response = (HttpWebResponse)request.GetResponse();if (response != null){Stream responseStream = response.GetResponseStream();StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);result = reader.ReadToEnd();reader.Close();responseStream.Close();}}catch (Exception){result = "4004, url对应的服务器,未返回响应信息!";}}catch (Exception ex){result = ex.ToString();//result = "4003, url对应的服务器,不存在!";}return result;}}}
C#调用接口示例:
private void button1_Click(object sender, EventArgs e)
{button1.Enabled = false;button1.Text = "已发送";string Title = this.Text;this.Text += " - DeepSeek处理中,请稍后...";string chatContent = "有些人在想着怎么干活更省力,有些人在想着怎么捅刀更隐蔽,什么原因?";Chat(chatContent, respone =>{textOutPut.Text = respone.Replace("\n", "\r\n");button1.Enabled = true;button1.Text = "发送";this.Text = Title;});
}DeepSeekChatService2 chatService = new DeepSeekChatService2();
public async void Chat(string input, Action<string> callBack)
{// 使用示例var response = await chatService.ChatAsync(input);//Console.WriteLine(response);/* 预期响应格式示例:{"choices": [{"message": {"role": "assistant","content": "<think>
嗯,这个问题挺有意思的,为什么会有人想着怎么干活省力,而另一些人却想着怎么捅刀更隐蔽呢?首先,我需要理解这两类人的想法和他们背后的动机是什么。先说第一种人,想着怎么干活更省力。这部分人可能是出于以下几个原因。首先,效率。他们可能觉得如果能找到更高效的方法完成工作,可以节省时间和精力,从而提高生产力。比如说,使用工具、优化流程或者学习新的技能,这些都是为了减少重复劳动,提升工作效率。其次,可能是因为他们担心过度劳累或者受伤,所以想找更安全、更健康的工作方式。或者是他们对工作的兴趣不高,想要尽快完成任务,腾出时间去做其他事情。然后是第二种人,想着怎么捅刀更隐蔽,这部分人的动机可能比较复杂。首先,可能是因为他们对某种权威、体系或者权力结构感到不满。他们可能觉得现有的规则或者管理方式对他们不利,所以想通过“捅刀”的方式来表达不满或者破坏现状。另外,也有可能是出于自私的目的,想要获取更多的资源或者权力,通过破坏他人来达到自己的目的。“隐蔽”则可能是因为他们害怕被发现,所以选择偷偷摸摸的方式进行,避免引起注意或者受到惩罚。为什么会有人选择这两条完全不同的方向呢?可能是因为他们的价值观、背景、经历以及所处的环境不同。比如说,想着干活更省力的人可能处于一个鼓励创新、提高效率的工作环境中,而想着捅刀的人可能处于一个竞争激烈、勾心斗角的环境中,迫使他们采取更极端的方式。另外,这可能也与他们的个人性格有关。想着干活更省力的人可能更倾向于合作、解决问题,而想着捅刀的人可能更倾向于对抗、破坏。也有可能是他们对现状的不满程度不同,前者可能只是想优化自己的工作方式,而后者则是对整个体系的不信任或者敌意。还有一个角度是社会压力和个人目标的不同。想着干活更省力的人可能有明确的目标,希望通过提高效率来实现自己的职业发展或者个人成就。而想着捅刀的人可能感到挫败,认为现有的途径无法实现自己的目标,所以采取破坏性的方式来进行报复或者改变现状。此外,还可能有文化和教育背景的影响。不同的文化对工作和处事方式有不同的价值观,有些人可能受到鼓励去创新和提高效率,而另一些人可能在某些文化背景下被鼓励对抗和破坏。总的来说,这两种行为反映了一个人的内心世界、所处环境和对现状的态度。要想改变这种状况,可能需要从教育、社会环境、心理健康等多个方面入手,帮助人们找到建设性的方式来表达不满或者解决问题,而不是选择破坏性的行为。
</think>有些人想着如何干活更省力,是因为他们可能追求更高的工作效率、减轻工作负担,或者希望在工作中寻求更好的解决方案。而另一些人想着如何捅刀更隐蔽,则可能是出于对权力结构的不满、隐藏的动机,或者为了个人利益而采取的不当手段。这两种行为反映了个人的价值观、所处环境以及对问题的应对方式的不同。"}}]}*/if (callBack != null) callBack(response);
}
完整源码下载:DeepSeekDemo: DeepSeek API接口调用示例(开发语言C#)
相关文章:

DeepSeek API接口调用示例(开发语言C#,替换其中key值为自己的key值即可)
示例: DeepSeek官方接口说明文档:对话补全 | DeepSeek API Docs 官网暂未提供C#代码实现:(以下为根据CURL接口C#代码调用) using System; using System.Collections.Generic; using System.Linq; using System.Text; …...

远程调试---在电脑上devtools调试运行在手机上的应用
1、启动项目–以vite项目为例:先ipconfig查看ip地址 ,然后在vite中配置host为ip地址 2、手机上查看项目:保证手机和电脑在同一局域网, 在手机浏览器打开我们vite启动的项目地址, 3、使用chii进行远程调试 (1) 安装 npm install chii -g (2)启动 chii start -p 8080 (3)在…...

[git]如何关联本地分支和远程分支
主题 本文总结如何关联git本地分支和远程分支的相关知识点。 详情 查看本地分支 git branch 查看远程分支 git branch -r 查看所有分支(本地远程) git branch -a 查看本地分支及其关联的远程分支(如有) git branch -vv 关联本地分支到远程分支: git branch …...
集群/微服务/分布式
目录 介绍 集群 微服务 优点 缺点 如何管理和监控微服务架构中的多个微服务? 服务治理 配置管理 监控与告警 容器化与编排 安全管理 分布式 三者关系 分布式和集群的区别是什么? 概念 工作方式 节点角色 应用场景 故障处理 微服务 微…...
红黑树删除的实现与四种情况的证明
🧭 学习重点 删除节点的三种情况红黑树如何恢复性质四种修复情况完整可运行的 C 实现 一、红黑树删除的基础理解 红黑树删除比插入复杂得多,因为: 删除的是黑节点可能会破坏“从根到叶子黑节点数相等”的性质。删除红节点无需修复…...
【Spring AI 实战】基于 Docker Model Runner 构建本地化 AI 聊天服务:从配置到函数调用全解析
【Spring AI 实战】基于 Docker Model Runner 构建本地化 AI 聊天服务:从配置到函数调用全解析 前沿:本地化 AI 推理的新范式 随着大语言模型(LLM)应用的普及,本地化部署与灵活扩展成为企业级 AI 开发的核心需求。Do…...
前台--Android开发
在 Android 开发中,“前台(Foreground)” 是一个非常重要的概念,它用于描述当前用户正在与之交互的组件或应用状态。理解“前台”的含义有助于更好地管理资源、生命周期和用户体验。 ✅ 一、什么是前台? 简单定义&…...

跨境电商生死局:动态IP如何重塑数据生态与运营效率
凌晨三点的深圳跨境电商产业园,某品牌独立站运营总监李明(化名)正盯着突然中断的广告投放系统。后台日志显示,过去24小时内遭遇了17次IP封禁,直接导致黑五促销期间损失23%的预期流量。这并非个案——2023年跨境电商行业…...

springboot3+vue3融合项目实战-大事件文章管理系统-更新用户信息
在一下三个代码处进行修改 在UserController里面增加uadate方法 PutMapping ("/update")public Result update(RequestBody Validated User user){userService.update(user);return Result.success();}在userservice中增加update方法 void update(User user); 然…...

气象大模型光伏功率预测中的应用:从短期,超短期,中长期的实现与开源代码详解
1. 引言 光伏功率预测对于电力系统调度、能源管理和电网稳定性至关重要。随着深度学习技术的发展,大模型(如Transformer、LSTM等)在时间序列预测领域展现出强大能力。本文将详细介绍基于大模型的光伏功率预测方法,涵盖短期(1-6小时)、超短期(15分钟-1小时)和中长期(1天-1周…...

深度学习:智能车牌识别系统(python)
这是一个基于opencv的智能车牌识别系统,有GUI界面。程序能自动识别图片中的车牌号码,并支持中文和英文字符识别,支持选择本地图片文件,支持多种图片格式(jpg、jpeg、png、bmp、gif)。 下面,我将按模块功能对代码进行分段说明: 1. 导入模块部分 import tkinter as tk…...
[杂谈随感-13]: 人的睡眠,如何布置床的位置比较有安全?感?
睡眠环境中的床位布置直接影响心理安全感与睡眠质量,需从空间防御性、人体感知机制及环境心理学多维度综合设计。 以下基于科学原理与实践案例,系统解析床位布置的核心策略: 一、空间防御性布局:构建心理安全边界 背靠实体墙&a…...

DNS服务实验
该文章将介绍DNS服务的正向和反向解析实验、主从实验、转发服务器实验以及Web解析实验 正向解析实验:将域名解析为对应的IP地址 反向解析实验:将IP地址解析为对应的域名 主从实验:主服务器区域数据文件发送给从服务器,从服务器…...

visual studio 2015 安装闪退问题
参考链接: VS2012安装时启动界面一闪而过问题解决办法 visual studio 2015 安装闪退问题...

C语言复习--动态内存管理
下面我们来看C语言中的动态内存管理,在之后的数据结构中会运用到C语言中的指针,结构体和动态内存管理,所以这部分还是比较重要的.下面进入正题. 为什么要有动态内存分配 但是上面的两种方式开辟的内存的大小都是固定的.数组也是,在数组开辟之前一定要确定好数组大小,并且数组开…...
Python实例题:Python协程详解公开课
目录 Python实例题 题目 课程目标 课程内容规划 1. 课程开场(5 分钟) 2. 基础概念讲解(15 分钟) 并发与并行: 线程与进程: 3. Python 协程的实现方式(20 分钟) 生成器实现…...

青藏高原七大河流源区径流深、蒸散发数据集(TPRED)
时间分辨率 月空间分辨率 1km - 10km共享方式 开放获取数据大小 83.27 MB数据时间范围 1998-07-01 — 2017-12-31元数据更新时间 2024-07-22 数据集摘要 通过构建耦合积雪、冻土、冰川等冰冻圈水文物理过程的WEB-DHM模型(Water and Energy Budget-based Distribute…...
[学习]RTKLib详解:rtksvr.c与streamsvr.c
本文是 RTKLlib详解 系列文章的一篇,目前该系列文章还在持续总结写作中,以发表的如下,有兴趣的可以翻阅。 [学习] RTKlib详解:功能、工具与源码结构解析 [学习]RTKLib详解:pntpos.c与postpos.c [学习]RTKLib详解&…...
Docker使用小结
概念 镜像( Image ) :相当于一个 root 文件系统;镜像构建时,分层存储、层层构建;容器( Container ) :镜像是静态的定义,容器是镜像运行时的实体;…...

串口屏调试 1.0
http://wiki.tjc1688.com 先把商家的链接贴过来 淘晶驰T1系列3.2寸串口屏tft液晶屏显示屏HMI触摸屏超12864液晶屏 这是主包的型号 打开这个玩意 有十个基本的功能区 新建工程 在界面的右边,指令一定要写在page前面,这里的波特率等等什么的都可以…...

windows 环境下 python环境安装与配置
运行环境安装 第一步安装包下载 python开发工具安装包下载官网: https://www.python.org/ 根据自己的实际需求选择。 这里记录了各个版本的区别和差异。根据区别和差异选择适合自己的版本。 Windows Installer和Windows embeddable package是两种不同的软件包类…...

浅谈装饰模式
一、前言 hello大家好,本次打算简单聊一下装饰者模式,其实写有关设计模式的内容还是蛮有挑战性的,首先呢就是小永哥实力有限担心说不明白,其次设计模式是为了解决某些问题场景,在当前技术生态圈如此完善的情况下&#…...

LeetCode 270:在二叉搜索树中寻找最接近的值(Swift 实战解析)
文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在日常开发中,我们经常需要在一组有序的数据中快速找到最接近某个目标值的元素。LeetCode 第 270 题“Closest Binary Search Tree Value”正是这样一个问题。本文将深入解析该…...

WPF 3D图形编程核心技术解析
一、三维坐标系系统 WPF采用右手坐标系系统,空间定位遵循: X 轴 → 右 Y 轴 → 上 Z 轴 → 观察方向 X轴 \rightarrow 右\quad Y轴 \rightarrow 上\quad Z轴 \rightarrow 观察方向 X轴→右Y轴→上Z轴→观察方向 三维坐标值表示为 ( x , y , z ) (x, y,…...
分布式锁原理
1.锁是什么 一个线程拿到锁,另一个线程就拿不到,满足互斥性。 2.Redis的setnx实现 加锁后解锁,但是要先判断是否是当前线程持有的锁,只能释放本线程的锁。 先判断后释放,两步操作Lua实现原子性 3.为什么要给锁加过期…...

暗物质卯引力挂载技术
1、物体质量以及其所受到的引力约束(暗物质压力差) 自然界的所有物体,其本身都是没有质量的。我们所理解的质量,其实是物体球周空间的暗物质对物体的挤压,压力差。 对于宇宙空间中的单个星球而言,它的球周各处压力是相同的,所以,它处于平衡状态,漂浮在宇宙中。 对于星…...
实现三个采集板数据传送到一个显示屏的方案
实现三个采集板数据传送到一个显示屏的方案 要实现三个相同采集板的数据都传送到一个显示屏上,可行的方案: 方案:串行通信(推荐) 硬件连接: 使用RS485总线连接(适合较长距离)或使用…...

comfyui 如何优雅的从Hugging Face 下载模型,文件夹
如下图所示 使用git 下载整个仓库然后把需要的放到对应的位置...

通过user-agent来源判断阻止爬虫访问网站,并防止生成[ error ] NULL日志
一、TP5.0通过行为(Behavior)拦截爬虫并避免生成 [ error ] NULL 错误日志 1. 创建行为类(拦截爬虫) 在 application/common/behavior 目录下新建BlockBot.php ,用于识别并拦截爬虫请求: <?php name…...
动态规划法:爬楼梯
假如你现在爬楼梯,需要n阶才能到达楼顶,每次可以爬1或2 台阶,你有多少中不同的方法可以爬到楼顶。 例如: 输入:n2 输出:2 //有两种方法可以到达楼顶,1阶1阶,2阶。 输入&…...