openai-dotnet

官方 .NET 库,几行代码接入 OpenAI 各类接口

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开发框架 🍴 复刻 428 🐛 待处理 89 👀 关注 44
GitHub ↗
GitHub 星标 ★ 2716
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,调用 OpenAI API 需按官方用量付费

项目预览

openai-dotnet 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类开发框架
开发团队openai
定价模式🏷️完全免费
价格说明开源免费,调用 OpenAI API 需按官方用量付费
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言C#
技术栈/模型csharp,dotnet,openai
GitHub 星标★ 2716
上线时间2024-04-25 00:00:00
代码更新2026-10-23
仓库体积313.8 MB
本站数据更新2026-10-26
维护状态活跃
收录时间2026-10-26
浏览次数0

项目介绍

openai-dotnet 是 OpenAI 官方维护的 .NET 客户端库,为 C#/.NET 开发者提供访问 OpenAI API 的统一封装。它解决的是直接手写 HTTP 请求时参数拼装繁琐、响应解析易错、流式输出难处理等问题。核心能力包括:覆盖对话补全、文本嵌入、图像生成、语音转写与合成、文件与微调等主要接口;支持同步与异步调用;内置流式响应(SSE)处理,便于实现逐字输出;提供强类型请求与响应模型,配合 .NET 的依赖注入与配置体系;支持自定义 HttpClient、重试与超时配置,并随官方 API 更新同步演进。作为官方库,它在接口对齐、类型定义和版本维护上较第三方封装更可靠,适合在 ASP.NET Core 服务、桌面应用或后台任务中集成大模型能力。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-10-26 · 当前星标 ★ 2716

技术标签

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • 安装 .NET SDK(README 示例使用 .NET 10,库兼容 .NET Standard 2.0)
  • 一个可编译的 .NET 项目
  • 能够访问 NuGet 包源以安装 OpenAI 包
  • 了解 C# 异步编程与 await foreach 基本用法

安装与启动步骤

  1. 1准备 .NET 环境

    安装 .NET SDK 并准备一个可编译的 .NET 项目,README 示例使用 .NET 10,库兼容 .NET Standard 2.0。

  2. 2安装 NuGet 包

    在 .NET 项目目录执行安装命令,把 OpenAI 客户端库加入项目依赖。

    dotnet add package OpenAI
  3. 3注册依赖注入

    在 Program.cs 中调用 AddChatClient,传入配置节名;客户端线程安全,可注册为单例。

    builder.AddChatClient("Clients:ChatClient");
  4. 4注入并调用客户端

    在控制器构造函数注入 ChatClient,调用 CompleteChatAsync 并读取 Content[0].Text。

    ChatCompletion completion = await _chatClient.CompleteChatAsync(message);
  5. 5启用流式输出

    改用 CompleteChatStreamingAsync,用 await foreach 枚举更新并输出 ContentUpdate。

    AsyncCollectionResult completionUpdates = client.CompleteChatStreamingAsync("Say 'this is a test.'");
  6. 6处理工具调用

    用 CreateFunctionTool 定义工具并加入 Tools,FinishReason 为 ToolCalls 时回传结果。

关键配置

配置项必填说明示例
Clients:ChatClient是依赖注入注册时传入的配置节名,用于读取客户端配置"Clients:ChatClient"
ChatCompletionOptions.Tools否聊天补全请求的工具列表,用于函数调用Tools = { getCurrentLocationTool, getCurrentWeatherTool }

如何确认成功

在应用中调用 CompleteChatAsync,若返回 completion.Content[0].Text 且有内容,说明客户端已正常工作。

常见问题

Q:这个库支持哪些 .NET 版本?

A:兼容所有 .NET Standard 2.0 应用;README 示例使用 .NET 10,部分语法依赖较新语言特性。

Q:客户端可以注册为单例吗?

A:可以,OpenAI 客户端线程安全,注册为 singleton 可提高资源效率和 HTTP 连接复用。

Q:如何实现逐字输出?

A:使用 CompleteChatStreaming 或 CompleteChatStreamingAsync,枚举 StreamingChatCompletionUpdate 并输出 ContentUpdate。

Q:FinishReason 为 ToolCalls 时怎么办?

A:先执行对应工具函数,把结果作为 ChatRequestToolMessage 加入消息,再次调用 CompleteChat。

注意事项

  • 安装命令需在 .NET 项目目录执行,确保项目文件存在。
  • README 未给出 API 密钥配置与客户端初始化完整示例,请按库的配置体系自行设置。
  • 流式结果必须枚举后才会处理分片,不要只创建对象不遍历。
  • 工具调用需要循环处理,直到 FinishReason 为 Stop。

核心亮点

  • OpenAI 官方维护,接口定义与 API 更新保持同步,类型准确
  • 强类型模型覆盖对话、嵌入、图像、语音、文件等主要能力
  • 原生支持流式响应与异步调用,便于做逐字输出和并发场景

不足之处

  • 仅覆盖 OpenAI 官方接口,切换其他兼容服务需自行改配置
  • 部分新特性上线后文档与示例更新存在滞后
  • 社区规模相对 Python 生态较小,中文资料有限

适用场景

  • ASP.NET Core 后端集成对话补全与嵌入检索
  • 桌面或命令行工具中调用图像生成与语音转写
  • 企业内部知识库问答服务的流式输出实现

替代项目

openai-python、semantic-kernel、langchain

上一篇:openai-python

下一篇:openai-go

同类项目推荐

ChainForge 开源

拖拽节点,批量测试提示词,多模型效果一目了然

An open-source visual programming environment for battle-testing prompts to LLMs.

★ 3038 2026-08-09
keras_cv_attention_models 开源

一站式加载 Keras 主流视觉模型,快速做分类检测分割

Keras beit,caformer,CMT,CoAtNet,convnext,davit,dino,efficientdet,edgenext,efficientf···

★ 625 2026-08-09
predikit 开源

让 LLM 智能体直接调用你的 ML 模型做预测

The missing bridge between your ML models and your AI agents.

★ 385 2026-09-13
sd-api 开源

用 TypeScript 优雅调用 Stable Diffusion WebUI,快速集成图像生成能力

A Typescript API client for AUTOMATIC111/stable-diffusion-webui

★ 98 2026-08-09
jaicf-kotlin 开源

用 Kotlin 一套代码搞定 Alexa 和 Google 助手对话

Kotlin framework for conversational voice assistants and chatbots development

★ 248 2026-08-09
nlp.js 开源

用 JavaScript 快速构建能理解意图的聊天机器人

An NLP library for building bots, with entity extraction, sentiment analysis, automa···

★ 6578 2026-08-09
megabots 开源

不想从零写代码?几分钟搭好一个能用的 LLM 聊天机器人。

State-of-the-art, production ready LLM apps made mega-easy, so you don't have to bui···

★ 350 2026-08-09
oasf 开源

给 AI Agent 定统一数据契约,跨框架对接不再靠猜

Open Agentic Schema Framework

★ 339 2026-10-13
dspy-go 开源

用 Go 声明式编排 LLM 工作流,自动优化提示词

DSPy Go implementation

★ 199 2026-08-09