国内环境使用python调用openai的API

在国内环境访问openai的api,需要突破防火墙限制,所以你要有一个代理。拿我自己的环境来说,我有一个socks代理。本机是mac,让python使用socks代理的方法是:

  1. 设置环境变量
vi .zshrc

加入如下内容:

export http_proxy=socks5://127.0.0.1:1086
export https_proxy=socks5://127.0.0.1:1086
  1. python安装httpx[socks]包:
pip install 'httpx[socks]'

注意这个单引号不能省略,否则会报错

这样python就会使用socks代理访问openai啦!

如果使用的是requests库,那就需要安装如下包:

pip install 'requests[socks]'
Read more...

搭建https服务极简教程

申请AWS账号

已有AWS账号的可以跳过此步骤。

申请虚拟机实例

为了节省成本,我们使用Lightsail,最便宜的美区实例每个月仅需$5。

操作系统建议选择Ubuntu22LTS

实例位置很重要,可以根据自己的需要进行选择,选择哪个区域的实例,你上网就是从哪个区域出去的。

可以选择生成新的SSH密钥对或者上传已有密钥对的公钥都行

域名绑定ip

推荐用cloudflare做你的域名解析提供商

在cloudflare上新增一条A记录,指向上一步申请的实例,注意选择“仅解析”。

安装GOST

本地SSH登陆上一步申请的实例

下载gost,这里选择v2版本:https://github.com/ginuerzh/gost/releases/tag/v2.11.5

启动gost:

./gost-linux-amd64-2.11.5 -L="http2://username:[email protected]:443?probe_resist=file:/home/ubuntu/hello.txt"

hello.txt文件是防探测用的,这个文件的内容就是你访问https://yourip/时的网页内容,随便写几行字就行

至此,就搭建好了,搭配客户端就可以使用了。

不过,安全起见,最好安装证书。

安装证书

  1. 安装certbot
sudo snap install --classic certbot
  1. 申请证书

这一步一定要保证gost启动,否则证书检测网站连接时会有问题。

sudo certbot certonly --standalone

按照提示输入信息即可。

  1. 将申请到的证书copy到gost文件所在的目录
cp /etc/letsencrypt/live/your-domain-name/cert.pem /home/ubuntu/cert.pem
cp /etc/letsencrypt/live/your-domain-name/privkey.pem /home/ubuntu/key.pem

此时重启gost,就自动应用证书了。

Read more...

docker

编写Dockerfile

也可以使用docker init,当然也可以手工书写。

本地打镜像

默认会使用本地的cpu架构打镜像,因我使用的机器是macbook m1,服务器的架构为amd64,需加参数"–platform linux/amd64"。

docker build --tag tgbot:amd64 --platform linux/amd64 .

镜像上传到服务器

本地机器执行以下命令导出镜像:

docker save -o imagename.tar tgbot:latest

上传镜像到服务器:

scp imagename.tar ubuntu@server-ip:/home/ubuntu

在服务器上执行以下命令导入镜像:

docker load < imagename.tar

启动容器

docker run tgbot:latest
Read more...

visual studio code plugin development

今天参考教程开发第一个visual studio code插件,记录一下。

升级node版本

本地的node版本太旧了,执行以下命令时报错。 命令:

yo code

报错信息:

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/usr/local/lib/node_modules/stream/promises' imported from /usr/local/lib/node_modules/yo/node_modules/mem-fs/dist/index.js

升级node版本的方法:

sudo npm install n -g
sudo n stable

升级完检查node版本,已升级到v20.11.1。 然后再执行yo code命令发现已经没有报错了。

Read more...

podman

podman是一个开源的容器引擎,可以平替docker。

安装

brew install podman
Read more...

ubuntu命令

查看时区与时间

timedatectl

时区列表

timedatectl list-timezones

设置时区

sudo timedatectl set-timezone Asia/Shanghai
Read more...

liquibase使用指导

liquibase.properties文件使用说明

以OpenGauss为例:

changeLogFile=changelog.xml
liquibase.command.url=jdbc:opengauss://${ip}:${port}/${db}?currentSchema=${schema}
liquibase.command.username: ${user}
liquibase.command.password: ${password}
driver: org.opengauss.Driver
Read more...