本文讲述如何从零开始搭建服务器,通过 API 连接 ChatGPT。
| 地区选择
经过综合考量,选择 vultr.com 的云服务器,并把服务器位置选择在硅谷 Silicon Valley,目的其实很简单,使用本地一个固定的 IP 地址访问 OpenAI API。云服务器访问地址如下:
https://www.vultr.com/?ref=9453300
选择使用 vultr.com 云服务器的两个理由:
1、支持支付宝 alipay,无需绑定美元信用卡;
2、系统计费是按小时按天的,以上述套餐方案月服务费 $48 为例,并不需要一次性充值48美元,而是系统每天从你的总账扣除。这里有一个很好的用途推荐给你。假如你需要一个本地的 ip 去访问OpenAI,那么可以在 vultr.com 建立账户,并在需要时创建 windows 系统,在通过远程桌面 todesk 等进入远程桌面后,再访问 openai.com。当不需要的时候销毁云服务器,这样就不会产生费用。
关于服务器的配置,根据各自需要进行套餐选择。
| 服务器 OS 系统
作为大模型应用开发,常用的工具,如Python、PostgreSQL等等,我选择了CentOS 7 x64。
操作系统是 vultr.com 云服务器自行安装,没什么说的。
| Python安装
Centos 7 默认安装了Python 2.7.5 版本,不过 OpenAI 库要求使用Python 3.0 及以上版本,我使用了 Python 3.10.9,版本选择建议你遵循过来人的建议,没有为什么?这样少走弯路。
python3 -V
Python 3.10.9
pip -V
pip3 -V
Python 3.10.9 安装,如下:
1. 更新系统软件包:
```
sudo yum update
```
2. 安装编译Python所需的依赖项:
```
sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel
```
3. 下载Python 3.10.9源代码包:
```
wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz
```
4. 解压源代码包:
```
tar -xf Python-3.10.9.tgz
```
5. 进入解压后的目录:
```
cd Python-3.10.9
```
6. 配置编译选项:
```
./configure --enable-optimizations
```
7. 编译源代码:
```
make -j 4
```
这里的-j 4表示使用4个线程进行编译,可以根据实际情况进行调整。
8. 安装Python:
```
sudo make altinstall
```
使用altinstall而不是install可以避免覆盖系统默认的Python版本。
9. 验证安装结果:
```
python3.10 --version
```
如果输出的版本号为Python 3.10.9,则说明安装成功。
| PostgreSQL 数据库安装
PostgreSQL 是一种开源的关系型数据库管理系统(DBMS),它具有高度的可扩展性、稳定性和安全性。它支持多种操作系统,包括 Windows、Linux、MacOS 等,并且提供了丰富的功能和工具,使开发人员能够轻松地管理和操作数据库。
PostgreSQL 支持 SQL 标准,并且提供了许多扩展功能,如复杂查询、事务处理、触发器、视图、存储过程等。它还支持多种数据类型,包括整数、浮点数、字符串、日期时间、数组、JSON 等。
PostgreSQL 数据库可以通过插件 vector 实现向量数据存储和查询。
以上内容,通过#ChatGPT “PostgreSQL 简介”获得。
并不是所有用户都需要用到该数据库,不过如果你要做 embedding 开发,建议还是使用 PostgreSQL 数据库来存储数据,否则费用就哗哗的。
我选择了 PostgreSQL 13.6,通过宝塔面板安装。没有为什么?低版本怕新功能不足,高版本怕bug多不稳定。
现在,您已经成功在CentOS上安装了PostgreSQL。您可以使用以下命令连接到PostgreSQL数据库:
```
sudo -u postgres psql
Centos 安装 postgresql,版本选择经历通过折磨,主要是因为后面安装 pgvector 插件,各种报错。
| pgvector 插件安装
上面我们讲到 PostgreSQL 数据库一个强大功能,就是向量数据检索,使用的就是 pgvector 插件,下面是安装过程
要在 CentOS 上安装 pgvector,可以按照以下步骤进行操作:
1. 首先,确保您的CentOS系统已经安装了 PostgreSQL 数据库。如果没有安装,请使用以下命令安装:
```
sudo yum install postgresql-server
```
此处忽略
2. 安装 pgvector 的依赖项。pgvector 需要安装 PostgreSQL 的开发包和一些其他的依赖项。使用以下命令安装:
```
sudo yum install postgresql-devel gcc make cmake git
```
3. 克隆 pgvector 的源代码。使用以下命令克隆 pgvector 的 GitHub 仓库:
```
git clone https://github.com/ankane/pgvector.git
```
4. 进入pgvector 目录。使用以下命令进入 pgvector 目录:
```
cd pgvector
```
5. 编译和安装 pgvector。使用以下命令编译和安装 pgvector:
```
make
sudo make install
```
6. 在PostgreSQL中启用pgvector扩展。使用以下命令连接到PostgreSQL数据库:
```
sudo -u postgres psql
```
然后,在PostgreSQL命令行中运行以下命令启用pgvector扩展:
```
CREATE EXTENSION pgvector;
```
如果一切顺利,您应该能够成功安装和启用pgvector扩展。
第4 编译时,建议使用以下操作:
make PG_CONFIG=/www/server/pgsql/bin/pg_config
sudo make install PG_CONFIG=/www/server/pgsql/bin/pg_config
指定宝塔面板安装的 PostgreSQL 数据库该文件实际路径,不要问为什么?否则编译时可能会遇到 bug 而编译失败。
安装成功后,只需要在数据库创建扩展插件即可。
| OpenAI 库文件安装
OpenAI 开发,离不开 Python 库文件安装。
pip install openai
研究过 OpenAI 手册的朋友,应该都知道 github.com 上有许多现成的开发案例,同时需要安装很多库文件。
https://github.com/openai/openai-cookbook/tree/main/examples
import osimport openaiopenai.api_key = os.getenv("OPENAI_API_KEY")openai.Completion.create( model="text-davinci-003", prompt="Say this is a test", max_tokens=7, temperature=0)
import jsonimport tiktoken # for token countingimport numpy as npfrom collections import defaultdict
像上面代码中,一般系统默认是没有安装 tiktoken、numpy 这些库的。只需要执行以下操作即可。
pip3 install tiktoken
pip3 install numpy
以此类推,需要安装其他库文件时,自行安装即可。
| Tornado Web 服务器
我们难免需要接收 Web 的请求,并转发给 OpenAI API 接口。鉴于许多开发案例都是使用 Python 实现,我们就选择 Tornado web 服务器,使用也非常简单。
import tornado.httpserver
import tornado.ioloopimport tornado.options
import tornado.web
Tornado web 服务器安装很简单,就是导入相应的库文件即可。
pip3 install tornado
至此,国内开发者搭建自己的服务器,实现链接 OpenAI 的部署基本完成,大部分安装步骤是通过@AI文档助手 直接链接 ChatGPT 生成的。没办法,现在某度除了搜索广告,有价值的学习资料太少了。