You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#的Semantic Kernel中调用ChatGPT Assistants API v2

使用Semantic Kernel调用OpenAI Assistants API(带自定义文档与规则)

1. 安装依赖包

在NuGet包管理器中安装以下两个稳定版包:

  • Microsoft.SemanticKernel
  • Microsoft.SemanticKernel.Connectors.OpenAI

2. 完整可运行C#代码示例

以下代码直接对接OpenAI Assistants API v2,复用你在OpenAI平台已创建好的、包含上传文档和行为规则的助手:

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Connectors.OpenAI;
using Microsoft.SemanticKernel.Agents;

// 1. 配置OpenAI原生服务
var kernelBuilder = Kernel.CreateBuilder();
kernelBuilder.AddOpenAIChatCompletion(
    modelId: "gpt-4o", // 需与你在OpenAI平台创建助手时指定的模型一致
    apiKey: "你的OpenAI API密钥" // 替换为实际密钥
);

var kernel = kernelBuilder.Build();

// 2. 初始化AssistantAgent,关联已创建的助手
var assistantAgent = new AssistantAgent(
    assistantId: "你的OpenAI助手ID", // 替换为你在OpenAI平台创建的助手ID
    kernel: kernel,
    name: "自定义业务助手"
);

// 3. 发起对话请求
using var chat = new ChatHistory();
chat.AddUserMessage("请基于我上传的文档回答:[你的具体问题]");

var result = await assistantAgent.InvokeAsync(chat);

// 输出助手回复
Console.WriteLine(result.ToString());

3. 关键细节说明

  • 助手ID获取:在OpenAI平台「Assistants」页面进入目标助手详情页,从URL中提取assistant=后的字符串即为助手ID。
  • 文档与规则复用:你在OpenAI平台给助手上传的文档、设置的系统提示词(行为规则)会被直接复用,无需在代码中重复传递,既节省Token又提升交互效率。
  • 切换Azure API:若需使用Azure OpenAI,只需将AddOpenAIChatCompletion替换为AddAzureOpenAIChatCompletion,传入Azure部署名、API密钥和Endpoint即可。

4. 原文档占位符说明

微软文档中的...占位符对应内容:

  • your-assistant-id → 你的OpenAI助手ID
  • your-api-key → 你的OpenAI API密钥
  • your-model-id → 助手关联的模型ID(如gpt-4o)

内容的提问来源于stack exchange,提问作者niico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 21:57:06