为Kubernetes集群部署一个ChatGPT机器人

点击上方“芋道源码”,选择“设为星标”

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 
  • 原创 | Java 2021 超神之路,很肝~

  • 中文详细注释的开源项目

  • RPC 框架 Dubbo 源码解析

  • 网络应用框架 Netty 源码解析

  • 消息中间件 RocketMQ 源码解析

  • 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析

  • 作业调度中间件 Elastic-Job 源码解析

  • 分布式事务中间件 TCC-Transaction 源码解析

  • Eureka 和 Hystrix 源码解析

  • Java 并发源码

来源:分布式实验室 blog.devgenius.io/

k8s-chatgpt-bot-for-intelligent-

troubleshooting-36e0a4a071c5

  • 运行 K8s ChatGPT 机器人项目

  • 先决条件

  • 如何安装 Robusta

  • 使用 Robusta

  • 与 ChatGPT 互动

  • Robusta UI

  • 结论

47f3ec4ad7f8507c427ca61f1e5e946e.jpeg


今天我想分享一个有趣的项目叫做 “K8s ChatGPT Bot[1]”。该项目的目的是为 K8s 集群部署一个 ChatGPT 机器人。我们可以询问 ChatGPT 帮助我们解决 Prometheus 的警报,可以得到简洁的答复,不再需要一人在黑暗中独自解决警报问题!

我们需要用到 Robusta[2],如果你还没有 Robusta,可以参考《K8s — Robusta, K8s Troubleshooting Platform[3]》搭建一个 Robusta 平台。

下图是 Robusta 平台如何工作的截图:

2cd071d061db3bbce358bb2cf9d7b57c.jpeg

你可以在此处查看完整的演示视频:

https://www.loom.com/share/964cd8735a874287a9155c77320bdcdb

运行 K8s ChatGPT 机器人项目

该机器人项目是基于 Robusta.dev[4] 实现的,Robusta.dev 是一个用于响应 K8s 警报的开源平台。其工作流程大致如下:

  • Prometheus 使用 Webhook 接收器将警报转发给 Robusta.dev 。

  • Robusta.dev 询问 ChatGPT 如何修复 Prometheus 警报。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

先决条件

  • Slack

  • Kubernetes 集群

  • Python 3.7 及以上

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/

如何安装 Robusta

生成 Robusta 配置文件

为 Robusta 准备 Python 虚拟环境。

$ python3.10 -m venv robusta
$ source robusta/bin/activate
(robusta) $ pip install -U robusta-cli --no-cache
Collecting robusta-cli
Downloading robusta_cli-0.10.10-py3-none-any.whl (223 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 223.8/223.8 kB 30.0 MB/s eta 0:00:00
Collecting pymsteams<0.2.0,>=0.1.16Downloading pymsteams-0.1.16.tar.gz (7.6 kB)Preparing metadata (setup.py) ... done
...
Successfully installed PyJWT-2.4.0 appdirs-1.4.4 autopep8-2.0.1 black-21.5b2 
cachetools-5.2.1 certifi-2022.12.7 cffi-1.15.1 charset-normalizer-3.0.1 
... 
ruamel.yaml.clib-0.2.7 six-1.16.0 slack-sdk-3.19.5 tenacity-8.1.0 
toml-0.10.2 tomli-2.0.1 typer-0.4.2 typing-extensions-4.4.0 urllib3-1.26.14watchgod-0.7 webexteamssdk-1.6.1 websocket-client-1.3.3

使用 robusta 生成一个配置文件:

$ robusta gen-config
Robusta reports its findings to external destinations (we call them "sinks").
We'll define some of them now.Configure Slack integration? This is HIGHLY recommended. [Y/n]: Y
If your browser does not automatically launch, open the below url:
https://api.robusta.dev/integrations/slack?id=xxxx

配置 Slack 集成

使用浏览器打开网页:https://api.robusta.dev/integrations/slack?id=xxxx

05e157d9754e65be379497205ba2d64a.jpeg

更新权限:

2160bf37bfec5fc7818a43de1932e99e.jpeg

恭喜你配置 Slack 集成成功。

521322ff1219d39b9501d69584f4e39c.jpeg

现在回到我们的 Terminal 终端,我们可以看到以下内容,说明操作成功:

$ robusta gen-config
Robusta reports its findings to external destinations (we call them "sinks").
We'll define some of them now.Configure Slack integration? This is HIGHLY recommended. [Y/n]: Y
If your browser does not automatically launch, open the below url:
https://api.robusta.dev/integrations/slack?id=xxxx
You've just connected Robusta to the Slack of: devopsfans
Which slack channel should I send notifications to? # k8s-chatgpt-bot
Configure Robusta UI sink? This is HIGHLY recommended. [Y/n]: Y
Enter your Gmail/Google address. This will be used to login: xxx@gmail.com
Choose your account name (e.g your organization name): devopsfans
Successfully registered.Robusta can use Prometheus as an alert source.
If you haven't installed it yet, Robusta can install a 
pre-configured Prometheus.
Would you like to do so? [y/N]: y
Please read and approve our End User License Agreement: 
https://api.robusta.dev/eula.html
Do you accept our End User License Agreement? [y/N]: y
Last question! Would you like to help us improve Robusta by sending exception reports? [y/N]: N
Saved configuration to ./generated_values.yaml - save this file for future use!
Finish installing with Helm (see the Robusta docs). 
Then login to Robusta UI at https://platform.robusta.devBy the way, we'll send you some messages later to get feedback. 
(We don't store your API key, so we scheduled future messages using Slack's 
API)

在 slack channel 中,我们还可以看到:

e4e77062eca228b296cfa0e45ab0722d.jpeg

使用 Helm3 安装 Robusta

安装和更新 robusta 仓库。

$ helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update
"robusta" has been added to your repositories
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "kedacore" chart repository
...Successfully got an update from the "robusta" chart repository
...Successfully got an update from the "grafana" chart repository
...Successfully got an update from the "prometheus-community" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈

更新 generated_values.yaml 文件

使用以下内容更新 generated_values.yaml 文件:

playbookRepos:chatgpt_robusta_actions:url: "https://github.com/robusta-dev/kubernetes-chatgpt-bot.git"customPlaybooks:
# Add the 'Ask ChatGPT' button to all Prometheus alerts
- triggers:- on_prometheus_alert: {}actions:- chat_gpt_enricher: {}globalConfig:chat_gpt_token: YOUR KEY GOES HERE

将 Robusta 部署到 K8s

$ helm install robusta robusta/robusta -f ./generated_values.yaml \ 
--set clusterName=dev-cluster

验证两个 Robusta pod 正常运行且在日志中没有发现错误日志:

$ kubectl get pods -A | grep robusta
default       alertmanager-robusta-kube-prometheus-st-alertmanager-0   2/2     Running     1 (4m19s ago)   9m25s
default       prometheus-robusta-kube-prometheus-st-prometheus-0       2/2     Running     0               9m25s
default       robusta-forwarder-6b7d8d9d88-2rv9d                       1/1     Running     0               9m29s
default       robusta-grafana-64944bfcdc-v97xh                         3/3     Running     0               9m29s
default       robusta-kube-prometheus-st-admission-patch-6zj4b         0/1     Completed   0               9m28s
default       robusta-kube-prometheus-st-operator-7b985d7fb-c9f9t      1/1     Running     0               9m29s
default       robusta-kube-state-metrics-688d794968-ll6gf              1/1     Running     0               9m29s
default       robusta-prometheus-node-exporter-2k5f7                   1/1     Running     0               5m24s
default       robusta-prometheus-node-exporter-zxsrg                   1/1     Running     0               9m29s
default       robusta-runner-5868b494d6-m6292                          1/1     Running     0               9m29s$ robusta logs
setting up colored logging
2023-01-14 22:57:01.428 INFO     logger initialized using INFO log level
2023-01-14 22:57:01.429 INFO     Creating hikaru monkey patches
2023-01-14 22:57:01.429 INFO     Creating yaml monkey patch
2023-01-14 22:57:01.429 INFO     Creating kubernetes ContainerImage monkey patch
2023-01-14 22:57:01.430 INFO     watching dir /etc/robusta/playbooks/ for custom playbooks changes
2023-01-14 22:57:01.431 INFO     watching dir /etc/robusta/config/active_playbooks.yaml for custom playbooks changes
2023-01-14 22:57:01.431 INFO     Reloading playbook packages due to change on initialization
2023-01-14 22:57:01.431 INFO     loading config /etc/robusta/config/active_playbooks.yaml
2023-01-14 22:57:01.467 INFO     No custom playbooks defined at /etc/robusta/playbooks/storage
2023-01-14 22:57:01.468 INFO     Cloning git repo https://github.com/robusta-dev/kubernetes-chatgpt-bot.git. repo name kubernetes-chatgpt-bot
...
2023-01-14 22:57:07.364 INFO     connecting to server as account_id=8302df56-c554-4129-8b95-d143d1f2e3a2; cluster_name=dev-cluster
2023-01-14 22:57:07.977 INFO     Initializing services cache
2023-01-14 22:57:08.203 INFO     Initializing nodes cache
2023-01-14 22:57:08.395 INFO     Initializing jobs cache
2023-01-14 22:57:08.603 INFO     Getting events history
2023-01-14 22:57:10.403 INFO     Cluster historical data sent.
2023-01-14 23:04:43.681 INFO     cluster status {'account_id': '8302df56-c554-4129-8b95-d143d1f2e3a2', 'cluster_id': 'dev-cluster', 'version': '0.10.10', 'last_alert_at': '2023-01-14 23:04:18.959377', 'light_actions': ['related_pods', 'prometheus_enricher', 'add_silence', 'delete_pod', 'delete_silence', 'get_silences', 'logs_enricher', 'pod_events_enricher', 'deployment_events_enricher', 'job_events_enricher', 'job_pod_enricher', 'get_resource_yaml', 'node_cpu_enricher', 'node_disk_analyzer', 'node_running_pods_enricher', 'node_allocatable_resources_enricher', 'node_status_enricher', 'node_graph_enricher', 'oomkilled_container_graph_enricher', 'pod_oom_killer_enricher', 'oom_killer_enricher', 'volume_analysis', 'python_profiler', 'pod_ps', 'python_memory', 'debugger_stack_trace', 'python_process_inspector', 'prometheus_alert', 'create_pvc_snapshot'], 'updated_at': 'now()'}

使用 Robusta

现在,我们终于可以使用 Robusta 了!默认情况下,Robusta 在当 K8s Pod 崩溃时发送通知。

因此,让我们创建一个崩溃的 Pod:

$ kubectl apply -f https://gist.githubusercontent.com/robusta-lab/283609047306dc1f05cf59806ade30b6/raw
deployment.apps/crashpod created$ kubectl get pods -A | grep crash
default       crashpod-64db77b594-cgz4s                                0/1     CrashLoopBackOff   2 (21s ago)     36s

一旦 Pod 达到两次重启,在 Slack channel 我们就将收到有关 Pod 崩溃的消息,如下所示:

badfa1bbf34552c2e298071fb0fffa40.jpeg

与 ChatGPT 互动

经过我们的实验,我们已经确认 Robusta 已与我们的 Slack 和 K8s 集群集成。接下来让我们与 ChatGPT 机器人进行交互!

立即触发 Prometheus 警报,跳过正常延迟:

$ robusta playbooks trigger prometheus_alert alert_name=KubePodCrashLooping namespace=default pod_name=example-pod
======================================================================
Triggering action...
======================================================================
running cmd: curl -X POST http://localhost:5000/api/trigger -H 'Content-Type: application/json' -d 
'{"action_name": "prometheus_alert", "action_params": 
{"alert_name": "KubePodCrashLooping", "namespace": "default", 
"pod_name": "example-pod"}}'
{"success":true}======================================================================
Fetching logs...
======================================================================
2023-01-14 23:14:33.463 INFO     Error loading kubernetes pod default/example-pod. reason: Not Found status: 404
2023-01-14 23:14:33.481 INFO     Error loading kubernetes pod default/example-pod. reason: Not Found status: 404
2023-01-14 23:14:33.503 INFO     Error loading kubernetes pod default/example-pod. reason: Not Found status: 404
2023-01-14 23:14:33.505 ERROR    cannot run pod_events_enricher on alert with no pod object: PrometheusKubernetesAlert(sink_findings=defaultdict(<class 'list'>, {'main_slack_sink': [<robusta.core.reporting.base.Finding object at 0x7fab53074e20>], 'main_ms_teams_sink': [<robusta.core.reporting.base.Finding object at 0x7fab53074700>], 'robusta_ui_sink': [<robusta.core.reporting.base.Finding object at 0x7fab40773a30>]}), named_sinks=['main_slack_sink', 'main_ms_teams_sink', 'robusta_ui_sink'], response={'success': True}, stop_processing=False, _scheduler=<robusta.integrations.scheduled.playbook_scheduler_manager_impl.PlaybooksSchedulerManagerImpl object at 0x7fab4088e0a0>, _context=ExecutionContext(account_id='8302df56-c554-4129-8b95-d143d1f2e3a2', cluster_name='dev-cluster'), obj=None, alert=PrometheusAlert(endsAt=datetime.datetime(2023, 1, 14, 23, 14, 33, 430401), generatorURL='', startsAt=datetime.datetime(2023, 1, 14, 23, 14, 33, 430406), fingerprint='', status='firing', labels={'severity': 'error', 'namespace': 'default', 'alertname': 'KubePodCrashLooping', 'pod': 'example-pod'}, annotations={}), alert_name='KubePodCrashLooping', alert_severity='error', label_namespace='default', node=None, pod=None, deployment=None, job=None, daemonset=None, statefulset=None)
2023-01-14 23:14:33.524 INFO     Error loading kubernetes pod default/example-pod. reason: Not Found status: 404
2023-01-14 23:14:33.696 ERROR    CallbackBlock not supported for msteams
2023-01-14 23:14:33.697 ERROR    error sending message to msteams
e=Invalid URL 'False': No schema supplied. Perhaps you meant http://False?======================================================================
Done!
======================================================================

