首页 > 其他分享 >如何在Semantic Kernel中使用第三方代理OpenAI API接口

如何在Semantic Kernel中使用第三方代理OpenAI API接口

时间:2024-04-16 15:55:55浏览次数:28  
标签:Kernel Semantic 请求 API OpenAI 第三方

最近手里没有官方的OpenAI API Key了,只能在第三方代理平台去购买API Key。
但是使用Semantic Kernel的时候发现AddOpenAIChatCompletion不像AddAzureOpenAIChatCompletion那样可以选择终结点
去看了下Semantic Kernel项目下的issues,这个问题被提及了好几次,但是官方仍然没有提供Endpoint。不过广大的开发者们想出了应对方法,就是对参数里的HttpClient进行更改。
有很多途径可以把HttpClient请求里的官方API域名改为第三方代理OpenAI域名,但是这里只提及一个我试了可以用的:

  1. 确保已安装包Microsoft.Extensions.Http
  2. 先自定义一个 HTTP 消息处理程序(DelegatingHandler),它用于处理 HTTP 请求并在发送请求前对请求进行修改。
  3. 重写其SendAsync方法,该方法在发送 HTTP 请求时被调用,将请求的目标 URI 修改为了一个新的 URI。
class CustomRedirectingHandler() : DelegatingHandler(new HttpClientHandler())
{
    protected override Task<HttpResponseMessage> SendAsync(
        HttpRequestMessage request, CancellationToken cancellationToken)
    {
        request.RequestUri = new UriBuilder(request.RequestUri!) { Host = "api.xxxxxx.com" }.Uri; //替换为第三方代理API的地址
        return base.SendAsync(request, cancellationToken);
    }
}

然后就可以在注册服务时使用了

var builder = Kernel.CreateBuilder().
    "gpt-3.5-turbo",
    "your-api-Key");

builder.Services.ConfigureHttpClientDefaults(
    b => b.ConfigurePrimaryHttpMessageHandler(
        () => new CustomRedirectingHandler()));

这个时候你拿到的IChatCompletionService就会将请求直接发送到第三方代理OpenAI API

标签:Kernel,Semantic,请求,API,OpenAI,第三方
From: https://www.cnblogs.com/tonwin/p/18138364

相关文章

  • Docker-compose部署项目(Fastapi项目为例)
    1.有Dockerfile文件进行部署,Dockerfile内容参考FROM127.0.0.1:5000/py3.10-1COPYrequirements.txt.RUNpipinstall-ipip源-rrequirements.txt2.Docker-compose.yml文件env_file指定环境变量,看项目是否使用env环境变量volumes挂在工作目录映射,工作目录更改代码容......
  • 免费版ChatGPT API Key生成
    ChatGPT现在虽然都免费了,但是不岢雪(那俩字竟然是敏感字)上网还是很麻烦,网上有很多gpt网站可以用,但是自己用来开发的话,还是需要一个apikey的项目地址https://github.com/chatanywhere/GPT_API_free可以直接去官网看如何申请申请地址https://api.chatanywhere.org/v1/oauth/fr......
  • Docker使用Dockerfile部署Fastapi应用
    1#使用官方的Python运行时作为基础镜像2FROMpython:3.9-slim34#设置工作目录5WORKDIR/app67#复制应用程序的依赖文件到工作目录8COPYrequirements.txt.910#安装应用程序的依赖11RUNpipinstall--no-cache-dir-rrequirements.txt12......
  • C++身份核验接口代码、身份证OCR、身份证实名认证API
    实名认证是什么意思呢?一般指的是对用户资料真实性进行的验证审核,这样有利于建立完善且可靠的互联网环境。如果交易双方使用的都是虚假信息,那么在诸多环节会存在很大的风险。另外,还有游戏平台对玩家进行实名认证,防止未成年人注册。实名认证有利于网络绿化,所以在互联网发展......
  • 一文读懂.NET WebAPI中FromRoute、FromQuery、FromBody的关键角色与用法
    .NETWebAPI作为一种构建RESTful服务的强大工具,为开发者提供了便捷的方式来定义、处理HTTP请求并返回响应。在设计API接口时,正确地接收和解析客户端发送的数据至关重要。.NETWebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用于指示控制器方法应如何从不同的请求......
  • ABP -Vnext框架一步一步入门落地教程——使用ABP -Vnext创建一个WEBAPI接口(二)
    人生需要指引,而复制是成功最快的方式,兄弟们让我们发车吧————代码大牛ljy开发主题:何谓开发应用服务端在官方开发教程这一段的内容叫做开发应用服务端,作为现在前后端分离的开发模式来说,一个应用就分为前端页面框架和后端API,页面框架调用WEBAPI实现业务就完事了。所以咱们今天......
  • 如何增强Java Excel API 的导入和导出性能
    前言GrapeCityDocumentsforExcel(以下简称GcExcel)是葡萄城公司的一款服务端表格组件,它提供了一组全面的API以编程方式生成Excel(XLSX)电子表格文档的功能,支持为多个平台创建、操作、转换和共享与MicrosoftExcel兼容的电子表格;从而使其成为解决所有电子表格挑战的完......
  • RN API基础操作篇
    1.EXPO的项目环境下,允许应用访问手机媒体(例如相册)的方法import*asMediaLibraryfrom'expo-media-library';const{status}=awaitMediaLibrary.requestPermissionsAsync();if(status!=='granted'){//未授权的话,返回console.log('Permissiontoac......
  • 利用Sqlmap API接口联动Google Hacking批量SQL注入检测
    目录前言slghack自动化搜集URLSqlmapAPI脚本slghack_sqli前言挖掘SQL注入漏洞的一种方式就是通过GoogleHacking搜索那些可能存在SQL的URL,然后手工的探测注入点。但是现在的SQL注入漏洞的网站是比较少的了,所以这样一个一个手工测效率有一点低。sqlmap比较好的一点是可批量扫描......
  • 2、APIView执行流程以及request对象源码分析
    一、基于View编写5个接口1、创建模型表models.pyfromdjango.dbimportmodelsclassBook(models.Model):name=models.CharField(max_length=64)price=models.IntegerField()publish=models.CharField(max_length=32)2、视图函数views.pyfrom......