<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用 Microsoft.SemanticKernel 與國產大模型 API 集成實現對話系統

       

      近年來,隨著 國產大模型 的崛起,很多開發者和企業選擇將其集成到自己的應用中,以滿足對人工智能技術的需求。在本文中,我們將展示如何使用 Microsoft.SemanticKernel 庫與國產大模型 API 集成,構建一個支持對話系統的應用程序。

      我們將以 Zhipu AI(智譜AI) 作為示例,展示如何將其作為后端服務,替換掉 OpenAI API,從而使用國產大模型。

      一、前期準備

      在開始開發之前,需要做以下準備:

      1. 安裝 Microsoft.SemanticKernel 包

      Microsoft.SemanticKernel 是一個開源框架,可以幫助開發者更便捷地與大型語言模型(如 OpenAI、Google、或其他廠商提供的模型)進行交互。

      我們需要首先安裝這個 NuGet 包。

      使用 NuGet 包管理器安裝
      1. 打開你的 Visual Studio 項目。

      2. 右鍵點擊 解決方案資源管理器 中的項目,選擇 Manage NuGet Packages

      3. NuGet 包管理器 中,選擇 瀏覽 標簽頁,搜索 Microsoft.SemanticKernel

      4. 找到該包后,點擊 安裝

      使用 NuGet 控制臺安裝

      你也可以通過 NuGet 控制臺 來安裝:

      Install-Package Microsoft.SemanticKernel -Version 1.59.0
      
      使用 .NET CLI 安裝

      如果你喜歡命令行操作,可以在項目目錄下使用以下命令:

      dotnet add package Microsoft.SemanticKernel --version 1.59.0
      

      2. 獲取國產大模型 API 密鑰

      不同的國產大模型提供不同的 API 訪問方式。以 Zhipu AI 為例,開發者需要在其平臺上申請 API 密鑰,才能使用該模型的功能。你需要登錄到 Zhipu OpenAI API 提供商的官網,申請并獲取你的 API 密鑰。

      二、項目代碼實現

      在本部分,我們將展示如何使用 Microsoft.SemanticKernel 庫與 Zhipu AI 的 API 集成,構建一個簡單的對話系統。

      1. 設置 SemanticKernel 內核和 API 配置

      首先,我們創建一個 SemanticKernel 內核,并設置與 Zhipu OpenAI API 的通信配置。

      using Microsoft.SemanticKernel;
      using Microsoft.SemanticKernel.ChatCompletion;
      
      var kernelBuilder = Kernel.CreateBuilder();
      var httpClient = new HttpClient(new ZhipuOpenAIHttpClientHandler());
      var builder = kernelBuilder.AddOpenAIChatCompletion(modelId: "glm-4-flash-250414", // 這里可以替換成你自己的模型 ID
          apiKey: "你的API密鑰", httpClient: httpClient);
      
      var kernel = builder.Build();
      var chatCompletionService = kernel.GetRequiredService<IChatCompletionService>();
      

      在這段代碼中,我們創建了一個 kernelBuilder,它用于初始化 SemanticKernel 內核。在 AddOpenAIChatCompletion 方法中,我們配置了模型 ID 和 API 密鑰,并指定了自定義的 HTTP 客戶端處理器,通過 httpClient 與 Zhipu OpenAI API 進行交互。

      2. 用戶輸入和模型回復的交互邏輯

      接下來,我們實現了與用戶的對話交互。用戶輸入內容后,我們將其傳遞給 AI 模型,獲取模型的回復,并在控制臺中顯示。

      var history = new ChatHistory();
      string? userInput;
      do
      {
          // 收集用戶輸入
          Console.Write("User > ");
          userInput = Console.ReadLine();
      
          // 將用戶輸入添加到對話歷史
          history.AddUserMessage(userInput);
      
          // 獲取模型的回復
          var result = await chatCompletionService.GetChatMessageContentAsync(history, kernel: kernel);
      
          // 輸出結果
          Console.WriteLine("Assistant > " + result);
      
          // 將模型的回復添加到對話歷史
          history.AddMessage(result.Role, result.Content ?? string.Empty);
      } while (userInput is not null);
      

      這段代碼實現了一個簡單的 命令行聊天系統,用戶可以輸入問題或命令,系統會通過 Zhipu AI 獲取回答,并將對話歷史保存在 ChatHistory 對象中。

      3. 自定義 HTTP 客戶端處理器

      由于 Zhipu OpenAI 提供了與 OpenAI 兼容的 API 接口,但主機和路徑可能不同,我們需要創建一個自定義的 HTTP 請求處理器,以便將請求正確路由到 Zhipu 的 API 地址。

      public class ZhipuOpenAIHttpClientHandler : HttpClientHandler
      {
          protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
          {
              // 如果請求路徑是 /v1/chat/completions,重定向請求到 Zhipu OpenAI API
              switch (request.RequestUri?.LocalPath)
              {
                  case "/v1/chat/completions":
                      var uriBuilder = new UriBuilder(request.RequestUri)
                      {
                          Scheme = "https",
                          Host = "open.bigmodel.cn", // Zhipu OpenAI API 的主機地址
                          Path = "api/paas/v4/chat/completions", // 適配的接口路徑
                      };
                      request.RequestUri = uriBuilder.Uri;
                      break;
              }
      
              // 發起請求并返回響應
              HttpResponseMessage response = await base.SendAsync(request, cancellationToken);
              return response;
          }
      }
      

      這段代碼通過自定義的 ZhipuOpenAIHttpClientHandler 類,攔截并修改請求 URL,使得原本發往 OpenAI 的請求能夠被轉發到 Zhipu OpenAI API。這個操作是通過 HttpClientHandler 類來實現的。

      三、總結

      通過以上步驟,我們成功將 Microsoft.SemanticKernel國產大模型(如 Zhipu OpenAI)的 API 集成,實現了一個能夠與用戶進行對話的簡單系統。以下是本教程的關鍵點:

      1. 安裝 Microsoft.SemanticKernel 庫,提供與大型語言模型的集成功能。

      2. 使用 Zhipu OpenAI(或其他國產大模型)API 作為后端模型。

      3. 創建自定義的 HTTP 請求處理器,確保請求被正確路由到 Zhipu 的 API。

      4. 實現一個簡單的對話系統,支持用戶與 AI 進行互動,并保持對話歷史。

      這種集成方式不僅適用于開發者構建自定義對話系統,也可以幫助企業利用國產大模型實現本地化的 AI 應用。通過 Microsoft.SemanticKernel,你可以輕松地替換不同的 AI 后端服務,實現靈活的模型切換和定制。

      posted @ 2025-07-02 14:04  努力,努力再努力  閱讀(86)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 激情亚洲内射一区二区三区| 大城县| 激情文学一区二区国产区| 久久国产国内精品国语对白| 久久国产精品77777| 欧美激情一区二区三区成人| 国产成人亚洲一区二区三区| 国产午夜精品福利视频| 亚洲a成人片在线观看| 国产极品美女高潮抽搐免费网站| 日韩精品人妻黄色一级片| 在线观看成人永久免费网站 | 人人妻人人澡人人爽| 国产精品亚洲А∨怡红院| 黄瓜视频在线观看| 国内自拍小视频在线看| 亚洲成在人线在线播放无码| 欧美三级a做爰在线观看 | 精品亚洲精品日韩精品| 国内精品大秀视频日韩精品| 韩国三级+mp4| 人妻激情偷一区二区三区| 国产精品久久久久久久9999| 亚洲岛国成人免费av| 天天爽夜夜爱| 国产拍拍拍无码视频免费| 在线精品国产中文字幕| 亚洲男人第一无码av网站| 人妻中文字幕亚洲精品| 特黄大片又粗又大又暴| 国产精品爆乳奶水无码视频免费| 国产午夜美女福利短视频| 久久天天躁夜夜躁狠狠85| 日韩秘 无码一区二区三区| 精品人妻av综合一区二区| 人人爽人人爽人人片av东京热| 四房播色综合久久婷婷| 一区二区不卡99精品日韩| 久热这里只有精品12| 五月综合激情婷婷六月| 91色老久久精品偷偷性色|