Skip to content

Commit

Permalink
Merge pull request #22 from NowAnti/main
Browse files Browse the repository at this point in the history
完善代理部署文档 & 增加错误提示展示
  • Loading branch information
mic1on authored Mar 6, 2023
2 parents 5e791c9 + 45d0058 commit 71ae0a8
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 6 deletions.
18 changes: 15 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,34 @@
## 更新日志:
03-04:支持代理,环境变量`HTTPS_PROXY`,如`HTTPS_PROXY=http://127.0.0.1:7890`,如果不需要代理,可以不设置。

03-02:支持`gpt-3.5-turbo`模型
03-02:支持 `gpt-3.5-turbo` 模型

02-20:支持了API的**连续对话**

02-15:前端可以自定义`API_KEY`,优先级大于后端自定义的`API_KEY`
02-15:前端可以自定义 `API_KEY` ,优先级大于后端自定义的 `API_KEY`


## 快速开始

### 1. docker 部署
作者已经将`chatgpt`打包成镜像,可以直接使用`docker`部署。
作者已经将 `chatgpt` 打包成镜像,可以直接使用 `docker` 部署。

```bash
docker run --name chatgpt -d -p 8000:8000 -e API_KEY=sk-xxxx miclon/chatgpt:latest
```

使用代理(这里以使用Clash作为代理服务为例):

- 如果 `Clash``docker` 在同一台机器,则可以用该命令部署:
```bash
docker run --name chatgpt -d -p 8000:8000 -e API_KEY=sk-xxxx -e HTTPS_PROXY=http://127.0.0.1:7890 miclon/chatgpt:latest
```

- 如果 `Clash``docker` 在同一局域网(或者在同一台机器但宿主机为 `MacOS` 的),则将 `HTTPS_PROXY` 的值改为 `Clash` 所在机器的局域网地址,同时在 `Clash` 中勾选上 `允许局域网连接`,部署示例:
```bash
docker run --name chatgpt -d -p 8000:8000 -e API_KEY=sk-xxxx -e HTTPS_PROXY=http://192.168.0.10:7890 miclon/chatgpt:latest
```

### 2. 本地部署

- 拉取项目,安装依赖
Expand Down
16 changes: 13 additions & 3 deletions api/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
from fastapi.templating import Jinja2Templates
from fastapi.responses import HTMLResponse, JSONResponse
from fastapi.staticfiles import StaticFiles
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates

from model import Message, MessageTurbo
import api
from model import Message, MessageTurbo

app = FastAPI()

Expand All @@ -17,6 +17,16 @@
app.mount("/assets", StaticFiles(directory=ASSETS_DIR), name="assets")
templates = Jinja2Templates(directory=DIST_DIR)


async def catch_exceptions_middleware(request: Request, call_next):
try:
return await call_next(request)
except Exception as exc:
return JSONResponse(content={"code": 500, "error": {"message": f"{type(exc)} {exc}"}})


app.middleware('http')(catch_exceptions_middleware)

app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
Expand Down

0 comments on commit 71ae0a8

Please sign in to comment.