chatgpt怎么搭建,以及怎么接入企业微信工作台

news2024/9/20 15:15:17

gpt目前也用了一段时间了,用起来只能说越来越顺手,然后集成到企业微信让公司全部成员都用起来了。

使用界面如下:

主界面
主界面

功能:
1、通过企业微信认证后访问使用,防止非公司人员入侵

2、记录用户姓名和提问内容,用于监控用户是否提问非工作相关内容,当作娱乐工具,不记录答复。

实现起来真的很简单。
所需条件:

1、可以访问chatgpt API的主机,一定要固定IP,稍后企业微信认证的时候需要添加白名单使用的

2、开启主机虚拟化,并安装docker desktop(腾讯云服务器没法安装)

docker下载地址:Install Docker Desktop on Windows | Docker Documentation

3、安装完docker desktop后直接打开win系统自带的命令行窗口,拉取容器镜像,输入:

docker pull chenzhaoyu94/chatgpt-web

4、

 到这里,已经能正常访问页面,并和gpt聊天沟通了。

如果无法访问,需要到防火墙或者路由器设置端口映射,怎么设置呢,每个网络设备的设置方式大同小异,我没有标准界面就不截图了,总之就是把上面步骤的端口映射到外网,这样就能在外网访问了。

最后一步,在工作台新建一个应用,应用名你们自己填写好,然后应用主页设置为g丨p丨t的网页地址,并同时设置点击应用时默认打开网页

===================下面集成到企业微信需要有一定的开发能力,会自己写http post和get服务,如果不需要企业微信认证和提问记录,上面这些步骤完成即可使用

设计逻辑:

用户打开网页时,现在网页植入认证的js文件

这是auth.js鉴权js文件,我会偷偷告诉你,这段是gpt4生成的代码,然后我修修改改套用过来的,我并不会js语言


const code = getUrlParameter('code');
const state = getUrlParameter('state');
window.ttc_user='';

function getUrlParameter(name) {
  const regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
  const results = regex.exec(location.search);
  return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
}

if (!code || !state) {
  // 跳转认证页面
  const authUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的企业ID&redirect_uri=跳转的URL,就是跳转到gpt的网址&response_type=code&scope=snsapi_base&agentid=企业微信应用的id号码&state=STATE#wechat_redirect`;
  window.location.href = authUrl;
} else {
  // 获取企业微信用户名称
fetch(`http://xxx.com?code=${code}`)
  .then((response) => {
    // 检查响应对象的 'ok' 属性以确定响应是否成功
    if (!response.ok) {
      console.error(`HTTP error ${response.status}`);
        //认证不成功,那么久跳转到错误页面
      window.location.href = 'http://xxx.com/PageError.html';
      // 终止后续操作
      return;
    }
    return response.json();
  })
  .then((data) => {
    // 如果上面已经跳转到错误页面,data 会是 undefined,所以需要先检查 data 是否存在
    if (data) {
      if (data.length > 0 && data[0].hasOwnProperty('name')) {
        window.ttc_user = data[0].name;
        console.log(window.ttc_user);
      } else {
        console.log('这是错误的:' + window.ttc_user);
      }

      // 在这里检查 window.ttc_user 是否为空字符串
      if (window.ttc_user === '') {
        window.location.href = 'http://xxx.com/PageError.html';
      }
    }
  })
  .catch((error) => {
    // 处理网络错误
    console.error('Fetch error:', error);
    window.location.href = 'http://xxx.com/PageError.html';
  });

}



 错误页代码,没错,我也不会html,也是g丨p丨t给我写好的套用过来就行:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>认证失败</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f6f6f6;
color: #333;
text-align: center;
padding-top: 100px;
}
h1 {
font-size: 36px;
margin-bottom: 20px;
}
p {
font-size: 18px;
margin-bottom: 30px;
}
button {
display: inline-block;
background-color: #007bff;
color: #fff;
border-radius: 5px;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s ease;
}
button:hover {
background-color: #0062cc;
}
</style>
</head>
<body>
<h1>认证失败!</h1>
<p>你可能不是xx公司员工</p>
<button onclick="retry()">重新认证</button>
<script>
function retry() {

window.location.href = "http://xxx.com:3336";
}
</script>
</body>
</html>


 =======下面你就剩下企业微信认证和提问服务的开发了,这个你们需要自己写,我目前还没空把代码剥离出来通用,有空再分享出来。

