wechat bot部署

根据chatgpt-on-wechat项目部署,采用docker compose.
根据快速部署文档实操.
由于初次部署访问不上chatgpt,网络环境有问题.感觉可能是compose.yml>"proxy": "",没设置的问题.
最后发现,由于docker本身的特性,docker compose并不会直接访问宿主机网络,而是创建了一个虚拟网桥,与宿主机环境进行隔离.想要直接走宿主机网络,需要添加network_mode: host
最后该项目的配置为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: '2.0'
services:
chatgpt-on-wechat:
image: zhayujie/chatgpt-on-wechat
container_name: chatgpt-on-wechat
security_opt:
- seccomp:unconfined
environment:
OPEN_AI_API_KEY: 'your api key'
MODEL: 'gpt-3.5-turbo'
PROXY: ''
SINGLE_CHAT_PREFIX: '["bot", "@bot"]'
SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'
GROUP_CHAT_PREFIX: '["@bot"]'
GROUP_NAME_WHITE_LIST: '["ChatGPT测试群", "花开富贵"]'
IMAGE_CREATE_PREFIX: '["画", "看", "找"]'
CONVERSATION_MAX_TOKENS: 1000
SPEECH_RECOGNITION: 'False'
CHARACTER_DESC: '你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'
EXPIRES_IN_SECONDS: 3600
USE_GLOBAL_PLUGIN_CONFIG: 'True'
USE_LINKAI: 'False'
LINKAI_API_KEY: ''
LINKAI_APP_CODE: ''
network_mode: host

报错:[CHATGPT] RateLimitError: You exceeded your current quota, please check your plan and billing details.
疑似要添加chatgpt api付费方式
最早的用户有12个月18美刀的api额度
之后注册的用户有3个月,5美刀的api额度
但都要添加payment method才能调用

要开一张虚拟银行卡…麻烦,懒得搞,试试别人的api先
问相🐏要了api,成功部署.接下来就是等azure的申请通

改换用aruze申请api
公司申请
学生申请

换用gemini api
AIzaSyDkPocgRTs_fEf_pI0hI7_FWTi7yeciDBs

gemini api只支持美国地区使用,并且没有改proxy的接口.
可以魔改proxy懒得搞

阅读更多

openwrt防火墙

由于openwrt与ikuai网关互指,并且没有做转发设置,不能在ikuai中监控设备流量情况,openwrt的监控流量插件也不好用,遂研究下接口与防火墙.

现在的网络情况为
i快开启dhcp,openwrt关闭.所有设备的IP由ikuai分配.由于科学上网的需求,openwrt跑passwall,dhcp网关设置为openwrt.
这就导致,虽然ikuai,openwrt,设备处于同一个网段下,但由于ikuai的dhcp设置,下属所有设备不论是上传还是下载,所有数据报是都要经过openwrt解包 处理 封包 转发处理,再去ikuai.
上传

1
2
3
4
5
6
7
graph LR

    A((设备)) -->|数据报| B[OpenWRT]

    B -->|解包 处理 封包 转发| C[ikuai]

    C -->|数据报| D[internet]

下载
1
2
3
4
graph LR
D[Internet] -->|数据报| C[iKuai]
C -->|解包 处理 封包 转发| B[OpenWRT]
B -->|数据报| A((设备))

对openwrt性能损耗高.

通过对防火墙与接口设置,实现,下载直接到设备,上传经过openwrt.
上传

阅读更多

oos

首先OSS的英文全称是Object Storage Service, 直译过来就是”对象存储服务“。 严谨的解释是:OSS是一种使用HTTP API存储和检索非结构化数据和元素的数据对象的工具。 要点:

  1. HTTP API风格
  2. 存储数据
  3. 检索数据

通俗易懂的说就是:OSS就是通过HTTP restful风格的API进行数据上传,存储和获取的云端数据库服务。你也可以简单的理解成网盘。

服务供应商: 阿里云,蓝队云,移动云,AWS存储

阅读更多

Linux安装

BIOS、UEFI、MBR、GPT、GRUB 到底是什么意思?
ubuntu20.04.1

下载

阿里云镜像
https://mirrors.aliyun.com/ubuntu-releases/?spm=a2c6h.25603864.0.0.2b7e45f8SJ9NVf

在阿里云下载的镜像甚至不需要换源?它好像本来就是换好的

安装

diskgenius处理磁盘分区
rufus写入ISO
重启进入bios,调整启动项

根据安装指引一路点点

  • ubuntu磁盘分区:
    引导:512m efi系统分区
    swap:16g
    根: ext4日志
    home: ext4日志

注意一定要在混合模式下启动,独显模式,缺少显卡驱动,打不开,后期更换显卡驱动就行了

删除

阅读更多

docker

what is docker

采用了容器概念,本质上每个容器都是一台vm.但相对于vm,性能需求更低.
Docker 只是一个管理这些容器的平台,因此您可以轻松构建不同的特定环境。

容器

容器包括应用程序运行的所有库和工具。容器的作用是将这些应用程序与应用程序的库和工具一起打包在容器中,这样它就可以在任何地方运行,而不必依赖宿主的环境。
同时也能隔绝不同环境之间的干扰.

用户docker安装(root与非root)

refering

图形化docker管理工具

安装
docker的端口是:9000
后台地址为 192.168.33.4:9000
居然是不需要https://的...如果把地址写成https://192.168.33.4:9000,访问不了
中文portainer

问题:

  1. Docker Compose stuck downloading or pulling fs layer
    描述:0bad1d247b5b: Pulling fs layer ,某一个哈希值一直下载不出来restart也没有用
    想起来一件事,没有对docker进行换源 换源
    1
    2
    service restart docker.service
    docker info
    牢记,linux系统一般都是要进行镜像换源的
  2. 安装汉化portainer
    安装教程 报错教程
    1. 下载文档问题 用wget命令就行了…
    2. 一个报错
      1
      Error response from daemon: Conflict. The container name "/portainer" is already in use by container "9226aa8941ce67663089515cb68f462a90654642fbb2c7a72b8e57253dea7f48". You have to remove (or rename) that container to be able to reuse that name.
      原因是我本来就下载了一个英文版本的portainer,汉化并非是汉化补丁,而是直接安装一个中文版本的portainer,因此出现了命名冲突.删除掉原来的portainer就行了
      1
      2
      docker stop portainer
      docker rm portainer
阅读更多

dn11 peer流程

my info

Publickey:
0bBel8q6++FmOuPrepFpWaIUHWur4ppB09LKN4UmLiQ=
172.16.36.254
4211116657
dn11.l4rk.cn:325xx

/etc/wireguard

生成的公钥私钥保存在该文件下
在这个文件夹下面编写一个新的 example.conf example=对方名称

1
2
3
4
5
6
7
8
9
10
[Interface]
PrivateKey = QOiaOOemHPKsACOyiGVvZ4btQ344rqx07poiiW2WRmw=
ListenPort = 32501
PostUp = /sbin/ip addr add dev %i 172.16.36.254/32 peer 172.16.2.254/32
Table = off

[Peer]
Endpoint = open.iraze.top:42025
PublicKey = jEAB/Yl4Oqz2fAyt8V/5MKb0j4FmD7XEhYRvjnDtNV0=
AllowedIPs = 0.0.0.0/0

wg-quick-op

在颤巍巍的帮助下顺利完成

有柏喵师傅写的wg-quick-op https://github.com/BaiMeow/wg-quick-op
wg-quick-op:
编写一个 /etc/wg-quick-op.yaml

阅读更多

cdn

全称为内容分发网络,Content Delivery Network,简称CDN.建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。
内容分发网络(CDN)是一个互连服务器网络,可加快数据密集型应用程序的网页加载速度。CDN 可以表示内容分发网络或内容分配网络。当用户访问某个网站时,来自该网站服务器的数据必须通过互联网传输到用户的计算机。如果用户距离该服务器较远,则加载大文件(例如视频或网站图像)将需要很长时间。相反,如果网站内容存储在距离用户较近的 CDN 服务器上,就可以更快到达他们的计算机。

对于每一个资源请求,响应一个最近的边缘服务器.如果边缘服务器中没有需要的资源,再去源服务器请求.减小源服务器的压力.

阅读更多

api

api能实现程序之间的数据交流,也能实现,客户端与服务器端口的数据交流.

服务器API接口,是指在自己的服务器上构建一个API,以便其他应用程序可以通过网络请求与之交互。

阅读更多

mjj版的linux入门教程

本文的首要目的是给予Linux初学者一个简单、易学的教程,以便在看完本文后对Linux系统有一个基础的认识(而非系统级的深入),可以对常见的软件和功能进行配置,甚至可以自己写一写一键脚本。

本教程写于2021年下半年,采用的系统为Debian GNU/Linux 11 (bullseye)。

0 前言吐槽CentOS

解释使用Debian而不是CentOS的原因

国内首批接触Linux系统的人主要集中在科研院校,大多数是延续了Unix-like的背景,在千禧年前后才有了真正意义上的Linux使用者:纯Linux平台开发、运行服务和应用,他们或直接或间接地推广了Linux系统。红帽(Red Hat, Inc.)在1994年就开始发布了同名的操作系统:Red Hat Linux(后改组为Red Hat Enterprise Linux,缩写为RHEL)。得益于红帽优秀的团队和商业支持,RHEL这一发行版迅速占领了国内市场。彼时的国内计算机市场远不如今日繁荣,在口口相传和红帽的推广中,RHEL成为了Linux入门的主流选项,即使后来号称用户友好的Ubuntu出现了,绝大多数尝鲜的人依然能看到众多网站里面只提供RHEL版本的教程。

CentOS是根据RHEL的源码重新编译的,等于换商标版本的RHEL,软件层面上,两者无本质区别。但CentOS是反人类的,至少是反入门用户的。使用RHEL的基本为商业用户,可以付费获得红帽的技术支持,或者干脆有一个自己的维护团队;而CentOS作为一个社区自发形成的操作系统,拥有落后的软件源/包,繁琐的配置,和对个人用户而言根本没有必要的SElinux等。举个例子,很多入门者修改SSH端口的时候,发现所有的操作都没有问题,但是死活无法生效,最终发现是没有在SElinux里面放行。如果你想安装个软件,你就得考虑是从落后主流版本好几代的软件源/包里面安装,还是自己下载源码进行编译以获取主流的使用体验。对于入门者而言,CentOS的安全性和稳定性是个虚假的概念,毕竟让一个刚接触Linux的人去自己编译源码安装,无异于让小学生上战场,输了就说是小学生战斗力太弱。

所以本文以Debian GNU/Linux(后续简称为Debian)来演示,也有着推广Debian的意思在里面,毕竟相比于Ubuntu往系统里面塞包括snap在内的一系列私货而言,Debain始终遵循着一个纯净的Linux的要求。而其他一些发行版,要么是专用性太强(如SUSE),要么是入门者不友好(如 Arch Linux),权衡之后,选择了写本文时,最新的Debian系统,即Debian GNU/Linux 11 (bullseye)。

1 环境搭建

1.1 系统选择与安装

阅读更多