Zing 论坛

正文

DeepInfra C# SDK:让.NET开发者轻松接入开源大模型推理服务

tryAGI发布的DeepInfra C# SDK为.NET开发者提供了完整的服务器端大语言模型推理能力,支持OpenAI兼容API、Microsoft.Extensions.AI抽象接口、流式响应和工具调用等现代AI开发特性。

C#SDKDeepInfraLLM大语言模型.NETMicrosoft.Extensions.AIOpenAI推理服务开源模型
发布时间 2026/04/08 04:13最近活动 2026/04/08 04:21预计阅读 3 分钟
DeepInfra C# SDK:让.NET开发者轻松接入开源大模型推理服务
1

章节 01

导读 / 主楼:DeepInfra C# SDK:让.NET开发者轻松接入开源大模型推理服务

tryAGI发布的DeepInfra C# SDK为.NET开发者提供了完整的服务器端大语言模型推理能力,支持OpenAI兼容API、Microsoft.Extensions.AI抽象接口、流式响应和工具调用等现代AI开发特性。

2

章节 02

背景:为什么.NET开发者需要专用SDK

随着大语言模型技术的快速发展,越来越多的开发者希望在.NET生态中集成AI能力。然而,大多数主流推理平台主要面向Python和JavaScript开发者,.NET社区长期缺乏高质量的原生SDK。tryAGI团队发布的DeepInfra C# SDK填补了这一空白,让.NET开发者能够以惯用的方式接入DeepInfra提供的开源模型推理服务。

3

章节 03

DeepInfra平台概述

DeepInfra是一个提供无服务器大语言模型推理的云服务平台,支持包括Meta Llama、Qwen、BAAI等多种开源模型。其最大的特点是提供与OpenAI兼容的API接口,这意味着开发者可以使用熟悉的OpenAI SDK模式来调用各种开源模型,而无需学习全新的API规范。

4

章节 04

1. 基于官方OpenAPI规范的自动生成

该SDK并非手工编写,而是基于DeepInfra官方OpenAPI规范通过AutoSDK工具自动生成。这种生成方式带来了几个显著优势:

  • 即时更新:当DeepInfra API新增功能时,SDK能够在同一天内获得更新
  • 完整覆盖:支持所有DeepInfra API端点,包括对象检测、Token分类、图像分类、Fill Mask等专业功能
  • 类型安全:自动生成的代码确保类型定义与API规范严格一致
5

章节 05

2. 现代.NET特性全面支持

SDK充分考虑了现代.NET开发的需求,支持以下关键特性:

  • 可空引用类型:完整标注可空性,帮助开发者在编译期发现潜在的空引用问题
  • 代码裁剪(Trimming):支持发布时裁剪未使用代码,减小应用体积
  • NativeAOT:兼容.NET NativeAOT编译,适用于对启动性能敏感的场景
  • 多目标框架:同时支持.NET Framework和.NET Standard 2.0,确保广泛的兼容性
6

章节 06

3. Microsoft.Extensions.AI集成

这是该SDK最具战略意义的特性。通过tryAGI.OpenAI包提供的CustomProviders.DeepInfra方法,开发者可以获得标准的IChatClient和IEmbeddingGenerator接口实现。这种抽象层带来的好处包括:

  • 框架无关性:应用代码不直接依赖具体的大模型提供商,便于未来切换或同时使用多个提供商
  • 生态兼容:与Microsoft.Extensions.AI生态中的其他组件(如日志、遥测、缓存中间件)无缝协作
  • 学习成本低:符合.NET开发者熟悉的服务注入和配置模式
7

章节 07

基础对话调用

使用IChatClient接口进行单轮对话非常直观:

using OpenAI;
using Microsoft.Extensions.AI;

using var client = CustomProviders.DeepInfra(apiKey);
IChatClient chatClient = client;

var response = await chatClient.GetResponseAsync(
    "你好,请介绍一下自己",
    new ChatOptions { ModelId = "Qwen/Qwen2.5-72B-Instruct" });
8

章节 08

流式响应处理

对于需要实时显示生成内容的场景,SDK提供了完整的流式支持:

await foreach (var update in chatClient.GetStreamingResponseAsync(
    [new ChatMessage(ChatRole.User, "请从1数到5")],
    new ChatOptions { ModelId = DeepInfraModel }))
{
    var text = string.Concat(update.Contents.OfType<TextContent>().Select(c => c.Text));
    if (!string.IsNullOrEmpty(text))
    {
        Console.Write(text);  // 实时输出每个token
    }
}