2.26DeepSeek 官方对接
DeepSeek 是由深度求索公司开发的多功能人工智能模型,具备聊天、写作、编程、数据分析、翻译及教育辅导等能力。其强大的理解能力和快速学习速度使其适用于多种场景,未来发展潜力巨大。
DeepSeek 是由深度求索公司开发的多功能人工智能模型,具备聊天、写作、编程、数据分析、翻译及教育辅导等能力。其强大的理解能力和快速学习速度使其适用于多种场景,未来发展潜力巨大。
在对接 DeepSeek 人工智能模型之前,您需要先在 DeepSeek 开发平台 注册账号并创建 API key。获取 API key 后,即可在项目中集成 DeepSeek 人工智能模型。框架提供了多种对接 DeepSeek 人工智能模型的方式:
1. 标准输出(非流式)
标准输出(非流式)是指将用户提示词一次性发送并返回最终结果。结果会一次性呈现,适合需要完整输出的场景:
[HttpGet]public async Task<string> DeepSeek(CancellationToken cancellationToken){ var result = await httpRemoteService.PostAsStringAsync("https://api.deepseek.com/chat/completions", HttpRequestBuilder.Setup .AddBearerAuthentication("您的 APIKEY") .SetJsonContent(""" { "model": "deepseek-v4-pro", "messages": [ {"role": "system", "content": "你是一个专业的 C# 领域人才。"}, {"role": "user", "content": "Furion 框架未来前景?"} ], "stream": false } """), cancellationToken); // 解析 JSON 内容(推荐使用流变对象) var node = JsonNode.Parse(result!); var content = node?["choices"]?[0]?["message"]?["content"]?.GetValue<string?>(); return content ?? string.Empty;}2. 流式输出(Server-Sent Events)
流式输出能够模拟打字机的效果,非常适合那些需要逐步展示结果的场景。与标准输出模式的主要区别在于,您需要将 stream 参数设置为 true,并采用 Server-Sent Events 实现单向通信。框架已内置对 Server-Sent Events 的支持,可直接使用:
[HttpGet]public async Task<string> DeepSeek_Stream(CancellationToken cancellationToken){ var builder = HttpRequestBuilder.ServerSentEvents("https://api.deepseek.com/chat/completions") .AddBearerAuthentication("您的 APIKEY") .SetJsonContent(""" { "model": "deepseek-v4-pro", "messages": [ {"role": "system", "content": "你是一个专业的 C# 领域人才。"}, {"role": "user", "content": "Furion 框架的作者是谁?"} ], "stream": true } """); await foreach (var data in httpRemoteService.SendAsAsyncEnumerable(builder, cancellationToken)) { // 输出完成 if (data.IsDone) { Console.WriteLine("++++++++++++ 结束 ++++++++++++"); break; } // 解析 JSON 内容(推荐使用流变对象) var node = JsonNode.Parse(data.Data); var content = node?["choices"]?[0]?["delta"]?["content"]?.GetValue<string?>(); if (!string.IsNullOrEmpty(content)) { Console.WriteLine(content); } } return "OK";}3. 浏览器 URL 地址(Web)的流式输出(Server-Sent Events)
您还可以在浏览器中通过访问 URL 地址实现流式输出效果:
[HttpGet]public async Task DeepSeekChat([FromServices] IHttpContextAccessor httpContextAccessor, [FromQuery] string message, CancellationToken cancellationToken){ var httpContext = httpContextAccessor.HttpContext!; // 配置 Server-Sent Events (SSE) 标准流式响应格式 httpContext.Response.EnableServerSentEvents(); var builder = HttpRequestBuilder.ServerSentEvents("https://api.deepseek.com/chat/completions") .AddBearerAuthentication("您的 APIKEY") .SetJsonContent($$""" { "model": "deepseek-v4-pro", "messages": [ {"role": "system", "content": "你是一个专业的 C# 领域人才。"}, {"role": "user", "content": "{{message}}"} ], "stream": true } """); await foreach (var data in httpRemoteService.SendAsAsyncEnumerable(builder, cancellationToken)) { // DeepSeek 输出完成标记 if (data.IsDone) return; // 解析 JSON 内容(推荐使用流变对象) var node = JsonNode.Parse(data.Data); var content = node?["choices"]?[0]?["delta"]?["content"]?.GetValue<string?>(); // 向客户端写入一条消息并立即刷新响应流 await httpContext.Response.WriteAndFlushAsync(content, cancellationToken); } await httpContext.Response.CompleteAsync();}打开浏览器并访问以下地址即可体验流式输出效果:https://localhost:7044/GetStart/DeepSeekChat?message=Furion框架怎么样。如下图所示: