Yarp项目代理ChatGPT,解决网络无法访问openAI的问题

1.创建Yarp项目

目的:通过代理解决网络无法访问openAI的问题
项目源码地址:https://github.com/raokun/YarpProject

1.创建.net7 webapi项目

创建一个webapi项目

image-20230525152756931

image-20230525152813384

2.搜索安装nuget包

1.搜索最新的Yarp.ReverseProxy包

https://www.nuget.org/packages?q=Yarp.ReverseProxy

image-20230525153121756

2.安装

PackageReference最新版本为2.0.0,复制PackageReference

<PackageReference Include="Yarp.ReverseProxy" Version="2.0.0" />

image-20230525153355715

项目中安装Yarp.ReverseProxy

image-20230525153610519

3.appsetting.json添加yarp配置

image-20230525154444777

配置内容:

"ReverseProxy": {"Routes": {"route1": {"ClusterId": "chatcluster","Match": {"Path": "/v1/{**catch-all}"}}},"Clusters": {"chatcluster": {"Destinations": {"chatdestination": {"Address": "https://api.openai.com/"}}}}}

4.program.cs添加YARP

image-20230525154920135

2.服务部署

.net项目部署docker可参照我的博客:TerraMoursVue-V0.1部署(适用于通用的vue项目部署到服务器docker)
选择一台可以访问openAI的服务器

1.部署结果

http://{你的IP}:{端口} 代理了https://api.openai.com
image-1685323920420

3.彩蛋:chatgpt提供的代码

1.提问chatgpt

什么是Yarp.ReverseProxy,怎么使用Yarp.ReverseProxy开发一个反向单例的.net7项目

image-20230525151643022

2.chatgpt的回答

Yarp.ReverseProxy 是一个 .NET Core 平台下的反向代理库,它提供了一组 API,可以让 .NET 开发人员轻松地实现反向代理功能。开发人员可以使用 Yarp.ReverseProxy 提供的 API 来将客户端的请求代理到多个后端服务器,同时还可以对代理请求进行各种处理,例如路由、重定向、负载均衡、缓存等等。

使用 Yarp.ReverseProxy 开发一个反向代理的 .NET Core 项目,可以按照以下步骤进行:

  1. 创建 .NET Core 项目并添加 Yarp.ReverseProxy NuGet 包。
  2. 编写反向代理的配置文件,例如 appsettings.json,该配置文件主要包括以下信息:
  • Proxying 配置,包括代理的转发设置和目标 URL。
  • Cluster 配置,包括在反向代理中使用的集群的设置。
  1. 在应用程序启动时,将反向代理的配置加载到内存中。
  2. 在应用程序中使用 Yarp.ReverseProxy 提供的 API 来处理客户端的请求,例如路由、负载均衡、控制缓存、记录日志等等。
  3. 部署应用程序并启动反向代理服务。

在开发过程中,Yarp.ReverseProxy 官方文档提供了详细的 API 文档和使用示例,开发人员可以按照文档说明调用相应的 API 进行开发和测试。同时,也可以参考其他开源项目的源代码,例如 dotnet/aspnetcore 中的 Samples/ReverseProxy 示例项目,以了解如何更好地使用 Yarp.ReverseProxy。

总而言之,使用 Yarp.ReverseProxy 开发一个反向代理的 .NET Core 项目是一个相对简单、高效的方案,因为其提供了很好的性能、可扩展性和易于维护性。内部实现 Yarp.ReverseProxy 是基于 ASP.NET Core 的构建的,为了使用它,需要先安装 .NET Core SDK 和 Visual Studio。安装完成之后,在 Visual Studio 中创建一个新的 ASP.NET Core Web 应用程序,并在 NuGet 中安装 Yarp.ReverseProxy 包。拥有基本知识后可以开始使用 ReverseProxy

  1. 在配置文件中指定代理的服务地址和端口等信息。可以使用 appsettings.json ,或者 appsettings.Development.json 文件,这里放一个简单的配置:
"ReverseProxy": {"Routes": [{"RouteId": "wordpress","ClusterId": "wordpress","Match": {"Path": "/wordpress/{**catch-all}"}}],"Clusters": {"wordpress": {"Destinations": {"pass": {"Address": "http://localhost:8081","Metadata": {"Protocol": "http"}}}}}}

这个配置文件定义了一个名称叫“wordpress”的代理路由,它可以“匹配”来自客户端的 RESTful API 请求,并将它们代理到一个名为“pass”的目标位置。代理目标的地址是“http://localhost:8081”。

  1. 在 Startup.cs 文件中添加必要的 Nuget 依赖项、中间件、代码处理器和配置加载等功能,如下所示。
