Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
yArna committed Apr 24, 2023
2 parents 6e24eaf + 569b940 commit d6e9fb6
Show file tree
Hide file tree
Showing 6 changed files with 98 additions and 15 deletions.
2 changes: 1 addition & 1 deletion docker/dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ WORKDIR /app
COPY ["package.json", "package-lock.json*", "./"]
RUN npm install --registry http://registry.npmmirror.com --force
COPY . .
EXPOSE 12833
EXPOSE 12833 39011
CMD ["npm", "run", "start"]
51 changes: 48 additions & 3 deletions docker/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,61 @@

#### 使用

0. 配置环境

- `.env` 文件内配置

```env
# 工具服务端口,不设置默认为 12833
PORT="12833"
# 本地翻译服务是额外的一个配置,所以需要额外配置生效
# 翻译服务 port 可以不设置,不设置默认为 19212
#TRANSLATE_PORT="19212"
# 如果是 docker 部署 不要设置,自动获取
#TRANSLATE_HOST="localhost"
# 对外暴露的 翻译服务用于 docker 环境 必须设置
TRANSLATE_EXTERNAL_HOST="192.168.1.100"
TRANSLATE_EXTERNAL_PORT="39011"
# 翻译机配置 https://bobtranslate.com/service/translate/tencent.html
TENCENT_SECRET_ID="AKIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
TENCENT_SECRET_KEY="a5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
```

1. 构建命令

```
docker build -t open_prompt_studio:v0.1 -f docker/dockerfile .
docker build -t open-prompt-studio:latest -f docker/dockerfile .
```

2. 运行容器

```
docker run -d -p 3000:12833 open_prompt_studio:v0.1
$ docker run -d -p 39010:12833 -p 39011:19212 --name open-prompt-studio open-prompt-studio:latest
```

在浏览器内打开 `127.0.0.1:3000` 即可
在浏览器内打开 `127.0.0.1:39010` 即可

- docker-compose

```yml
version: '3.7'
services:
# open-prompt-studio start
open-prompt-studio:
container_name: 'open-prompt-studio'
image: 'open-prompt-studio:latest' # build by https://github.com/Moonvy/OpenPromptStudio
environment:
- TENCENT_SECRET_ID=AKIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- TENCENT_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- TRANSLATE_PORT=19212 # 容器运行本地翻译服务 port
- TRANSLATE_EXTERNAL_PORT=39011 # 外部访问翻译服务端口
- TRANSLATE_EXTERNAL_HOST=192.168.50.60 # 外部访问翻译服务地址,也可以是域名
ports:
- '39011:19212' # TRANSLATE_EXTERNAL_PORT:TRANSLATE_PORT
- '39010:12833' # EXTERNAL_PORT:PORT
restart: on-failure:3 # always on-failure:3 or unless-stopped default "no"
# open-prompt-studio end
```
24 changes: 18 additions & 6 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ OPS 支持使用 [Notion](https://www.notion.so/) 来管理自己的词典,使

#### 2.1 打开集成开发页面

打开 Notion 的集成开发页面 [🔗 www.notion.so/my-integrations](https://www.notion.so/my-integrations)
打开 Notion 的集成开发页面 [🔗 www.notion.so/my-integrations](https://www.notion.so/my-integrations)
点击 「+ new integrations」按钮创建一个新集成插件

<p align="center">
Expand Down Expand Up @@ -143,14 +143,26 @@ OPS 支持使用 [Notion](https://www.notion.so/) 来管理自己的词典,使
### 翻译服务

`./server` 文件夹中有一个翻译服务的简单实现,调用腾讯翻译
你需要申请一个[腾讯机器翻译的账号](https://bobtranslate.com/service/translate/tencent.html)(每月免费额度 500 万字)
你需要申请一个[腾讯机器翻译的账号](https://bobtranslate.com/service/translate/tencent.html)(每月免费额度 500 万字)
然后在项目根目录创建一个 `.env` 文件写入你的的 `SECRET_ID``SECRET_KEY`

`.env`

```node
TENCENT_SECRET_ID = "AKIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
TENCENT_SECRET_KEY = "a5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
```env
# 工具服务端口,不设置默认为 12833
PORT="12833"
# 本地翻译服务是额外的一个配置,所以需要额外配置生效
# 翻译服务 port 可以不设置,不设置默认为 19212
TRANSLATE_PORT="19212"
# 可以不设置,自动获取,如果是本地网络访问请设置为 ip
TRANSLATE_HOST="localhost"
# 非本机访问,请设置为部署服务的 ip 地址或者域名
TRANSLATE_EXTERNAL_HOST
# 翻译机配置 https://bobtranslate.com/service/translate/tencent.html
TENCENT_SECRET_ID="AKIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
TENCENT_SECRET_KEY="a5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
```

然后运行 `npm run serve` 启动本地翻译服务
然后运行 `npm run serve` 启动 `OPS 服务``本地翻译服务`
16 changes: 12 additions & 4 deletions server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,15 @@ app.post("/prompt-studio/translate/prompts", async (req: any, res: any) => {
}
})

const port = process.env.PORT || 19212
app.listen(port, () => {
console.log(`Server started on port ${port}`)
})
const port = process.env.TRANSLATE_PORT || 19212

if (process.env.TRANSLATE_HOST) {
const host = process.env.TRANSLATE_HOST || "localhost"
app.listen({port: port, host: host}, () => {
console.log(`translate Server started on port ${port} TRANSLATE_HOST: ${process.env.TRANSLATE_HOST}`)
})
} else {
app.listen(port, () => {
console.log(`translate server started on port ${port}`)
})
}
6 changes: 6 additions & 0 deletions src/Compoents/PromptEditor/Lib/translatePrompts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ export async function translatePrompts(testList: string[], options?: { server?:
})

let host = (<any>globalThis).__OPS_SERVER
if (process.env.TRANSLATE_EXTERNAL_HOST){
host = String(host).replace(/localhost/, process.env.TRANSLATE_EXTERNAL_HOST)
if (process.env.TRANSLATE_EXTERNAL_PORT) {
host = host.replace(/:19212/, `:${process.env.TRANSLATE_EXTERNAL_PORT}`)
}
}
let orgWords = reqList.map((req) => req[0])
if (orgWords.length == 0) return resultList.map((x) => x[1])
let re = await axios.post(`${options?.server ?? `${host}/translate/prompts`}`, {
Expand Down
14 changes: 13 additions & 1 deletion vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@ import path from "path"
import { resolve } from "path"
import progress from "vite-plugin-progress"
import * as process from "process"
import * as dotenv from "dotenv"
dotenv.config()

// https://vitejs.dev/config/
let config = {
root: "./web",
base: "/apps/ops/",
server: {
port: 12833,
port: Number(process.env.PORT) || 12833,
},
worker: {
format: "es",
Expand Down Expand Up @@ -40,6 +42,16 @@ let config = {
"@/": path.resolve(__dirname, "../../Old/moonvy-web/src/"),
},
},
define: {
'process.env': {
PORT: process.env.PORT || "",
EXTERNAL_HOST: process.env.EXTERNAL_HOST || "",
TRANSLATE_HOST: process.env.TRANSLATE_HOST || "",
TRANSLATE_PORT: process.env.TRANSLATE_PORT || "",
TRANSLATE_EXTERNAL_HOST: process.env.TRANSLATE_EXTERNAL_HOST || "",
TRANSLATE_EXTERNAL_PORT: process.env.TRANSLATE_EXTERNAL_PORT || "",
}
}
}
// ------------- [vite build] ------------
if (process.env.NODE_ENV == "production") {
Expand Down

0 comments on commit d6e9fb6

Please sign in to comment.