Semantic Kernel人工智能:1、从DeepSeek API调用到Semantic Kernel集成: ...

饭宝  金牌会员 | 2025-3-17 14:51:17 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 997|帖子 997|积分 2991

引言:AI期间下的谈天机器人开发范式演进

在生成式AI技术发作的当下,基于大语言模子(LLM)的谈天机器人开发已形成尺度化技术链路。本文将结合DeepSeek API与微软Semantic Kernel框架,以C#语言实战演示从底子API调用到高级框架集成的完整开发流程。
环境准备与底子配置


  • .NET 9 SDK
  • Visual Studio 2022或VSCode
  • DeepSeek API密钥  官网申请
DeepSeek API底子调用

DeepSeek API的Endpoint地址为:https://api.deepseek.com/chat/completions,相关文档可查看官方文档
  1. public async Task<ResponseBody> GetChatMessageContentsAsync(CancellationToken cancellationToken = new CancellationToken())
  2. {
  3.     var client = new HttpClient();
  4.     var request = new HttpRequestMessage(HttpMethod.Post, _builder.Endpoint);
  5.     request.Headers.Add("Accept", "application/json");
  6.     request.Headers.Add("Authorization", $"Bearer {_builder.ApiKey}");
  7.     _body.Stream = false;
  8.     var content = new StringContent(_body.SerializeObject(), null, "application/json");
  9.     request.Content = content;
  10.     var response = await client.SendAsync(request, cancellationToken);
  11.     var responseBody = await response.Content.ReadAsStringAsync(cancellationToken);
  12.     return JsonConvert.DeserializeObject<ResponseBody>(responseBody) ?? new ResponseBody();
  13. }
复制代码
  1. public async IAsyncEnumerable<ResponseBody> GetStreamingChatMessageContentsAsync([EnumeratorCancellation] CancellationToken cancellationToken = new CancellationToken())
  2. {
  3.     var client = new HttpClient();
  4.     var request = new HttpRequestMessage(HttpMethod.Post, _builder.Endpoint);
  5.     request.Headers.Add("Accept", "application/json");
  6.     request.Headers.Add("Authorization", $"Bearer {_builder.ApiKey}");
  7.    
  8.     _body.Stream = true;
  9.     var content = new StringContent(_body.SerializeObject(), null, "application/json");
  10.     request.Content = content;
  11.     var response = await client.SendAsync(request, cancellationToken);
  12.     var stream = await response.Content.ReadAsStreamAsync(cancellationToken);
  13.     var reader = new StreamReader(stream);
  14.     while (!reader.EndOfStream)
  15.     {
  16.         var line = await reader.ReadLineAsync(cancellationToken);
  17.         if (string.IsNullOrEmpty(line) || line.StartsWith(":")) continue;
  18.         if (line.StartsWith("data: "))
  19.         {
  20.             var jsonData = line["data: ".Length ..];
  21.             if (jsonData == "[DONE]") break;
  22.             yield return JsonConvert.DeserializeObject<ResponseBody>(jsonData) ?? new ResponseBody();
  23.         }
  24.     }
  25. }
复制代码
Semantic Kernel框架集成

Semantic Kernel是一种轻型开源开发工具包,可用于轻松生成 AI 代理并将最新的 AI 模子集成到 C#、Python 或 Java 代码库中。 它充当一个高效的中心件,可实现企业级解决方案的快速交付。
DeepSeek API与Semantic Kernel框架集成,可快速实现基于大语言模子的谈天机器人开发。由于DeepSeek API与OpenAI API的兼容性,因此DeepSeek API与Semantic Kernel框架的集成非常简单。只需使用OpenAI的连接器,即可快速实现DeepSeek API与Semantic Kernel框架的集成。

  • NuGet包安装
  1. dotnet add package Microsoft.SemanticKernel
复制代码

  • Semantic Kernel初始化
  1. var openAIClientCredential = new ApiKeyCredential(apiKey);
  2. var openAIClientOption = new OpenAIClientOptions
  3. {
  4.     Endpoint = new Uri("https://api.deepseek.com"),
  5. };
  6. var builder = Kernel.CreateBuilder()
  7.     .AddOpenAIChatCompletion(modelId, new OpenAIClient(openAIClientCredential, openAIClientOption));
  8. var kernel = builder.Build();
复制代码

  • 谈天机器人开发
[code]var chatCompletionService = kernel.GetRequiredService();Console.WriteLine("
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

饭宝

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表