淄博微网站/百度在线识图查图片

淄博微网站,百度在线识图查图片,重庆网络推广专员,怎么做阿里妈妈企业网站目录 一、创建DeepSeek API Key 二、创建窗体应用程序 三、设计窗体 1、控件拖放布局‌‌ 2、主窗体【Form1】设计 3、多行文本框【tbContent】 4、提交按钮【btnSubmit】 5、单行文字框 四、撰写程序 五、完整代码 六、运行效果 七、其它 一、创建DeepSeek API Ke…

目录

一、创建DeepSeek API Key

二、创建窗体应用程序

三、设计窗体

1、控件拖放布局‌‌

2、主窗体【Form1】设计

3、多行文本框【tbContent】

4、提交按钮【btnSubmit】

5、单行文字框

四、撰写程序

五、完整代码

六、运行效果

七、其它


一、创建DeepSeek API Key

请参考我前面的一篇文章:Visual Stdio 2022 C#调用DeepSeek API_vs2022接入deepseek-CSDN博客的第一步。

二、创建窗体应用程序

1、打开【Visual Studio 2022】,选择【创建新项目(N)】。

2、按下图所示位置:依次选择【C#】→【Windows】→【桌面】,再选择【Windows窗体应用程序】,然后单击右下角的【下一步(N)】。

3、配置新项目,项目名称可填【DeepSeek】,选择程序保存的位置,然后单击右下角的【下一步(N)】。

4、其他信息。使用默认值,直接单击右下角【创建(C)】。就生成了新的项目。

5、安装依赖包【Newtonsoft.Json】。

【鼠标】在右侧【解决方案资源管理器】上右击【管理NuGet程序包(N)】。【鼠标】在右侧【解决方案资源管理器】上右击【管理NuGet程序包(N)】。

点击【浏览】,在上面的【输入框】中输入【Newtonsoft.Json】全部或部分,选择下面列表中显示的【Newtonsoft.Json】,然后在点击右侧窗口中的【安装】按钮。

三、设计窗体

1、控件拖放布局‌‌

整窗体大小,在主窗体上放二个文本框,一个按钮,整体效果大致如下图:

2、主窗体【Form1】设计

【Text】设为“DeepSeek”。

3、多行文本框【tbContent】

【(Name)】设为“tbContent”。【Multiline】选择【True】。其它不变。作用用来显示DeepSeek回复的内容。

4、提交按钮【btnSubmit】

【(Name)】设为”btnSubmit“。【Text】设为”提交“。

【双击】按钮为它绑定一个【Click】即单击事件,代码暂不处理。自动生成的事件名称是【tnSubmit_Click】。

VS2022提示将提示你【命名规则冲突】,然后提示你【显示可能的修补程序】,将会出现【解决名称冲突】提示框,单击执行它。

最后的结果如下图,与上面的区别就是事件名称由【btnSubmit_Click】改成了【BtnSubmit_Click】,首字母由小写改成了大写。

5、单行文字框

名称【(Name)】设为”tbAsk“。方法与前面类似,就不图示了。作用是让用户输入提问词。

四、撰写程序

1、两个函数

特别注意:第三行处要填入你自己完整的API key

private static async Task<JObject> CallDeepSeekApiAsync(string searchTerm)
{const string apiKey = "sk-9****490";  //此处填你的DeepSeek API key const string apiUrl = "https://api.deepseek.com/v1/chat/completions";using var client = new HttpClient();client.DefaultRequestHeaders.Authorization =new AuthenticationHeaderValue("Bearer", apiKey);var requestBody = new{model = "deepseek-chat",messages = new[]{new { role = "user", content = searchTerm }}};try{var response = await client.PostAsJsonAsync(apiUrl, requestBody);response.EnsureSuccessStatusCode();var responseBody = await response.Content.ReadAsStringAsync();return JObject.Parse(responseBody);}catch (HttpRequestException ex){MessageBox.Show($"请求失败:{ex.StatusCode} - {ex.Message}");return JObject.Parse("");}
}private static string? DisplayResponse(JObject response)
{//Console.WriteLine(response.ToString(Newtonsoft.Json.Formatting.Indented));// 提取并显示主要返回内容var choices = response["choices"];if (choices != null && choices.Type == JTokenType.Array){var firstChoice = choices[0];if (firstChoice != null){var text = firstChoice["message"]?.ToString();if (text != null){JObject key = JObject.Parse(text);var k = key["content"]?.ToString();return k;}}}else{MessageBox.Show("No choices found in the response.");}return null;
}

2、按钮事件代码

private async void BtnSubmit_Click(object sender, EventArgs e)
{string searchTerm = tbAsk.Text; // 替换为你希望搜索的关键词或短语tbContent.Text = "请稍候,DeepSeek推理中......";try{var response = await CallDeepSeekApiAsync(searchTerm);string msg = DisplayResponse(response) ?? "";tbContent.Text = msg;}catch (Exception ex){tbContent.Text = $"An error occurred: {ex.Message}";}
}

注意,VS自动生成的代码名称没有【async】修饰。

3、增加【tbAsk】事件

如果需要提问词支持回车提问,可增加【KeyDown】事件,代码如下:

private void TbAsk_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.Enter){btnSubmit.PerformClick();}}

五、完整代码

using Newtonsoft.Json.Linq;
using System.Net.Http.Headers;
using System.Net.Http.Json;namespace DeepSeek
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private static async Task<JObject> CallDeepSeekApiAsync(string searchTerm){const string apiKey = "sk-9***490";  //此处填你的DeepSeek API key const string apiUrl = "https://api.deepseek.com/v1/chat/completions";using var client = new HttpClient();client.DefaultRequestHeaders.Authorization =new AuthenticationHeaderValue("Bearer", apiKey);var requestBody = new{model = "deepseek-chat",messages = new[]{new { role = "user", content = searchTerm }}};try{var response = await client.PostAsJsonAsync(apiUrl, requestBody);response.EnsureSuccessStatusCode();var responseBody = await response.Content.ReadAsStringAsync();return JObject.Parse(responseBody);}catch (HttpRequestException ex){MessageBox.Show($"请求失败:{ex.StatusCode} - {ex.Message}");return JObject.Parse("");}}private static string? DisplayResponse(JObject response){//Console.WriteLine(response.ToString(Newtonsoft.Json.Formatting.Indented));// 提取并显示主要返回内容var choices = response["choices"];if (choices != null && choices.Type == JTokenType.Array){var firstChoice = choices[0];if (firstChoice != null){var text = firstChoice["message"]?.ToString();if (text != null){JObject key = JObject.Parse(text);var k = key["content"]?.ToString();return k;}}}else{MessageBox.Show("No choices found in the response.");}return null;}private async void BtnSubmit_Click(object sender, EventArgs e){string searchTerm = tbAsk.Text; // 替换为你希望搜索的关键词或短语tbContent.Text = "请稍候,DeepSeek推理中......";try{var response = await CallDeepSeekApiAsync(searchTerm);string msg = DisplayResponse(response) ?? "";tbContent.Text = msg;}catch (Exception ex){tbContent.Text = $"An error occurred: {ex.Message}";}}private void TbAsk_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.Enter){btnSubmit.PerformClick();}}}
}

注意:完整代码中,我处理了我使用的【API key】,要填上自己完整的【API key】。

六、运行效果

在【提问框】中输入”你好“,然后回车,或者单击【提交】,后内容多行文本框显示”请稍候,DeepSeek推理中......“。

稍候,将出现如下图所示效果,内容显示框显示出了【DeepSeek】回复的内容。

七、其它

1、完整资源下载请单击https://download.csdn.net/download/liufangshun/90455157。

2、在控制台应用程序中调用DeepSeek API请参考我的博文Visual Stdio 2022 C#调用DeepSeek API_vs2022接入deepseek-CSDN博客,相关资源下载请单击https://download.csdn.net/download/liufangshun/90438698。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71697.shtml

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

相关文章

如何在WPS中接入DeepSeek并使用OfficeAI助手(超细!成功版本)

目录 第一步&#xff1a;下载并安装OfficeAI助手 第二步&#xff1a;申请API Key 第三步:两种方式导入WPS 第一种:本地大模型Ollama 第二种APIKey接入 第四步&#xff1a;探索OfficeAI的创作功能 工作进展汇报 PPT大纲设计 第五步&#xff1a;我的使用体验(体验建议) …

Spring Boot集成Minio笔记

一、首先配置MinIO 1、MinIO新建Bucket&#xff0c;访问控制台如图 创建访问密钥(就是账号和密码) 二、集成mino添加Minio客户端依赖 1.maven构建方式在pom.xml引入jar <dependency><groupId>io.minio</groupId><artifactId>minio</artifactI…

Web网页开发——水果忍者

1.介绍 复刻经典小游戏——水果忍者 2.预览 3.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

如何在unity中完整录制一段动画

在动画制作中&#xff0c;需要对接音频部门进行音效的制作。通常需要完整且无多余帧数的动画视频作为时间和帧数对帧参考&#xff0c;这时候手动录屏就会显得不够精确&#xff0c;这里分享一个插件录制方法&#xff0c;可以自定义录制起始位置&#xff0c;0帧起手完整录制。 录…

Jetson Orin 安装 onnxruntime

Jetson Orin 安装 onnxruntime onnxruntime在Jetson上安装只需注意三件事&#xff1a; 版本&#xff01; 版本&#xff01; 还是TMD版本&#xff01; 本机环境 Jectpack : 5.1.2CUDA : 11.4cuDNN &#xff1a;8.6.0 版本说明 关于onnxruntime的版本适配不同的官方有不同的…

Manus AI : Agent 元年开启.pdf

Manus AI : Agent 元年开启.pdf 是由华泰证券出品的一份调研报告&#xff0c;共计23页。报告详细介绍了Manus AI 及 Agent&#xff0c;主要包括Manus AI 的功能、优势、技术能力&#xff0c;Agent 的概念、架构、应用场景&#xff0c;以及 AI Agent 的类型和相关案例&#xff0…

【为什么会有 map、weakmap 类型?】

为什么会有 map、weakmap 类型? 传统对象的局限性催生 Map‌1. 键类型单一性‌2. 有序性与迭代支持‌3. 性能优化场景‌ 内存管理需求催生 WeakMap‌1.弱引用机制‌2. 私有数据存储‌3. 规避循环引用问题‌ 总结 传统对象的局限性催生 Map‌ 1. 键类型单一性‌ 传统对象&…

SpringSecurity认证授权完整流程

SpringSecurity认证流程&#xff1a;loadUserByUsername&#xff08;&#xff09;方法内部实现。 实现步骤&#xff1a; 构建一个自定义的service接口&#xff0c;实现SpringSecurity的UserDetailService接口。建一个service实现类&#xff0c;实现此loadUserByUsername方法。…

本地部署DeepSeek R1大数据模型知识库

DeepSeek-V3 的综合能力 DeepSeek-V3 在推理速度上相较历史模型有了大幅提升。在目前大模型主流榜单中&#xff0c;DeepSeek-V3 在开源模型中位列榜首&#xff0c;与世界上最先进OpenAI 闭源模型不分伯仲。 1、下载Ollama运行大数据库 Ollama支持 Llama 3.3, DeepSeek-R1, Phi-…

【javaEE】多线程(基础)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

一周学会Flask3 Python Web开发-WTForms表单验证

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们可以通过WTForms表单类属性的validators属性来实现表单验证。 常用的WTForms验证器 验证器说明DataRequired(messageNo…

STM32标准库代码详解之GPIO

GPIO的初始化代码如下&#xff1a; /*开启时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启GPIOA的时钟&#xff0c;使用外设必须开启/*GPIO初始化*/ GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量 GPIO_InitStructure.GPIO_Mode GPIO_Mo…

第六课:数据库集成:MongoDB与Mongoose技术应用

本文详细介绍了如何在Node.js应用程序中集成MongoDB数据库&#xff0c;并使用Mongoose库进行数据操作。我们将涵盖MongoDB在Ubuntu 20系统中的安装、Bash命令的CRUD操作、Mongoose数据建模&#xff08;Schema/Model&#xff09;、关联查询与聚合管道&#xff0c;以及实战案例—…

大数据学习(56)-Impala

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…

【C#】async与await介绍

1. 实例1 1.1 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp1 {class Program{static void Main(string[] args){Method1();Method2();Console.ReadKey();}public static…

【大模型基础_毛玉仁】1.1 基于统计方法的语言模型

【大模型基础_毛玉仁】1.1 基于统计方法的语言模型 1.语言模型基础1.1 基于统计方法的语言模型1.1.1 n-grams 语言模型1.1.2 n-grams 的统计学原理 1.语言模型基础 语言是概率的。语言模型&#xff08;LanguageModels, LMs&#xff09;旨在准确预测语言符号的概率。 将按照语…

JavaScript(最后一个元素的索引就是数组的长度减 1)array.length - 1

在不同的编程语言中&#xff0c;表示数组中最后一个元素的方法略有不同&#xff0c;但基本思路都是利用数组的长度或索引来实现。 以下是一些常见编程语言中获取数组最后一个元素的方法&#xff1a; 1. JavaScript: 使用 array.length - 1 索引: 这是最常见和传统的方法。Java…

7V 至 30V 的超宽 VIN 输入范围,转换效率高达 96%的WD5030

WD5030 具备 7V 至 30V 的超宽 VIN 输入范围&#xff0c;这一特性使其能够适应多种不同电压等级的供电环境&#xff0c;无论是在工业设备中常见的较高电压输入&#xff0c;还是在一些便携式设备经过初步升压后的电压&#xff0c;WD5030 都能轻松应对&#xff0c;极大地拓展了应…

深度学习模型Transformer核心组件—自注意力机制

第一章&#xff1a;人工智能之不同数据类型及其特点梳理 第二章&#xff1a;自然语言处理(NLP)&#xff1a;文本向量化从文字到数字的原理 第三章&#xff1a;循环神经网络RNN&#xff1a;理解 RNN的工作机制与应用场景(附代码) 第四章&#xff1a;循环神经网络RNN、LSTM以及GR…

利用Ollama+AnythingLLM+本地向量数据库Milvus+本地DeepSeek大模型实现知识库的搭建

1. Ollama的搭建 基本介绍 Ollama是一个支持在Windows、Linux和MacOS上本地运行大语言模型的工具。它允许用户非常方便地运行和使用各种大语言模型,比如Qwen模型等。用户只需一行命令就可以启动模型。 Ollama 下载&#xff1a;https://ollama.com/download Ollama 官方主页&a…