public class Startup{public void ConfigureServices(IServiceCollection services){services.AddReverseProxy().LoadFromConfig(Configuration.GetSection("ReverseProxy"));}public void Configure(IApplicationBuilder app, IWebHostEnvironment env){app.UseRouting();app.UseEndpoints(endpoints =>{endpoints.MapReverseProxy();});}}

这段代码将引入反向代理中间件,并从 appsettings.json 文件中加载配置信息。接下来将使用端点映射定义反向代理的路由和目标地址。在本例中,端点映射使用 UseEndpoints() 方法创建了一个反向代理路由。

  1. 运行应用程序并测试代理功能。在浏览器中访问代理路由,例如:http://localhost:5000/wordpress/index.html,将会被代理并转发到目标地址:http://localhost:8081/wordpress/index.html。

这就是使用 Yarp.ReverseProxy 实现的简单反向代理功能。当然,若要进行更复杂的代理操作,例如路由匹配规则,请求目标服务器的接口转换,或者负载均衡和故障转移等,则需要更详细的配置、代码处理和调试工作。

总之,ASP.NET Core 中的 Yarp.ReverseProxy 反向代理库可以方便地实现应用程序的负载均衡和扩展性,即使不准确地按照该教程的步骤进行,也可为读者提供足够的知识点来实现使用中可能会遇到的大多数问题。

阅读如遇样式问题,请前往个人博客浏览: https://www.raokun.top
拥抱ChatGPT:https://ai.terramours.site
开源项目地址:https://github.com/firstsaofan/TerraMours

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34886.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPT-4 价值 20 美金的回复:是拯救还是毁灭?

编者注 - 周末闲着无聊&#xff0c;我们分别对比研究了 ChatGPT 2、3、4 版本的对话内容&#xff0c;结果发现&#xff0c;相较于前两个版本&#xff0c;第四版的精准度确实有所提高&#xff0c;但ChatGPT - 4 需要付费 20 美金。为了让这个发现更加有趣&#xff0c;我从网上挑…

【解决密码栏不显示】“可能是其他人在试图访问您的google账号....”

背景&#xff1a;Google浏览器上的账号自动退出了。 起因&#xff1a;自己又记成了邮箱的密码&#xff0c;多输入了几次&#xff0c;导致账号被锁不显示密码栏。 经过&#xff1a; 一、网上找了很多方法&#xff0c;有①重置②卸载等 二、我只重置了&#xff0c;但未卸载&a…

ORACLE锁定账户的原因及解决办法

工作中&#xff0c;发现一个ORACLE用户被锁定&#xff0c;查看状态如下图&#xff1a; profile可以用来对用户所能使用的数据库资源进行限制 查看monitor使用的profile&#xff1a; SELECT PROFILE FROM DBA_USERS WHERE USERNAMEMONITOR;结果如下&#xff1a; 查看对应的pro…

当提示“当前帐户被锁定,可能无法登录”时,如何解锁帐户?

解锁帐户的方法 错误提示解锁方法等待30分钟移除账户锁定阈值检查DNS设置设置密码永不过期清除缓存的凭据域环境中的帐户解锁错误提示 在登录电脑时,有时会出现如下登录错误的提示,我们可以按照以下几个方法来解锁账号。 解锁方法 等待30分钟 有一个设置用于配置输入错误…

关于oracle账户被锁定的解决办法

1.win r,输入cmd 2.输入sqlplus/nolog 3.输入conn/as sysdba 4.输入解锁语句&#xff1a;alter user 用户名 account unlock&#xff1b; 5.然后退出&#xff0c;输入用户名&#xff0c;密码&#xff0c;重新连接数据库成功

算力单位详解

TOPS TOPS是Tera Operations Per Second的缩写&#xff0c;1TOPS代表处理器每秒钟可进行一万亿次&#xff08;10^12&#xff09;操作。 与此对应的还有GOPS&#xff08;Giga Operations Per Second&#xff09;&#xff0c;MOPS&#xff08;Million Operation Per Second&…

到底什么是“算力”?

转载&#xff1a;到底什么是“算力”&#xff1f; 作者&#xff1a;小枣君 来源&#xff1a;鲜枣课堂&#xff08;ID&#xff1a;xzclasscom&#xff09; 这两年&#xff0c;算力可以说是ICT行业的一个热门概念。在新闻报道和大咖演讲中&#xff0c;总会出现它的身影。 那么&a…

ETH挖矿显卡算力大全

大家买显卡挖ETH&#xff0c;肯定最关心算力了&#xff0c;这里我整理一版&#xff0c;供大家参考&#xff0c;目前只有主流的整理上了&#xff0c;后期会完善更多的供大家参考&#xff01; 欢迎大家加入大力矿工群&#xff1a;621159725 软件下载&#xff1a;百度云盘链接…

