# OpenAI-API
**Repository Path**: lujintang/open-ai-api
## Basic Information
- **Project Name**: OpenAI-API
- **Description**: 使用了账号池来管理OpenAI的API-Key,实现OpenAI接口调用
- **Primary Language**: Go
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 10
- **Created**: 2025-02-17
- **Last Updated**: 2025-02-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OpenAI-API
***
> 添加了 gpt-3.5-turbo-0301 达到和chatGPT 相似的回答能力
***
## 项目介绍
在中国,由于防火墙的限制,中国用户不能注册 OpenAI 的账号,对于 ChatGPT 来说,也没有开放相应的 API 接口,无法直接使用 API 来实现 ChatGPT 那样强大的人工智能聊天,但是庆幸的是,在中国各路大神的神操作下还是有各种的实现办法。目前,OpenAI 对于我个人的生活学习方面已够用,所以我开发这个项目主要来支持我 IPhone 上对应的快捷指令直接调用 OpenAI 实现部分功能。
由于中国没有 OpenAI 的访问方式,而且 OpenAI-API 的访问是限额的,对于大量的请求会导致个人账号欠费,不适用于公共使用,新版本之后,可以通过账号池的方式,通过接口来增加账号池内的API Key,对于个人或者小群体使用就足够了。
## 项目背景
ChatGPT 是基于 OpenAI 的基础上实现的,本项目对接的 OpenAI 可以简单理解为是 ChatGPT 的弱版,但是在其他方面又比 ChatGPT 更强一些,OpenAI 支持多种模型:
| MODELS | DESCRIPTION |
|----------------|-------------------------------|
| GPT-3 | 一套能够理解和生成自然语言的模型 |
| Codex | 一套能够理解和生成代码的模型,包括将自然语言翻译成代码 |
| Content filter | 一个经过微调的模型,可以检测文本是否可能是敏感或不安全的。 |
GPT-3 模型可以理解和生成自然语言。其提供四种主要型号,具有不同的功率水平,适用于不同的任务。text-davinci-003 是最有能力的模型,而 text-ada-001 是最快的。
| LATEST MODEL | DESCRIPTION | MAX REQUEST | TRAINING DATA |
|------------------|---------------------------------------------------------------------|--------------|----------------|
| text-davinci-003 | 功能最强的GPT-3模型。可以完成其他模型所能完成的任何任务,通常具有更高的质量、更长的输出和更好的指令跟随性。还支持在文本中插入补语 | 4,000 tokens | Up to Jun 2021 |
| text-curie-001 | 能力很强,但比Davinci更快,成本更低 | 2,048 tokens | Up to Oct 2019 |
| text-babbage-001 | 能够完成简单的任务,速度非常快,而且成本较低。 | 2,048 tokens | Up to Oct 2019 |
| text-ada-001 | 能够完成非常简单的任务,通常是GPT-3系列中最快的型号,而且成本最低。 | 2,048 tokens | Up to Oct 2019 |
这里补充说一句,ChatGPT 是基于 GPT-3.5 实现的
## 安装教程
环境:
1. Go 1.19.*
2. Docker (可选)
3. Docker-compose (可选)
### 编译安装
本项目是使用 Go 开发,如果是直接在物理机上运行的话, 请确保物理机上已准备好对应的 Go 环境
1. clone 项目源码
```
git clone https://gitee.com/lv-forever/open-ai-api.git && cd open-ai-api
```
2. go 编译
```
go mod tidy && go build -o ./openai-api main.go
```
3. 修改配置文件
```
{
"gin_mode": "release",
// 运行时监听端口
"port":"8080"
}
```
4. 运行
```
# Linux
openai-api
# Windows
openai-api.exe
```
### Docker 安装
暂时没有将镜像上传到公共仓库,所以 Docker 安装仍需要编译这一步骤
1. 打包镜像
```
docker build --rm -t openai-api:latest .
```
1. 修改 config.json 文件,如上
2. 修改 docker-compose.yml 文件,主要修改端口映射
3. 运行镜像
```
# 启动容器
docker-compose up -d
# 停止容器
docker-compose down
```
## 使用说明
目前只支持最简单的功能,简单的,没有上下文支持的回答问题的功能,后续可能有精力的话,会继续完成 OpenAI-API 的图片,代码生成之类 API 接口
API 接口:
| 接口地址 | 请求方式 | 请求内容类型 | 请求参数 | 响应参数 |
| -------- | -------- | ---------------- | --------------------------------------------- |------------------------------------------------------------------------------|
| /ask | POST | application/json | ``{ "msg" : "你好呀"}`` | // 成功响应
`` { "answer": "你好呀"}``
// 失败响应
`` { "error": "xxx"} ``|
| /addkey | GET | application/json | ``{ "key" : "sk-xxx"}`` | // 成功响应
`` { "message": "success"}``
// 失败响应
`` { "error": "xxx"} ``|
### 备注:
相比较而言,对于国内的用户,使用New Bing的门槛会比使用ChatGPT的低亿点点。New Bing增加了限制之后,不可以像ChatGPT一样可以保存会话,且每一次会话只能进行5次问答,但是对于比较简单的任务,New Bing相当不错,更推荐一些。