谁说.Net Framework不支持DeepSeek动态流式返回?

DeepSeek.SDK 适用于VB.NET,C#.NET,.NET CORE等应用程序使用,支持普通对话,流式对话,查询余额,列出模型等接口。并支持.Net FarmeWork流式输出,WinForm,Office Vsto插件,CAD插件,Solid Work插件,CDR插件等应用接入场景。

.NET .NET Framework版本支持

.NET 实现

版本支持

.NET 和.NET Core

2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0

.NET Framework

4.6.1、4.6.2、4.7、4.7.1、4.7.2、4.8、4.8.1

Mono

5.4、6.4

Xamarin.iOS

10.14、12.16

Xamarin.Mac

3.8、5.16

Xamarin.Android

8.0、10.0

通用 Windows 平台

10.0.16299,待定

Unity

2018 年 1 月

Nuget链接
代码语言:javascript代码运行次数:0运行复制
.Sdk
示例代码

VB.NET示例

代码语言:javascript代码运行次数:0运行复制
Module Module1
    '' 多轮对话记录,上一轮的结果
    Private resultMsg As New Text.StringBuilder
    '' 主函数
    Sub Main(arg As String())
        ' api密钥
        Dim apikey As String = "sk-666666666666666666666"
        ' 创建ds对象
        Dim ds As New DeepSeek(apikey)
        Task.Run(Async Function()
                     ' 模型查询
                     'Dim modelList As Model = Await ds.GetModelList()
                     ' 余额查询
                     'Dim ResBalance As Balance = Await ds.GetBalance
                     ''-----------------
                     'Dim chatReq As New ChatRequest With {
                     '    .Messages = New List(Of ChatRequest.MessagesType) From {
                     '       New ChatRequest.MessagesType With {
                     '           .Role = ChatRequest.RoleEnum.System,
                     '           .Content = "你是一个Excel办公助手,仅回答办公相关的内容,其他无关内容忽略。"
                     '       },
                     '       New ChatRequest.MessagesType With {
                     '           .Role = ChatRequest.RoleEnum.User,
                     '           .Content = "你是谁?"
                     '       }
                     '    },
                     '    .Model = ChatRequest.ModelEnum.DeepseekChat
                     '}
                     'Dim chatRes As ChatResponse = Await ds.Chat(chatReq)
                     ''-----------------
                     Dim chatReq As New ChatRequest With {
                         .Messages = New List(Of ChatRequest.MessagesType) From {
                            New ChatRequest.MessagesType With {
                                .Role = ChatRequest.RoleEnum.System,
                                .Content = "你是一个Excel办公助手,仅回答办公相关的内容,其他无关内容忽略。"
                            },
                            New ChatRequest.MessagesType With {
                                .Role = ChatRequest.RoleEnum.Assistant,
                                .Content = resultMsg.ToString
                            },
                            New ChatRequest.MessagesType With {
                                .Role = ChatRequest.RoleEnum.User,
                                .Content = "你是谁?"
                            }
                         },
                         .Model = ChatRequest.ModelEnum.DeepseekChat,
                         .Stream = True
                     }
                     resultMsg.Clear() ''拼接完成则清空,进行下一轮拼接
                     Await ds.ChatStream(chatReq, openedCallBack:=Sub(state As String) ''打开状态
                                                                      Console.WriteLine(state)
                                                                  End Sub,
                                                  closedCallBack:=Sub(state) ''关闭状态
                                                                      Console.WriteLine(state)
                                                                  End Sub,
                                                  msgCallback:=Sub(res As ChatResponse) ''接收信息
                                                                   Dim msg As String = res.Choices.First?.Delta?.Content
                                                                   resultMsg.Append(msg)
                                                                   Console.WriteLine(msg)
                                                               End Sub,
                                                  errorCallback:=Sub(ex As String) ''异常处理
                                                                     Console.WriteLine(ex)
                                                                 End Sub)
                     Await Task.CompletedTask
                 End Function).GetAwaiter().GetResult()
    End Sub
End Module

C#.Net示例代码

代码语言:javascript代码运行次数:0运行复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Program
{
    static void Main(string[] args)
    {
        // api密钥
        string apikey = "sk-666666666666666666666";
        // 创建ds对象
        var ds = new DeepSeek(apikey);
        Task.Run(async () =>
        {
            // 模型查询
            // var modelList = await ds.GetModelList();
            // 余额查询
            // var resBalance = await ds.GetBalance();
            //-----------------
            // var chatReq = new ChatRequest
            // {
            //     Messages = new List<ChatRequest.MessagesType>
            //     {
            //         new ChatRequest.MessagesType
            //         {
            //             Role = ChatRequest.RoleEnum.System,
            //             Content = "你是一个Excel办公助手,仅回答办公相关的内容,其他无关内容忽略。"
            //         },
            //         new ChatRequest.MessagesType
            //         {
            //             Role = ChatRequest.RoleEnum.User,
            //             Content = "你是谁?"
            //         }
            //     },
            //     Model = ChatRequest.ModelEnum.DeepseekChat
            // };
            // var chatRes = await ds.Chat(chatReq);
            //-----------------
            var chatReq = new ChatRequest
            {
                Messages = new List<ChatRequest.MessagesType>
                {
                    new ChatRequest.MessagesType
                    {
                        Role = ChatRequest.RoleEnum.System,
                        Content = "你是一个Excel办公助手,仅回答办公相关的内容,其他无关内容忽略。"
                    },
                    new ChatRequest.MessagesType
                    {
                        Role = ChatRequest.RoleEnum.Assistant,
                        Content = resultMsg.ToString()
                    },
                    new ChatRequest.MessagesType
                    {
                        Role = ChatRequest.RoleEnum.User,
                        Content = "你是谁?"
                    }
                },
                Model = ChatRequest.ModelEnum.DeepseekChat,
                Stream = true
            };
            resultMsg.Clear(); // 拼接完成则清空, 进行下一轮拼接
            await ds.ChatStream(chatReq,
                openedCallBack: (state) => // 打开状态
                {
                    Console.WriteLine(state);
                },
                closedCallBack: (state) => // 关闭状态
                {
                    Console.WriteLine(state);
                },
                msgCallback: (res) => // 接收信息
                {
                    string msg = res.Choices.FirstOrDefault()?.Delta?.Content;
                    resultMsg.Append(msg);
                    Console.WriteLine(msg);
                },
                errorCallback: (ex) => // 异常处理
                {
                    Console.WriteLine(ex);
                });
            await Task.CompletedTask;
        }).GetAwaiter().GetResult();
    }
    private static StringBuilder resultMsg = new StringBuilder();
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-12,如有侵权请联系 cloudcommunity@tencent 删除模型异常处理DeepSeek插件对象