0 Star 12 Fork 9

黑夜 / OpenAI-API

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 5.03 KB
一键复制 编辑 原始数据 按行查看 历史
黑夜 提交于 2023-03-02 05:20 . update README.md.

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
  1. go 编译
go mod tidy && go build -o ./openai-api main.go
  1. 修改配置文件
{
    "gin_mode": "release",
    // 运行时监听端口
    "port":"8080"
}
  1. 运行
# 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相当不错,更推荐一些。

Go
1
https://gitee.com/lv-forever/open-ai-api.git
git@gitee.com:lv-forever/open-ai-api.git
lv-forever
open-ai-api
OpenAI-API
master

搜索帮助