如何在C#的Semantic Kernel中调用ChatGPT Assistants API v2
使用Semantic Kernel调用OpenAI Assistants API(带自定义文档与规则)
1. 安装依赖包
在NuGet包管理器中安装以下两个稳定版包:
Microsoft.SemanticKernelMicrosoft.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助手IDyour-api-key→ 你的OpenAI API密钥your-model-id→ 助手关联的模型ID(如gpt-4o)
内容的提问来源于stack exchange,提问作者niico
相关产品推荐
相关产品推荐