GPU算力平台对比

对InsCode、智星云、恒源云、AutoDL以RTX 3090进行对比。 InsCode InsCode&#xff1a;https://inscode.csdn.net/gpu?utm_source260232576&spm1001.2014.3001.8290 智星云 智星云&#xff1a;http://gpu.ai-galaxy.cn/store?applicationAI%E4%BA%91%E5%AE%B9%E5%99…

世界超算最新排名出炉!

本文转载自程序员极客实验室 【导读】全球最新的超级计算机排名出炉&#xff0c;在TOP10榜单上变化不大&#xff0c;日本富岳凭借着领先第二名3倍的算力继续霸榜&#xff0c;不过从技术趋势来看&#xff0c;却有了新的变化。 在德国法兰克福举行的国际超级计算大会上&#xf…

【教程】腾讯云轻量应用服务器搭建聊天室

前言 前些日子听朋友说&#xff0c;他们领的腾讯云轻量246还在吃灰&#xff0c;我在萌备聊天室里看见了这个系统 感觉挺不错 那这篇文章就教大家用宝塔来搭建一个聊天室 介绍 Fiora系统非常简洁&#xff0c;而且也有很多功能&#xff0c;基于 node.js, mongodb, react 和 so…

云服务器搭建全过程(阿里云、腾讯云等...通用)

云主机LNMP环境搭建详解&#xff08;CentOS 6.9 64位系统&#xff09; 一、登录云主机 当购买云主机后会得到如下云主机信息 1.公网ip &#xff08;这里假设为 123.124.124.125 &#xff09;2.登录云主机的密码&#xff08;这里假设为 123456 &#xff09; 注&#xff1a; …

手把手带大家搭建一台服务器(腾讯云为例)

今天带大家入门如何搭建服务器&#xff0c;主要是面向小白读者。先说好&#xff0c;我自己也不是专业做后端的&#xff0c;只不过平时爱折腾点项目玩玩&#xff0c;所以有点小经验&#xff0c;本文就是基于这点小经验讲解的&#xff0c;如有不当之处还请谅解。 一、什么是服务器…

Unity 智能语音助手

Unity智能语音聊天机器人 在本篇文章中&#xff0c;使用了百度的语音识别、语音合成、智能对话Unit的功能&#xff0c;制作成了一款简易的聊天机器人&#xff0c;在开始做之前呢&#xff0c;需要确定需要实现的核心功能&#xff0c;有以下几点&#xff1a; &#xff08;1&…

PointNetGPD代码复现

0、安装分析 ps.应该安装pcl1.9tk8.1。这个导致后面python-pcl改了配置 Ubuntu版本pcl版本vtk版本18.041.9.18.2.0 1、pcl1.9安装 1.1 安装依赖 sudo apt-get update sudo apt-get install git build-essential linux-libc-dev sudo apt-get install cmake cmake-gui su…

【goframe】(2)实现上下文原理,在chatgpt中,经过折腾研究,要做好上下文需要把之前的信息都存储上,再一起发送过去就可以了

目录 前言1&#xff0c;关于chatgpt api 接口2&#xff0c;增加上下文方法3&#xff0c;总结 前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/129846766 未经博主允许不得转载。 博主CSDN地址是&#xff1a;https://blog.csdn.net/freewebsys 博主…

chatgpt赋能python:Python中的with语句:简化上下文管理器的使用

Python中的with语句&#xff1a;简化上下文管理器的使用 在Python中&#xff0c;上下文管理器&#xff08;context managers&#xff09;用于处理在程序执行中打开和关闭文件、线程锁、数据库连接等资源的操作。一个上下文管理器需要定义__enter__和__exit__两个方法&#xff…

chatgpt赋能python:Python爬虫获取商品数据的方法

Python爬虫获取商品数据的方法 在当今的电商时代&#xff0c;获取商品数据是非常重要的一项工作。而使用Python编写爬虫程序则是实现这一目标的有效手段之一。 什么是Python爬虫&#xff1f; 简而言之&#xff0c;Python爬虫是指利用Python编写程序&#xff0c;对特定网站进…

chatgpt赋能python:Python爬取聊天记录:如何轻松获取数据并进行分析?

Python爬取聊天记录&#xff1a;如何轻松获取数据并进行分析&#xff1f; 在当今数字化时代&#xff0c;人们越来越依赖于网络交流。社交媒体和通讯应用程序如今非常流行&#xff0c;它们让人们随时随地与家人、朋友和同事保持联系。这些应用程序产生了大量聊天记录数据&#…

最新53家央企数字化转型路线图发布

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 中央企业是我国经济高质量发展的主力军、实体经济的顶梁柱&#xff0c;在推进两化融合和数字化转型中发挥着战略性支撑作用。 信…