现在切换到 Slack,我们将看到一个新警报,并且这次带有 “Ask ChatGPT” 的按钮!

c901779be44356322fa8f3681c194dab.jpeg

就是这样!恭喜,我们刚刚成功安装了我们的第一个 K8s ChatGPT 机器人!

示例 2:节点容量为 100%

下面是一个节点达到 100% 容量的例子:

e07afffc7cee378478333d4103f3e4b9.jpeg

Robusta UI

Robusta 有一个用于集成的 UI,也有一个预配置的 Promethus 系统,如果你还没有自己的 K8s 集群,并且想尝试一下这个 ChatGPT 机器人,你可以使用 Robusta 现有的!

21285a7475e1bd5d97eab4e7a51e8bc4.jpeg

结论

我们花了一些时间终于把 K8s + ChatGPT 平台搭建起来了。这是一个由爱好者们共同组建的项目,并且此项目具有很大的潜力。我希望你喜欢这篇文章。

如果你还没有自己的 K8s 集群和 Prometheus 监控系统,你可以使用 Robusta 预配置的 Promethus 监控系统。

相关链接:

  1. https://github.com/robusta-dev/kubernetes-chatgpt-bot

  2. https://home.robusta.dev/

  3. https://medium.com/dev-genius/k8s-robusta-k8s-troubleshooting-platform-efd389b47f24

  4. https://github.com/robusta-dev/robusta



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

8e22e4275c66b163f8cc9d04f83adf02.png

已在知识星球更新源码解析如下:

5ec7f16dfac509c2decc8638d9881a84.jpeg

5d01f967548bc954eb674976d1459eba.jpeg

1f1d3923c5720fe4afdd597a5b93a259.jpeg

09af2b61ac6dcc4ae003d1f53e22954b.jpeg

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)

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

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

相关文章

ChatGPT崩了!全球宕机超12小时,打工人叫苦连天

ChatGPT崩了。 昨天半夜&#xff0c;来自全球各地的用户纷纷发现网站弹出报错警告&#xff0c;然后立刻无法使用。 即使是有特权的Plus账户也未能幸免。 一时之间&#xff0c;#chatgptdown#的话题刷屏。 不少重度用户表示很捉急&#xff1a; 没了你我的工作可咋整。 每过10分…

用ChatGPT三分钟免费做出数字人视频- 提升自媒体魅力

用ChatGPT三分钟免费做出数字人视频- 提升自媒体魅力 一、ChatGPT产生文案二、腾讯智影网站三、选择一个2D数字人四、粘贴文本五、编辑自定义&#xff0c;合成六、资源七、其他数字人平台推荐八、生成视频预览 本教程收集于&#xff1a;AIGC从入门到精通教程汇总 操作指引 Ch…

