部署基于go-proxy-bingai+Bing的AI聊天服务器

这篇具有很好参考价值的文章主要介绍了部署基于go-proxy-bingai+Bing的AI聊天服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需要用到

 

go-proxy-bingai开源地址:https://github.com/adams549659584/go-proxy-bingai


cloudflare(搭建服务端 一个免费的云服务器 但是分配的域名被墙了 所以需要有一个自己的域名):https://dash.cloudflare.com/

vercel(搭建客户端 功能同上):https://vercel.com/dashboard

搭建服务端:

有自己域名以后 需要解析接管给cloudflare 以阿里云为例 

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

这里红框处变为有效 即解析成功 

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

下一步 创建服务端程序workers 创建新应用 名称随便取(关系到域名 但是给的国内访问不了 后面需要添加自己的域名)

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

部署好以后 默认是一个 打印 hello world的程序

编辑代码 替换为服务端代码 代码如下:

const SYDNEY_ORIGIN = 'https://sydney.bing.com';
const KEEP_REQ_HEADERS = [
  'accept',
  'accept-encoding',
  'accept-language',
  'connection',
  'cookie',
  'upgrade',
  'user-agent',
  'sec-websocket-extensions',
  'sec-websocket-key',
  'sec-websocket-version',
  'x-request-id',
  'content-length',
  'content-type',
  'access-control-request-headers',
  'access-control-request-method',
];
const IP_RANGE = [
  ['3.2.50.0', '3.5.31.255'], //192,000
  ['3.12.0.0', '3.23.255.255'], //786,432
  ['3.30.0.0', '3.33.34.255'], //205,568
  ['3.40.0.0', '3.63.255.255'], //1,572,864
  ['3.80.0.0', '3.95.255.255'], //1,048,576
  ['3.100.0.0', '3.103.255.255'], //262,144
  ['3.116.0.0', '3.119.255.255'], //262,144
  ['3.128.0.0', '3.247.255.255'], //7,864,320
];

/**
 * 随机整数 [min,max)
 * @param {number} min
 * @param {number} max
 * @returns
 */
const getRandomInt = (min, max) => Math.floor(Math.random() * (max - min)) + min;

/**
 * ip 转 int
 * @param {string} ip
 * @returns
 */
const ipToInt = (ip) => {
  const ipArr = ip.split('.');
  let result = 0;
  result += +ipArr[0] << 24;
  result += +ipArr[1] << 16;
  result += +ipArr[2] << 8;
  result += +ipArr[3];
  return result;
};

/**
 * int 转 ip
 * @param {number} intIP
 * @returns
 */
const intToIp = (intIP) => {
  return `${(intIP >> 24) & 255}.${(intIP >> 16) & 255}.${(intIP >> 8) & 255}.${intIP & 255}`;
};

const getRandomIP = () => {
  const randIndex = getRandomInt(0, IP_RANGE.length);
  const startIp = IP_RANGE[randIndex][0];
  const endIp = IP_RANGE[randIndex][1];
  const startIPInt = ipToInt(startIp);
  const endIPInt = ipToInt(endIp);
  const randomInt = getRandomInt(startIPInt, endIPInt);
  const randomIP = intToIp(randomInt);
  return randomIP;
};

/**
 * home
 * @param {string} pathname
 * @returns
 */
const home = async (pathname) => {
  const baseUrl = 'https://raw.githubusercontent.com/adams549659584/go-proxy-bingai/master/';
  let url;
  // if (pathname.startsWith('/github/')) {
  if (pathname.indexOf('/github/') === 0) {
    url = pathname.replace('/github/', baseUrl);
  } else {
    url = baseUrl + 'cloudflare/index.html';
  }
  const res = await fetch(url);
  const newRes = new Response(res.body, res);
  if (pathname === '/') {
    newRes.headers.delete('content-security-policy');
    newRes.headers.set('content-type', 'text/html; charset=utf-8');
  }
  return newRes;
};

export default {
  /**
   * fetch
   * @param {Request} request
   * @param {*} env
   * @param {*} ctx
   * @returns
   */
  async fetch(request, env, ctx) {
    const currentUrl = new URL(request.url);
    // if (currentUrl.pathname === '/' || currentUrl.pathname.startsWith('/github/')) {
    if (currentUrl.pathname === '/' || currentUrl.pathname.indexOf('/github/') === 0) {
      return home(currentUrl.pathname);
    }
    const targetUrl = new URL(SYDNEY_ORIGIN + currentUrl.pathname + currentUrl.search);

    const newHeaders = new Headers();
    request.headers.forEach((value, key) => {
      // console.log(`old : ${key} : ${value}`);
      if (KEEP_REQ_HEADERS.includes(key)) {
        newHeaders.set(key, value);
      }
    });
    newHeaders.set('host', targetUrl.host);
    newHeaders.set('origin', targetUrl.origin);
    newHeaders.set('referer', 'https://www.bing.com/search?q=Bing+AI');
    const randIP = getRandomIP();
    // console.log('randIP : ', randIP);
    newHeaders.set('X-Forwarded-For', randIP);
    const oldUA = request.headers.get('user-agent');
    const isMobile = oldUA.includes('Mobile') || oldUA.includes('Android');
    if (isMobile) {
      newHeaders.set(
        'user-agent',
        'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.7 Mobile/15E148 Safari/605.1.15 BingSapphire/1.0.410427012'
      );
    } else {
      newHeaders.set('user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35');
    }

    // newHeaders.forEach((value, key) => console.log(`${key} : ${value}`));
    const newReq = new Request(targetUrl, {
      method: request.method,
      headers: newHeaders,
      body: request.body,
    });
    // console.log('request url : ', newReq.url);
    const res = await fetch(newReq);
    return res;
  },
};

分配的域名无法访问 需要替换成自己的域名 添加自定义域 (需要在网站里加入过后才能在此处选择)

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

 访问域名 展示如下界面 即服务端完成

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

搭建客户端:

注册一个vercel账号

注册好登录后 克隆github的开源项目go-proxy-bingai到vercel

访问下面链接:

https://vercel.com/new/clone?repository-url=https://github.com/adams549659584/go-proxy-bingai&project-name=go-proxy-bingai&repository-name=go-proxy-bingai-vercel

创建项目即可

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

 因为vercel给的链接也访问不了 还是得需要绑定自己的域名 还是用上面的 搞一个二级域名就行

在Cloudflare刚刚的域名下添加一条记录 类型CNAME 名称随便 内容cname.vercel-dns.com

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

这里遇到一个问题 我一直以为记录没有生效 仔细看页面发现 提示是页面重定义次数过多 解决方法 ssl这里改为安全 (之前是灵活)

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

