如何用Nginx反向代理ChatGPT API

我们知道国内访问ChatGPT的Api访问需要使用魔法,我们能够如何能够不使用魔法就能调用ChatGPT的Api呢。

前提
需要一台非国内的服务器,并且有公网IP。比如美国,新加坡的服务器。

安装Nginx
然后我们安装Nginx,网上有很多安装Nginx的教程,你可以根据你的操作系统选择不同的关键词进行搜索。

配置Nginx反向代理
我们打开nginx.conf文件,在里面增加下面的内容:

server {

listen 端口自己定义;

server_name 你的服务器ip或者域名;

access_log /www/wwwlogs/access_proxy.log;

location / {

proxy_pass https://api.openai.com;

proxy_set_header Host api.openai.com;

proxy_set_header Connection '';

proxy_http_version 1.1;

chunked_transfer_encoding off;

proxy_buffering off;

proxy_ssl_server_name on;

proxy_cache off;

proxy_set_header X-Forwarded-For $remote_addr;

proxy_set_header X-Forwarded-Proto $scheme;

}

}
然后我们启动nginx

nginx start
如果已经启动了,只是修改了配置文件那么就重新加载配置文件就可以了,执行下面的命令:

nginx -s reload
然后我们测试一下

http://服务器ip或者域名:端口/v1/api/completions
如果返回下面这个,说明成功了

{

"error": {

"message": "Invalid URL (GET /v1/api/completions)",

"type": "invalid_request_error",

"param": null,

"code": null

}

}


gnitif 发布于  2023-8-15 16:41 

git flow使用流程

在实际生产开发的过程中,如果每个人都随意的创建分支,随意的提交commit,必将导致整个git仓库非常的混乱,不易于团队协作。Vincent Driessen 同学为了解决这个问题提出了A Successful Git Branching Model,最后形成了业内普遍采用的git 工作流程,大家都在约定的流程内使用git,使得团队协作效率大大提高‌

下面是git flow的工作流程图:

Git Flow 的常用分支
生产分支(master)‌
Master分支是仓库的主分支,这个分支包含最近发布到生产环境的代码,最近发布的Release, 这个分支只能从其他分支合并,不能在这个分支直接修改‌

补丁分支(hotfix)‌
当我们在生产环境发现新的Bug时候,我们需要基于master分支创建一个Hotfix分支,然后在Hotfix分支上修复bug,完成Hotfix后,我们要把hotfix分支合并回Master和Develop分支‌

发布分支(release)‌
当你需要发布一个新功能的时候,要基于Develop分支创建一个Release分支,在Release分支测试并修复bug,完成release后,把release合并到master和develop分支‌

开发分支(develop)‌
这个分支是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支‌

功能分支(feature)‌
feature分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release‌

接下来我们讲下git flow的具体使用细节:
当我们新建git仓库之后,默认会创建一个主分支也就是master分支,由于master分支是用于发布生产环境,所有必须保证master上代码的稳定性,所以我们不能直接在master分支上修改提交。我们要基于master分支创建一个develop分支,develop分支用于保存开发好的相对稳定的功能,master分支和develop分支是仓库的常驻分支,一直会保留在仓库中

当新的开发任务来了之后,就要编写代码了,我们尽量不要在develop分支上写代码,要保证develop分支的相对稳定,所以这时我要就要基于develop 分支创建一个临时的开发分支,然后在开发分支上编写代码,等功能开发完之后我们再把开发分支合并到develop上

新功能合并到develop分支之后,我们想把新功能发布到生产环境,首先基于develop分支创建release分支,然后在release分支测试完成之后,把release分别合并到master分支和develop分支

release分支合并到master分支之后,在master分支上打标签用于发布:

我们把代码发布到了生产环境,用户在使用的时候给我们反馈了一个bug,这时我们需要基于master分支创建一个hotfix 分支,用于修复bug,bug修好之后,把hotfix 分支分别合并到master分支和develop分支

Git flow工具

如果你理解了上面的流程,你完全可以不使用Git flow工具,但是如果你想更标准化的执行git flow,可以尝试使用git flow工具‌

安装‌

Mac OS X
$ brew install git-flow‌
Linux
$ apt-get install git-flow
Windows
$ wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash

使用‌

初始化: git flow init
开始新Feature: git flow feature start MYFEATURE
Publish一个Feature(也就是push到远程): git flow feature publish MYFEATURE
获取Publish的Feature: git flow feature pull origin MYFEATURE
完成一个Feature: git flow feature finish MYFEATURE
开始一个Release: git flow release start RELEASE [BASE]
Publish一个Release: git flow release publish RELEASE
发布Release: git flow release finish RELEASE 别忘了git push --tags
开始一个Hotfix: git flow hotfix start VERSION [BASENAME]
发布一个Hotfix: git flow hotfix finish VERSION


gnitif 发布于  2023-8-15 16:36 

Git 基本操作

Git 基本操作
Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。

本章将对有关创建与提交你的项目快照的命令作介绍。

Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。

说明:

workspace:工作区
staging area:暂存区/缓存区
local repository:版本库或本地仓库
remote repository:远程仓库
一个简单的操作步骤:

$ git init
$ git add .
$ git commit
git init - 初始化仓库。
git add . - 添加文件到暂存区。
git commit - 将暂存区内容添加到仓库中。
创建仓库命令
下表列出了 git 创建仓库的命令:

命令 说明
git init 初始化仓库
git clone 拷贝一份远程仓库,也就是下载一个项目。
提交与修改
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。

下表列出了有关创建与提交你的项目的快照的命令:

命令 说明
git add 添加文件到暂存区
git status 查看仓库当前的状态,显示有变更的文件。
git diff 比较文件的不同,即暂存区和工作区的差异。
git commit 提交暂存区到本地仓库。
git reset 回退版本。
git rm 将文件从暂存区和工作区中删除。
git mv 移动或重命名工作区文件。
提交日志
命令 说明
git log 查看历史提交记录
git blame 以列表形式查看指定文件的历史修改记录
远程操作
命令 说明
git remote 远程仓库操作
git fetch 从远程获取代码库
git pull 下载远程代码并合并
git push 上传远程代码并合并


gnitif 发布于  2023-8-15 16:34