ChatGPT4生成数字人视频!

1、安装HeyGen插件 2、如何使用Heygen&#xff08;GPT的回答&#xff09; Heygen是一个插件&#xff0c;用于从文本生成虚拟人物视频。这个插件可以根据您提供的文本生成一个虚拟人物的视频。您可以选择虚拟人物的性别和肤色&#xff0c;以及为视频添加标题。 这是使用Heygen的…

2步轻松生成数字人视频,ChatGPT为你提供新体验

ChatGPT大家一定很熟悉。一经问出&#xff0c;便引起轩然大波。大量网友对其智能印象深刻。当然&#xff0c;很多网友也将其视为自己创造的工具。可以在实践中使用&#xff0c;可以节省大部分时间。比如有人用它2分钟生成一个视频&#xff0c;用它写各种文案&#xff0c;写小说…

【转】云计算、大数据和人工智能简介

转自华为ls&#xff0c;原作者yangsha 讲得非常棒。 链接http://sns.huaweils.com/post/threaddetail?threadid159#commentdetail-0 从目前技术潮流来看&#xff0c;一般谈云计算的时候会提到大数据、谈人工智能的时候会提大数据、谈人工智能的时候会提大数据……感觉三者之…

马斯克和扎克伯格线上约架,地点“票价”都已定;超10万个ChatGPT账号泄露;苹果推出Vision Pro开发工具|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

十分钟入门Go语言

本文旨在带大家快速入门Go语言&#xff0c;期望小伙伴们在花费十分钟左右通读全文后能对Go语言有一个初步的认知&#xff0c;为后续进一步深入学习Go奠定基础。 本文假设你完全没有接触过Go&#xff0c;你可能是一名精通其他编程语言的程序员&#xff0c;也可能是毫无编程经验、…

1,Java语言基础-Java语言概述和必要计算机知识

Java语言基础 Java语言概述 1&#xff0c;Java语言发展史 Java语言本质 Java是面向对象的高级语言&#xff0c;它是由c和c发展而来。 Java发展语言历史概述 Java 是由 James Gosling 在 Sun公司领导的小组开发的。2010 年 Sun 公司被 Oracle 收购。Java 最初被称为 Oak (橡…

关于 App Store 苹果商店价格的那些事(历上最全版)

作者&#xff1a;iHTCboy 一、前言 苹果 2022 年 12 月 6 日宣布 App Store 定价机制最重大升级&#xff0c;新增 700 个价格点。小编当时的总结和分析&#xff1a; App Store 新价格&#xff1a; 最低可设 $0.29 美元&#xff01;最高可设 $10,000 美元&#xff01;&#…

零基础手把手教你写NFT抢购软

前言 由于之前写过几篇文章&#xff0c;但是个人不是很满意&#xff0c;所以这次我打算把所有的知识汇总成一篇文章。可能会有很多地方写的不是很好&#xff0c;欢迎大家评论指出&#xff0c;我后续修正。 个人vx&#xff1a;http://wc.ljlju.cn/4ZGETK 抢购软件原理 我们在…

【STM32】HAL库:串口通信打印+SHT3x温湿度数据收集

操作系统&#xff1a;Windows 11 (x64) 微控制器&#xff1a;STM32F103C8T6 硬件外设&#xff1a; USB-to-TTL串口(CH340) 【STM32】标准库与HAL库对照学习教程八--串口通信详解__修成真的博客https://xiuchengzhen.blog.csdn.net/article/details/121429721 SHT3x温湿度模块…

PWA(Progressive web apps):Web技术实现类似原生应用 - 入门

PWA(Progressive web apps)&#xff1a;Web技术实现类似原生应用 - 入门简介 前言 在&#xff08;使用Google浏览器&#xff09;访问一些网站时&#xff0c;有时右上角会弹出“安装应用”的按钮。 例如谷歌V8官网 如果我们点击“安装”&#xff0c;则会在桌面生成一个“快捷方…

通往AGI之路:揭秘英伟达A100、A800、H800、V100在高性能计算与大模型训练中的霸主地位

AGI | NLP | A100 | H100 | Nvidia | Aurora GPT| LLM | A800 | V100 | Intel | ChatGPT 日前&#xff0c;随着深度学习、高性能计算、大模型训练等技术的保驾护航&#xff0c;通用人工智能时代即将到来。各个厂商也都在紧锣密鼓的布局&#xff0c;如英伟达前段时间发布GH 200…

【Pyecharts】| 风电场运维可视化系统 | 文末送书

目录 一. &#x1f981; 摘要二. &#x1f981; 文章结构三. &#x1f981; 所用开发工具与相关技术3.1 PyCharm3.2 Flask3.3 Pyecharts3.4 Jinja2 四. &#x1f981; 设计与实现4.1 系统总体需求4.1.1 数据采集和处理4.1.2 可视化设计4.1.3 后台功能实现 4.2 系统用户模块的实…

document.ai部署教程

原项目链接 1.在code处选择Download ZIP 下载完成之后在合适的位置解压 2.下载Docker for Windows 下载地址 下载完成安装即可 注意&#xff0c;下载完成不要立即打开&#xff0c;不然会卡住 先检查几个设置 ①.打开任务管理器&#xff08;CtrlAltDel&#xff09;&…

wkhtmltox 中文显示一半_中文GPT闲聊对话生成模型 开源工作 包括 GPT和GPT2

bojone/CDial-GPT-tf​github.com 今天发现有一个朋友的github更新了一个新的项目&#xff0c;于是我点进去扫了两眼。首先必然还是把两个预训练语言模型的压缩包下载下来。跟随者这个项目的步伐我发现了一个超级厉害的项目。 thu-coai/CDial-GPT​github.com 在项目介绍中描述…

Docker部署Mysql数据库详解

目录 1. Docker部署Mysql 1.1 Mysql容器 1.1.1 创建Mysql容器 1.1.2 进入Mysql容器并登录Mysql 1.1.3 持久化数据 1.2 远程登录Mysql 1.2.1 修改root加密方式 1.2.2 在容器启动时配置加密方式为mysql_native_password 1.3 Mysql编码 1.3.1 Mysql编码问题 1.3.2 Mysql编码…

ChatGPT扩展系列之ChatHub解决被OpenAI 封号的终极解决方案

ChatGPT扩展系列之ChatHub解决被OpenAI 封号的终极解决方案 本节介绍了一个解决ChatGPT在中国大陆无法使用和担心被封号的问题的方法。近期有很多亚洲用户被封号,原因是有人滥用API接口或者批量注册账号,不符合官方规定。对于这个问题,提出了一个解决方法,可以在中国大陆无…

Docker系列 基于OpenAI API自建ChatGPT

转自我的博客文章https://blognas.hwb0307.com/linux/docker/4201&#xff0c;内容更新仅在个人博客可见。欢迎关注&#xff01; 前言 我用帐号/密码使用chatGPT已经有一段时间。但是&#xff0c;我有几个私交较密的朋友&#xff0c;他们并不具备使用chatGPT的条件&#xff1b…

从开发到上线,三分钟拥有自己的 ChatGPT !

OpenAI 已经公布了 ChatGPT 正式版 API&#xff0c;背后的新模型是 gpt-3.5-turbo&#xff0c;这是 OpenAI 目前最先进的模型&#xff0c;响应速度更快&#xff0c;价格更便宜。 作为开发人员&#xff0c;我们还是希望通过 API 将 ChatGPT 和相关模型集成到自己的产品和应用中&…