有不清楚的评论,部分内容敏感,已经被禁止发表了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IOS证书制作教程

转载&#xff1a;IOS证书制作教程 点击苹果证书 按钮 点击新增 输入证书密码&#xff0c;名称 这个密码不是账号密码&#xff0c;而是一个保护证书的密码&#xff0c;是p12文件的密码&#xff0c;此密码设置后没有其他地方可以找到&#xff0c;忘记了只能删除证书重新制作&am…

05-函数

函数的定义 函数名 函数名的后面有个圆换号()&#xff0c;代表这个为函数&#xff0c;不是普通的变量名。 形参 在定义函数时指定的形参&#xff0c;在未出现函数调用时&#xff0c;它们并不占内存中的存储单元&#xff0c;因此称它们是形式参数或虚拟参数&#xff0c;简称…

.Net6 使用aspose.cells23.5.0

一、测试代码 internal class Program { static void Main(string[] args) { WorkbookDesigner wb new WorkbookDesigner(new Workbook()); var style new CellsFactory().CreateStyle(); style.Borders.SetColor(C…

LED显示屏控制系统分类

LED显示屏的控制系统可以根据不同的特点和功能进行分类。以下是常见的LED显示屏控制系统分类&#xff1a; 同步控制系统&#xff1a;同步控制系统通过传输同步信号来控制LED显示屏&#xff0c;确保多个显示屏之间的内容同步显示。同步控制系统适用于大型LED显示屏&#xff0c;如…

通过chatGPT学习:kubernetes中的list-watch机制介绍

1、 请解释一下&#xff0c;在kubernetes中的list-watch机制&#xff1f; Kubernetes是一个开源的容器编排和管理系统&#xff0c;它可以有效地管理大规模的容器化应用程序。 在Kubernetes中&#xff0c;list-watch机制是一种重要的机制&#xff0c;用于监视资源的变化并及时…

k8s系列(六)——Service服务发现

Service概述 为什么要使用Service Kubernetes Pod是平凡的&#xff0c;由Deployment等控制器管理的Pod对象都是有生命周期的&#xff0c;它们会被创建&#xff0c;也会意外挂掉。虽然它们可以由控制器自动重建或者滚动更新&#xff0c;但是重建或更新之后的Pod对象的IP地址等都…

什么是单点登录

一、什么是单点登录&#xff1f; 单点登录的英文名叫做&#xff1a;Single Sign On&#xff08;简称SSO&#xff09;。 在初学/以前的时候&#xff0c;一般我们就单系统&#xff0c;所有的功能都在同一个系统上。 后来&#xff0c;我们为了合理利用资源和降低耦合性&#xff…

SmartKnob移植ESP32和STM32

目录 说明一、SmartKnob简介二、SmartKnob移植ESP322.1、电机部分2.2、增加LED和按键2.2.1、LED闪烁2.2.2、按键2.2.2.1、应变片方案2.2.2.2、MT6701方案2.2.2.3、实体按键 2.3、增加氛围灯2.3.1、WS28122.3.2、FastLED 库2.3.3、Freenove_WS2812_Lib_for_ESP32 库 三、SmartKn…

[ACTF新生赛2020]fungame 题解

开辟了一块内存空间&#xff0c;然后有两个函数&#xff0c;进入第一个跟一下 将输入的字符串进行异或&#xff0c;后比较&#xff0c; 解一下 y1[0x23,0x61,0x3e,0x69,0x54,0x41,0x18,0x4d,0x6e,0x3b,0x65,0x53,0x30,0x79,0x45,0x5b] y2[0x71,0x04,0x61,0x58,0x27,0x1e,0x4b,…

vue项目中main.js使用方法详解

目录 一、main.js文件解析 二、Vue.prototype的作用与使用 三、Vue.use的作用以及什么时候使用 1、组件 World 组件 2、定义一个index.js文件&#xff0c;并引入 两组件 &#xff0c;并导出&#xff1a; 3、在 main.js 中引入index.js 4、全局使用(不用引入直接可以使用…

ESD静电监控仪如何提示设备阻值异常

在电子厂的生产过程中&#xff0c;静电是一个不可避免的问题。静电的存在会给电子产品的生产带来很多危害&#xff0c;因此&#xff0c;防静电措施是必不可少的。静电会对电子元器件的性能产生影响。电子元器件对静电非常敏感&#xff0c;即使是微小的静电电荷也可能会对元器件…

功能测试的6中方法你知道多少

对于测试人员而言&#xff0c;软件产品每个按钮的功能是否准确&#xff0c;链接是否能正常跳转&#xff0c;搜索时会不会出现页面错误&#xff0c;验证并减少这些软件使用过程中可能出现的各种小问题都是功能测试的内容。而对于用户而言&#xff0c;功能能否正常执行都是非常直…

新来了个23岁的测试员,本以为是菜鸡,没想到是扮猪吃老虎

咋这金3银4都完了还有人来面试的&#xff0c;一看简历&#xff0c;嘿&#xff1f;23岁&#xff0c;这不刚毕业的小毛孩子嘛&#xff0c;结果没想到人家上来就把现有的项目都测了一遍&#xff0c;找出一堆bug&#xff0c;给公司节解决了不少的麻烦&#xff0c;这种“王炸”打法&…

webpack手动配置一个vue3项目

感觉学webpack和vite比登天还难啊&#xff0c;所以只是止步于能用和一些基础的配置比如proxy等等。因为自己是看培训班视频入的门&#xff0c;有些东西不是非常清楚(话说清楚了不还是个前端)&#xff0c;关于如何拓展自己的职业宽度&#xff0c;每个人有自己的想法&#xff0c;…

Qt消息的理解

分析 信号是什么&#xff0c;信号与槽(Signals&Slot)是QT编程的基础&#xff0c;也是Qt的一大创新。因为有了信号与槽的编程机制&#xff0c;在Qt中处理界面各个组件的交互操作变得更加直观和简单。 信号(signal)就是特定下被发射的事件。 槽就是对信号响应的函数&#xf…

如何解决MySQL limit深分页问题

1、limit深分页为什么会变慢&#xff1f; 先看下表结构&#xff1a; CREATE TABLE account (id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键Id,name varchar(255) DEFAULT NULL COMMENT 账户名,balance int(11) DEFAULT NULL COMMENT 余额,create_time datetime NOT NULL …

机器视觉是如何实现激光焊缝追踪系统

随着工业科学技术的发展&#xff0c;机器更换的地方越来越多&#xff0c;现在一些焊接工作交给了机器&#xff0c;其核心技术是&#xff1a; 激光束追踪传感器通过计算&#xff0c;将激光放大后投影到被测量物的表面&#xff0c;其反射光透过高质量的光学系统并投影到成像矩阵…

二叉堆讲解

二叉堆讲解 大顶堆和小顶堆 从二叉堆的结构说起&#xff0c;它是一棵二叉树&#xff0c;并且是完全二叉树&#xff0c;每个结点中存有一个元素&#xff08;或者说&#xff0c;有个权值&#xff09;。 堆性质&#xff1a;父亲的权值不小于儿子的权值&#xff08;大根堆&#x…

AI制作视频——mov2mov以及inpaint

背景 AI制作视频的几种思路 1.从零开始生成&#xff1a;清华的cogview&#xff0c;runway gen-1、gen-2&#xff0c;微软的女娲 这个思路&#xff0c;就是认为可以通过文字描述的方式把视频画面描述出来&#xff0c;通过对文本-视频帧内容-视频内容的数据对的平行语料的学习…

微软限制我们使用Windows系统了,怎么办?

正如中国工程院院士倪光南所说&#xff0c;操作系统的成功与否&#xff0c;关键在于生态系统&#xff0c;需要搭建起完整的产业链上各个主体共生的生态体系。 当前我国国产操作系统市场发展很快&#xff0c;相比技术和市场突破&#xff0c;真正需要解决的问题是如何把生态建好…