本文讲述如何从零开始搭建服务器,通过 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,版本选择建议你遵循过来人的建议,没有为什么?这样少走弯路。


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 库文件安装。


研究过 OpenAI 手册的朋友,应该都知道 github.com 上有许多现成的开发案例,同时需要安装很多库文件。



像上面代码中,一般系统默认是没有安装 tiktoken、numpy 这些库的。只需要执行以下操作即可。


以此类推,需要安装其他库文件时,自行安装即可。

| Tornado Web 服务器

我们难免需要接收 Web 的请求,并转发给 OpenAI API 接口。鉴于许多开发案例都是使用 Python 实现,我们就选择 Tornado web 服务器,使用也非常简单。


Tornado web 服务器安装很简单,就是导入相应的库文件即可。



至此,国内开发者搭建自己的服务器,实现链接 OpenAI 的部署基本完成,大部分安装步骤是通过@AI文档助手 直接链接 ChatGPT 生成的。没办法,现在某度除了搜索广告,有价值的学习资料太少了。