2.26DeepSeek 官方对接

DeepSeek 是由深度求索公司开发的多功能人工智能模型,具备聊天、写作、编程、数据分析、翻译及教育辅导等能力。其强大的理解能力和快速学习速度使其适用于多种场景,未来发展潜力巨大。

DeepSeek 是由深度求索公司开发的多功能人工智能模型,具备聊天、写作、编程、数据分析、翻译及教育辅导等能力。其强大的理解能力和快速学习速度使其适用于多种场景,未来发展潜力巨大。

在对接 DeepSeek 人工智能模型之前,您需要先在 DeepSeek 开发平台 注册账号并创建 API key。获取 API key 后,即可在项目中集成 DeepSeek 人工智能模型。框架提供了多种对接 DeepSeek 人工智能模型的方式:

1. 标准输出(非流式)

标准输出(非流式)是指将用户提示词一次性发送并返回最终结果。结果会一次性呈现,适合需要完整输出的场景:

cs
[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 的支持,可直接使用:

cs
[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 地址实现流式输出效果:

cs
[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框架怎么样。如下图所示: