yi-openai-proxy

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

README

YI OpenAI Proxy

Yi OpenAI Proxy,将零一万物 YI-34B 模型 API 转换为各种使用 OpenAI API 的开源软件支持的格式,无需修改开源软件配置或代码。

只需要配置两个环境变量,一键启动,开始畅玩 AI Native 应用🚀。

项目借鉴和修改自下面两个项目,感谢 ❤️:

当前验证可玩开源项目(持更,欢迎 PR)

开源项目 适配状态
chatgpt-web
chatbox
langchain
ChatGPT-Next-Web

软件下载

你可以在 GitHub Release 页面下载构建好的二进制可执行文件,在你的机器直接运行。

也可以使用 Docker Pull,下载 GitHub CI 自动构建好的小巧的容器镜像。

docker pull soulteary/yi-openai-proxy:v1.0.0

快速上手

如果你直接下载和使用二进制可执行,那么使用命令启动即可:

YI_ENDPOINT=https://你申请到的API地址 YI_API_KEY=你申请到的API_KEY ./yi-openai-proxy

如果你使用容器,可以使用下面的命令一键启动:

docker run --rm -e YI_ENDPOINT=https://你申请到的API地址 YI_API_KEY=你申请到的API_KEY soulteary/yi-openai-proxy:v1.0.0

当然,如果你喜欢声明式的配置,使用下面的 docker-compose.yml 配置会更直观:

version: "3"

services:
  yi-openai-proxy:
    image: soulteary/yi-openai-proxy:v1.0.0
    restart: always
    ports:
      - "8080:8080"
    environment:
      # 使用以 `https://` 开头的 YI-34B API 地址
      - YI_ENDPOINT=https://<YI_API_URL>
      # 如果你定义了这个参数,那么你的程序在调用 “API” 的时候,就不需要携带 KEY 的内容了,或者随意写都行,这样就不会把 KEY 泄漏给应用了。更方便,也更安全。
      - YI_API_KEY=<YI API Key>

调用验证

我们可以使用 curl 来方便的模拟 SDK 或者应用访问,比如执行:

curl --location --request POST 'localhost:8080/v1/chat/completions' \
-H 'Authorization: Bearer <你的 API Key>' \
-H 'Content-Type: application/json' \
-d '{
    "max_tokens": 1000,
    "model": "gpt-3.5-turbo",
    "temperature": 0.8,
    "top_p": 1,
    "presence_penalty": 1,
    "messages": [
        {
            "role": "user",
            "content": "Hello"
        }
    ],
    "stream": true
}'

虽然上面我们写的模型是 gpt-3.5-turbo,甚至我们没有正确填写 API Key,如果你在启动服务的时候,已经配置好了 YI_API_KEY 环境变量,因为通过了这个服务的处理,我们想用的开源软件就能够实现不修改代码或者逻辑,直接复用 YI。

使用 ChatGPT-Next-Web

chatgpt-web

docker-compose.yml

version: '3'

services:
  chatgpt-web:
    image: yidadaa/chatgpt-next-web
    ports:
      - 3000:3000
    environment:
      API_KEY: <Azure OpenAI API Key>
      BASE_URL: http://azure-openai:8080
      CODE: ""
      HIDE_USER_API_KEY: 1
      HIDE_BALANCE_QUERY: 1
    depends_on:
      - azure-openai
    links:
      - azure-openai
    networks:
      - chatgpt-ns

  azure-openai:
    image: soulteary/azure-openai-proxy:1.2.0
    ports:
      - 8080:8080
    environment:
      YI_ENDPOINT: <Azure OpenAI API Endpoint>
      YI_MODEL_MAPPER: <Azure OpenAI API Deployment Mapper>
      YI_MODEL_MAPPER: gpt-4:gpt-4,gpt-3.5-turbo:gpt-35-turbo
      YI_API_VER: 2023-07-01-preview
    networks:
      - chatgpt-ns

networks:
  chatgpt-ns:
    driver: bridge
使用 ChatGPT-Web

ChatGPT Web: https://github.com/Chanzhaoyu/chatgpt-web

chatgpt-web

Envs:

  • API_KEY Azure OpenAI API Key
  • YI_ENDPOINT Azure OpenAI API Endpoint
  • YI_MODEL_MAPPER Azure OpenAI API Deployment Name Mappings

docker-compose.yml:

version: '3'

services:
  chatgpt-web:
    image: chenzhaoyu94/chatgpt-web
    ports:
      - 3002:3002
    environment:
      API_KEY: <Azure OpenAI API Key>
      API_BASE_URL: http://azure-openai:8080
      # API_MODEL: gpt-4
      AUTH_SECRET_KEY: ""
      MAX_REQUEST_PER_HOUR: 1000
      TIMEOUT_MS: 60000
    depends_on:
      - azure-openai
    links:
      - azure-openai
    networks:
      - chatgpt-ns

  azure-openai:
    image: soulteary/azure-openai-proxy:1.2.0
    ports:
      - 8080:8080
    environment:
      YI_ENDPOINT: <Azure OpenAI API Endpoint>
      YI_MODEL_MAPPER: <Azure OpenAI API Deployment Mapper>
      YI_API_VER: 2023-07-01-preview
    networks:
      - chatgpt-ns

networks:
  chatgpt-ns:
    driver: bridge

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL