首页 > 其他分享 >【semantic Kernel】接入其他平台AI(智普)

【semantic Kernel】接入其他平台AI(智普)

时间:2024-10-29 09:58:40浏览次数:5  
标签:Kernel 智普 semantic kernel AI request result var history

Semantie Kernel中对话请求默认是发送到OpenAI去的

其他与OpenAI对话请求接口兼容的模型平台,一般只需要修改host即可,path不需要修改,可以通过HttpClientHandler修改

接入智普AI

但是智谱AI的对话接口地址是api/paas/v4/chat/completions,和OpenAI不同,所以需要修改host和path
智普官网
安装Nuget:

<PackageReference Include="Microsoft.SemanticKernel" Version="1.25.0" />

代码:

var builder = Kernel.CreateBuilder();
var httpClient = new HttpClient(new OpenAIHttpClientHandler());

builder = builder.AddOpenAIChatCompletion(modelId: "glm-4",
    apiKey: "xxxxxxx", httpClient: httpClient);

var kernel = builder.Build();
var chatCompletionService = kernel.GetRequiredService<IChatCompletionService>();

var history = new ChatHistory();
string? userInput;
do
{
    // Collect user input
    Console.Write("User > ");
    userInput = Console.ReadLine();

    // Add user input
    history.AddUserMessage(userInput);

    // Get the response from the AI
    var result = await chatCompletionService.GetChatMessageContentAsync(history, kernel: kernel);

    // Print the results
    Console.WriteLine("Assistant > " + result);

    // Add the message from the agent to the chat history
    history.AddMessage(result.Role, result.Content ?? string.Empty);
} while (userInput is not null);

使用HttpClientHandler修改host和path

public class OpenAIHttpClientHandler : HttpClientHandler
{
    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        switch (request.RequestUri?.LocalPath)
        {
            case "/v1/chat/completions":
                var uriBuilder = new UriBuilder(request.RequestUri)
                {
                    Scheme = "https",
                    Host = "open.bigmodel.cn",
                    Path = "api/paas/v4/chat/completions",//其他与OpenAI对话请求接口兼容的模型平台,一般只需要修改host即可,不需要修改path
                };
                request.RequestUri = uriBuilder.Uri;
                break;
        }

        HttpResponseMessage response = await base.SendAsync(request, cancellationToken);

        return response;
    }
}

标签:Kernel,智普,semantic,kernel,AI,request,result,var,history
From: https://www.cnblogs.com/fanfan-90/p/18512262

相关文章

  • linux 内核 LINUX_VERSION_CODE 和 KERNEL_VERSION 宏定义 版本信息
    由于Linux版本的在不断更新,当设备驱动去兼容不同版本的内核时,需要知道当前使用的内核源码版本,以此来调用对应版本的内核API,这两个宏定义在文件/usr/include/linux/version.h#defineLINUX_VERSION_CODE263213#defineKERNEL_VERSION(a,b,c)(((a)<<16)+((b)<<8)+(c))我安......
  • Ubuntu 24.04使用virtualBox启动虚拟机提示Kernel driver not installed的解决办法
    1.Ubuntu安装virtualBoxvirtualBox官方下载对应ubuntu24.04系统的deb安装包进入到下载文件所在目录使用如下apt命令安装下载好的deb安装包sudoaptinstall-f./virtualBox*2.启动虚拟机提示“Kerneldrivernotinstalled”由于我装的是双系统,ubuntu挂载了windows下使......
  • 在C#中基于Semantic Kernel的检索增强生成(RAG)实践
    SemanticKernel简介玩过大语言模型(LLM)的都知道OpenAI,然后微软Azure也提供了OpenAI的服务:AzureOpenAI,只需要申请到APIKey,就可以使用这些AI服务。使用方式可以是通过在线Web页面直接与AI聊天,也可以调用AI的API服务,将AI的能力集成到自己的应用程序中。不过这些服务都是在线提供的......
  • Linux kernel 堆溢出利用方法
    前言本文还是用一道例题来讲解几种内核堆利用方法,内核堆利用手段比较多,可能会分三期左右写。进行内核堆利用前,可以先了解一下内核堆的基本概念,当然更好去找一些详细的内核堆的基础知识。概述Linuxkernel 将内存分为 页(page)→区(zone)→节点(node) 三级结构,主要有两个内存管理器......
  • 【Kernel】基于 QEMU 的 Linux 内核编译和安装
    目录安装虚拟机系统共享目录编译内核卸载内核参考资料本文主要记录个人做存储系统研究时,在QEMU环境下编译和安装Linux内核的过程安装虚拟机系统之前在利用RocksDB+ZenFS测试ZNS的环境搭建和使用给出过借助VNC进行图形化安装的步骤,这里再给出仅通过终端进行安装的......
  • linux kernel编译
    编译x86的kernelexportARCH=x86_64exportCROSS_COMPILE=x86_64-linux-gnu-makedefconfigmake-j32中间出现了libelf.h找不到,sudoapt-getinstalllibelf-devbc解决。编译aarch64的kernelexportARCH=x86_64exportCROSS_COMPILE=x86_64-linux-gnu-makedefconfig......
  • 深入解析Semantic Kernel的编码误区:如何让本地模型“不再犯傻”
           SemanticKernel在AI领域的应用越来越广泛。然而,在使用SemanticKernel时,如果不注意一些细节问题,可能会导致你的模型表现异常,甚至出现“胡说八道”的情况。今天,我将分享一个关于使用SemanticKernel的小细节,这个问题曾让我一度陷入困惑,幸好最终找到了问题的根源......
  • 自动加载类文件时发生错误,类名【core\basic\Kernel】
    当你在使用PBootCMS时遇到“自动加载类文件时发生错误,类名【core\basicKernel】”的问题,通常是因为Kernel.php文件被误删除或丢失。特别是在阿里云虚拟主机上,这类文件可能会被误判为风险文件而被删除。以下是如何解决这一问题的具体步骤:解决方法重新下载PBootCMS模板访问PBo......
  • LInux基础——裸金属主机重装系统进入kernel Panic
    裸金属主机重装系统进入kernelPanic1、问题描述       租户裸金属主机重装系统,重启后进入”endKernelpanic–notsyncing:Fatalexception”; 2、问题分析  i.内存问题(非此类问题,忽略)     按照问题描述内核回退Calltrace是__pte_alloc内核物理内存调......
  • 《活侠传》游戏启动时闪退提示“找不到kernel32.dll”文件该怎么处理?活侠传游戏崩溃弹
    玩《活侠传》时,游戏启动就闪退,还提示“找不到kernel32.dll”文件,实在让人烦恼。此问题的解决或许有一定难度。现在为您仔细阐述处理这种情况的有效办法,助您解决难题,顺利开启游戏。本篇将为大家带来《活侠传》游戏启动时闪退提示“找不到kernel32.dll”文件该怎么处理的内容,......