当前位置: 首页 > wzjs >正文

有做材料的网站吗秦淮区建设局网站

有做材料的网站吗,秦淮区建设局网站,泉州网红,lsp专用浏览器文章目录 使用 Semantic Kernel 快速对接国产大模型实战指南(DeepSeek/Qwen/GLM)一、引言二、环境准备2.1 开发环境2.2 模型服务配置 三、核心代码实现3.1 会话代码封装3.2 CurModelContext封装3.3 DeepSeek对接示例3.4 Qwen对接示例3.5 GLM对接示例 四、…

文章目录

  • 使用 Semantic Kernel 快速对接国产大模型实战指南(DeepSeek/Qwen/GLM)
    • 一、引言
    • 二、环境准备
      • 2.1 开发环境
      • 2.2 模型服务配置
    • 三、核心代码实现
      • 3.1 会话代码封装
      • 3.2 CurModelContext封装
      • 3.3 DeepSeek对接示例
      • 3.4 Qwen对接示例
      • 3.5 GLM对接示例
    • 四、常见问题排查
    • 五、总结

使用 Semantic Kernel 快速对接国产大模型实战指南(DeepSeek/Qwen/GLM)

一、引言

在人工智能应用开发中,统一对接不同大模型的能力至关重要。微软推出的 Semantic Kernel 作为优秀的 AI 编排框架,能够帮助我们快速对接各类大模型。本文将手把手教你如何使用 Semantic Kernel 对接国内三大主流模型:DeepSeek、通义千问(Qwen)和智谱AI(GLM),并提供可运行的代码示例。文末提供完整代码示例和注意事项。


二、环境准备

2.1 开发环境

• .NET 6+ SDK

• Visual Studio 2022

• NuGet包:

 ```bashdotnet add package Microsoft.SemanticKernel```

2.2 模型服务配置

模型接口地址示例API Key获取方式
DeepSeekhttps://api.deepseek.com/v1DeepSeek平台申请(需充值)
Qwenhttps://api.siliconflow.cn/SiliconCloud平台申请(有免费额度)
GLMhttps://open.bigmodel.cn/api/paas/v4/chat/completions智谱AI开放平台申请(有免费模型)

三、核心代码实现

下述内容封装两种对话交互模式,采用统一的接口设计:

  • 非流式输出:完整获取响应后一次性输出

  • 流式输出:实时输出响应片段,提升交互体验

注:两种模式都提供了对话历史管理机制,确保多轮对话上下文连贯性。

3.1 会话代码封装

/// <summary>
/// 统一对话管理(非流式)
/// </summary>
/// <param name="kernel"></param>
/// <returns></returns>
private async Task StartChatSession(Kernel kernel)
{var chatService = kernel.GetRequiredService<IChatCompletionService>();var history = new ChatHistory();while (true){Console.Write("用户 > ");var input = Console.ReadLine();history.AddUserMessage(input);var response = await chatService.GetChatMessageContentAsync(history);Console.WriteLine($"助手 > {response.Content}");history.AddAssistantMessage(response.Content);}
}/// <summary>
/// 统一对话管理(流式输出)
/// </summary>
/// <param name="kernel"></param>
/// <returns></returns>
private async Task StartStreamingChatSession(Kernel kernel)
{var chatService = kernel.GetRequiredService<IChatCompletionService>();var history = new ChatHistory();while (true){///获取用户输入Console.Write("用户 > ");var input = Console.ReadLine();//将用户输入添加到历史记录history.AddUserMessage(input);//获取流式响应var response = chatService.GetStreamingChatMessageContentsAsync(chatHistory: history,kernel: kernel);Console.WriteLine($"助手 > ");string resStr = "";//输出流式响应await foreach (var chunk in response){resStr += chunk;//拼接聊天记录Console.Write(chunk);}//将完整的响应添加到历史记录history.AddAssistantMessage(resStr);//输出换行Console.WriteLine();}
}

3.2 CurModelContext封装

将要获取的模型,按如下方式封装,也可直接写死在代码中,其中“sk-xx”和“Model”按需替换实际使用的key和模型。

/// <summary>
/// 全局参数
/// </summary>
public class Global
{/// <summary>/// 获取模型配置/// </summary>public static ModelConfig CurModelContext(string model){switch (model){case "glm-4-flash":return new ModelConfig{Model = "glm-4-flash",EndpointKey = "https://open.bigmodel.cn/api/paas/v4",ApiKey = "sk-xxx"};case "glm-z1-flash":return new ModelConfig{Model = "glm-z1-flash",EndpointKey = "https://open.bigmodel.cn/api/paas/v4",ApiKey = "sk-xxx"};case "Qwen/Qwen2.5-72B-Instruct":return new ModelConfig{Model = "Qwen/Qwen2.5-72B-Instruct",EndpointKey = "https://api.siliconflow.cn",ApiKey = "sk-xxx"};case "deepseek-chat":return new ModelConfig{Model = "deepseek-chat",EndpointKey = "https://api.deepseek.com/v1",ApiKey = "sk-xxx"};case "deepseek-reasoner":return new ModelConfig{Model = "deepseek-reasoner",EndpointKey = "https://api.deepseek.com/v1",ApiKey = "sk-xxx"};default:break;}return null;}
}

3.3 DeepSeek对接示例

var modelConfig = Global.CurModelContext("deepseek-chat");// 1. 填充OpenAI格式LLM调用参数值
var modelId = modelConfig.Model;
var endpoint = modelConfig.EndpointKey;
var apiKey = modelConfig.ApiKey;// 2. 创建一个OpenAI聊天完成的内核
var builder = Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId,new Uri(endpoint),apiKey);// 4.构建内核
Kernel kernel = builder.Build();//5. 对话功能(流式)
await StartStreamingChatSession(kernel);//6. 对话功能(非流式)
//await StartChatSession(kernel);