最后 在Cloudflare域名下添加一个路由 (客户端域名+/sydney/*) worker选择上面创建好的服务端worker

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

 等所有解析生效后 访问客户端地址 正常会出现这样的页面

部署基于go-proxy-bingai+Bing的AI聊天服务器,服务器

 右上角设置-服务选择  选择本站 即可拥有一个自己的ai聊天机器人文章来源地址https://www.toymoban.com/news/detail-600474.html

到了这里,关于部署基于go-proxy-bingai+Bing的AI聊天服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • new bing聊天机器人免翻命令行使用--大佬逆向工程api

    可以看到,IP地址在美国。 GitHub地址 或者命令行 不会控制台获取的,可以在edge插件里面下载cookie的复制。 cn.bing界面的cookie就可以了,只要登录了且有使用权限 并且建立一个文本文件 控制台运行附带–cookie-file然后加上cookie的文件地址 如果是pip下载的可以直接在cookie文件目

    2024年02月11日
    浏览(27)
  • 解决newbing提示“今日你已达到今天的对话限制, 登录以继续你的聊天”和bing没有聊天对话框的问题

            这几天想用newbing帮我收集一些数据集,但是我科学上网之后进入www.bing.com仍然没有弹出聊天选项。上网找了一些方法,让我清除cookie和更改微软账号地区设置。“聊天”框可以弹出了,但是一聊天就提示“今日你已达到今天的对话限制, 登录以继续你的聊天”,点

    2024年02月11日
    浏览(29)
  • Bard:谷歌推出聊天机器人,与百度文心一言、ChatGPT和New Bing比较如何?

    自从谷歌在GPT-4发布一周后推出了聊天机器人Bard以来,人工智能行业再次迎来了一场巨变。Bard目前已经开启内测,作为一款聊天机器人,它受到了业界的广泛关注。在此之前,百度的文心一言、OpenAI的ChatGPT和微软的New Bing也引发了广泛讨论。那么,谷歌的Bard与这些聊天机器

    2024年02月13日
    浏览(30)
  • Zabbix第二部分:基于Proxy分布式部署实现Web监控和Zabbix HA集群的搭建

    1)分担 server 的集中式压力; 2)解决多机房之间的网络延时问题。 agent -- proxy -- server zabbix-server :整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、 统计数据及操作数据都由它组织。 Database :所有配置信息和zabbix收集到的数据都存储在数据库

    2024年02月06日
    浏览(29)
  • 部署一个本地的聊天机器人-基于ChatGLM3

    理论上来说 8G及以上显存的英伟达GPU 笔者的设备 RTX 4060Ti (16G显存) Archlinux Python 3.10.10 ChatGLM3 代码版本 33953b119e7 ChatGLM3 是智谱AI几周前才开源的模型, 6B大小的话只是个人用的话算是完全免费的. 这个相比之前的2感觉是prompt优化了一些(不过也复杂了一些), 可以直接用来让机器人

    2024年02月05日
    浏览(37)
  • 独立部署基于apiKey或accessToken的GPT聊天工具

     最近chat-GPT的强大功能让人新潮澎湃,大家都在讨论,都想尝试一下。。。 奈何用不了!自己整整,内附具体步骤,如何用手机验证码注册,如何自己搭一个前端,nodejs后端,可以访问自己的GTP。  先上图: 自己搭的: 官网: 步骤一、用个代理 因为没这个无法访问GPT官网

    2023年04月08日
    浏览(20)
  • pythonQQ机器人系列(基于go-cqhttp):使用requests和socket实现QQ机器人聊天(2-0)

    基础:requests的基本使用:QQ机器人基础  传送门 pythonQQ机器人系列:使用requests实现QQ机器人聊天(0-2) 传送门 pythonQQ机器人系列:使用requests实现QQ机器人聊天(1-0)传送门 pythonQQ机器人系列:使用requests实现QQ机器人聊天(2-0) 目录 系列文章目录 前言(一) 前言(二)

    2024年02月10日
    浏览(34)
  • ChatGPT、Google Bard、Claude2、新BING哪一款人工智能聊天机器人适合自己

      人工智能聊天机器人正在提高数无数专业人士的工作效率。下面我们就来看看目前最流行的几款强大的人工智能工具,以及它们具体如何帮助到你。 今年7月AI圈最大的动静之一便是AI初创公司Anthropic发布了其AI聊天机器人Claude最新版本——Claude2。该聊天机器人对标OpenAI的

    2024年02月11日
    浏览(44)
  • ai聊天问答知识库机器人源码,基于gpt实现的本地知识库问答实现,聊天对话效果,发送回复以及流式输出...

    现在基于gpt做自己项目的问答机器人,效果非常的好。可以把自己的文档上传上去,让机器人根据文档来进行回答。 想要实现智能AI问答功能,现在大部分都是基于向量数据库的形式。 整体的流程就是:上传文档===openai向量接口 ==== 存入向量数据库 访客咨询:  咨询问题

    2024年02月10日
    浏览(37)
  • go http-proxy

            我们这里主要讲使用HTTP/1.1协议中的CONNECT方法建立起来的隧道连接,实现的HTTP Proxy。这种代理的好处就是不用知道客户端请求的数据,只需要原封不动的转发就可以了,对于处理HTTPS的请求就非常方便了,不用解析他的内容,就可以实现代理。 启动代理监听  

    2024年02月10日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包