在这里插入图片描述

3.4 Qwen对接示例

var modelConfig = Global.CurModelContext("Qwen/Qwen2.5-72B-Instruct");
// 1. 填充OpenAI格式LLM调用参数值
var modelId = modelConfig.Model;
var endpoint = modelConfig.EndpointKey;
var apiKey = modelConfig.ApiKey;// 2. 创建一个OpenAI聊天完成的内核
var builder = Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId,new Uri(endpoint),apiKey);// 4.构建内核
Kernel kernel = builder.Build();//5. 对话功能(流式)
await StartStreamingChatSession(kernel);//6. 对话功能(非流式)
//await StartChatSession(kernel);

在这里插入图片描述


3.5 GLM对接示例

var modelConfig = Global.CurModelContext("glm-4-flash");// 1. 填充OpenAI格式LLM调用参数值
var modelId = modelConfig.Model;
var endpoint = modelConfig.EndpointKey;
var apiKey = modelConfig.ApiKey;// 2. 创建一个OpenAI聊天完成的内核
var builder = Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId,new Uri(endpoint),apiKey);// 4.构建内核
Kernel kernel = builder.Build();//5. 对话功能(流式)
await StartStreamingChatSession(kernel);
//6. 对话功能(非流式)
//await StartChatSession(kernel);

在这里插入图片描述
在这里插入图片描述


四、常见问题排查

  • 401 鉴权失败

    • 检查 API Key 有效性
    • 确认密钥传递方式符合平台要求
  • 模型响应超时

    • 检查网络连通性

    • 确认 endpoint 配置正确

  • 输出格式异常

    • 调整 temperature 参数

    • 检查 max_tokens 限制

五、总结

通过 Semantic Kernel 的统一接口,开发者可以快速实现国内主流大模型的集成。建议根据实际需求选择模型,并充分利用SK的插件系统、记忆机制和工具调用特性构建企业级AI应用。

  • 优先选用兼容 OpenAI 格式的模型
  • 对于特殊接口的模型需实现自定义OpenAI 格式封装
http://www.dtcms.com/wzjs/824163.html

相关文章:

  • 北京网站建设w亿玛酷1订制排版
  • soho外贸网站建设网页链接制作生成器
  • 福建住房城乡建设厅网站株洲seo优化官网
  • pexels素材网站深圳中小企业网站制作
  • 做钓鱼网站原理windows优化大师官网
  • 网站开发融资网站建设去哪找客户
  • 哈尔滨模板建站哪个品牌好巴里坤网站建设
  • 网站建设华网天下制作作网站建设工资高吗
  • 做网站的属于什么网站建设的商业计划书
  • 洛阳网站建设哪家权威上海公司注销需要多少钱费用?
  • 南阳微网站开发建筑网官网软件
  • 公司英文网站建设安徽建设厅证书查询网网站
  • 国家住房部和城乡建设部 网站中国纪检监察报网官网
  • 通辽大柒网站建设有限公司WordPress外链自动转内链
  • 徐州制作网站的公司有哪些视频类的网站制作
  • 本机可以做网站的服务器吗专业的集团网站建设
  • 天猫网站建设的目标是什么网站推广seo代理
  • 泰安网站建设公司哪家好商城开源免费商用
  • 著名的网站建设公司云南建设局网站
  • 贵阳哪里做网站淘宝网网页版登录官网登录
  • 阿里云个人网站制作微信商城网站开发
  • 无锡做网站公司有哪些网站关键词优化怎么做的
  • 怎么做镜像网站谷歌排名推广公司
  • 凌源市建设局网站黄骅市做网站价格
  • 济南的企业网站建设aitt网站建设中
  • 辽宁网站定制企业WordPress的login在哪里改
  • 网站建设柒金手指花总12网站的数据库是什么
  • 网站内部链接有什么作用工业产品设计网
  • 番禺做网站价格重庆丙图网络科技有限公司
  • 静态网页素材四川成都网站优化