Skip to content
This repository was archived by the owner on Nov 6, 2024. It is now read-only.

Commit

Permalink
Update readme.md
Browse files Browse the repository at this point in the history
  • Loading branch information
shuwu-ui authored and Nekohy committed Nov 2, 2024
1 parent 0ee2b26 commit e195776
Showing 1 changed file with 110 additions and 129 deletions.
239 changes: 110 additions & 129 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,106 +1,130 @@
# 项目简介
![img](https://raw.githubusercontent.com/pieces-app/pieces-os-client-sdk-for-csharp/main/assets/pieces-logo.png)
# Pieces-OS API Bridge

逆向Pieces-OS GRPC流并转换为标准OpenAI接口的项目
<div align="center">

所有模型均由 Pieces-OS 提供
![Pieces Logo](https://raw.githubusercontent.com/pieces-app/pieces-os-client-sdk-for-csharp/main/assets/pieces-logo.png)

本项目基于GPLV3协议开源
将 Pieces-OS GRPC 流转换为标准 OpenAI 接口的开源项目

如果帮助到了你,能否给一个Star呢?
# 免责声明
本项目仅供学习交流使用,不得用于商业用途,如有侵权请联系删除
# DEMO站
**请善待公共服务,尽量自己搭建**
[![Deploy on Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/Nekohy/pieces-os&project-name=Pieces-OS&repository-name=Pieces-OS)
[![Deploy to Koyeb](https://www.koyeb.com/static/images/deploy/button.svg)](https://app.koyeb.com/deploy?name=pieces-os&type=docker&image=chb2024%2Fpieces-os%3Alatest&regions=was&env%5B%5D=&ports=8787%3Bhttp%3B%2F)

[Vercel](https://pieces.nekomoon.cc)
[DEMO - Vercel](https://pieces.nekomoon.cc) | [DEMO - Cloudflare Worker](https://pieces.464888.xyz)

[Cloudflare worker反代koyeb](https://pieces.464888.xyz)
# 一键部署
[![Deploy on Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/Nekohy/pieces-os&project-name=Pieces-OS&repository-name=Pieces-OS)
</div>

服务器部署命令:
```
bash <(curl -s https://raw.githubusercontent.com/shuwu-ui/pieces-os/refs/heads/main/install.sh)
## 📑 目录

- [项目简介](#项目简介)
- [免责声明](#免责声明)
- [快速部署](#快速部署)
- [支持模型](#支持模型)
- [项目结构](#项目结构)
- [使用说明](#使用说明)
- [环境配置](#环境配置)
- [Docker部署](#docker部署)

## 📖 项目简介

本项目基于 GPLV3 协议开源,实现了将 Pieces-OS 的 GRPC 流转换为标准 OpenAI 接口的功能。所有模型均由 Pieces-OS 提供。

> ⚠️ **请善待公共服务,建议自行部署使用**
## ⚖️ 免责声明

本项目仅供学习交流使用,不得用于商业用途。如有侵权请联系删除。

## 🚀 快速部署

### 一键部署选项

#### 1. 服务器一键安装脚本 (适用于 Ubuntu, Debian 等)
```bash
curl -sSL https://raw.githubusercontent.com/Nekohy/pieces-os/main/install.sh | sudo bash
```
脚本会自动安装 Docker 并部署本项目,只需按照提示输入相关配置即可。

#### 2. Vercel 部署
[![Deploy on Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/Nekohy/pieces-os&project-name=Pieces-OS&repository-name=Pieces-OS)

点击上方按钮一键部署到 Vercel 平台。

#### 3. Koyeb 部署
[![Deploy to Koyeb](https://www.koyeb.com/static/images/deploy/button.svg)](https://app.koyeb.com/deploy?name=pieces-os&type=docker&image=chb2024%2Fpieces-os%3Alatest&regions=was&env%5B%5D=&ports=8787%3Bhttp%3B%2F)

请注意下列环境变量!私人使用请添加API_KEY!
点击上方按钮一键部署到 Koyeb 平台。

cloudflare work反代koyeb
> ⚠️ **注意**: 请务必在部署时设置 API_KEY 环境变量以保护你的服务。
### Cloudflare Worker 反代配置
```javascript
export default {
async fetch(request, env) {
// 创建目标 URL 改成你自己的部署地址,不带协议头和/
const url = new URL(request.url);
url.hostname = 'abcdefg.koyeb.app';
url.hostname = 'abcdefg.koyeb.app'; // 替换为你的部署地址

// 创建新的请求对象
const newRequest = new Request(url, {
method: request.method,
headers: request.headers,
body: request.method === 'POST' ? request.body : null,
redirect: 'follow'
});

// 转发请求并返回响应
return fetch(newRequest);
}
}
```

# todo
- [x] 流式实现
- [x] Serverless部署
- [x] Docker支持
- [ ] 静态Proto JS
## 🤖 支持模型

### Claude 系列
- `claude-3-5-sonnet@20240620`
- `claude-3-haiku@20240307`
- `claude-3-sonnet@20240229`
- `claude-3-opus@20240229`

### GPT 系列
- `gpt-3.5-turbo`
- `gpt-4`
- `gpt-4-turbo`
- `gpt-4o-mini`
- `gpt-4o`

### Gemini 系列
- `gemini-pro`
- `gemini-1.5-flash`
- `gemini-1.5-pro`

### 其他模型
- `chat-bison`
- `codechat-bison`

## 📁 项目结构

# 项目结构
```
api
index.js Node.js的项目文件,即开即用
protos
GPTInferenceService.proto # GPT的GRPC定义
VertexInferenceService.proto # 其余几乎所有模型的GRPC定义
cloud_model.json 云端模型的配置文件,请提取unique中的模型使用
package.json 项目依赖
vercel.json Vercel部署配置文件
```
# 测试可用模型

## Claude 系列(Nextchat可将@换为-)
- **claude-3-5-sonnet@20240620**
- **claude-3-haiku@20240307**
- **claude-3-sonnet@20240229**
- **claude-3-opus@20240229**

## GPT 系列
- **gpt-3.5-turbo**
- **gpt-4**
- **gpt-4-turbo**
- **gpt-4o-mini**
- **gpt-4o**

## Gemini 系列
- **gemini-pro**
- **gemini-1.5-flash**
- **gemini-1.5-pro**

## 其他
- **chat-bison**
- **codechat-bison**

# 手动部署
安装 package.json 中定义的依赖库后,执行 `node index.js` 或者 `npm start`启动程序
# 测试命令
.
├── api/
│ └── index.js # Node.js 主程序文件
├── protos/
│ ├── GPTInferenceService.proto # GPT服务定义
│ └── VertexInferenceService.proto # 其他模型服务定义
├── cloud_model.json # 云端模型配置文件
├── package.json # 项目依赖
└── vercel.json # Vercel部署配置
```
获取模型

## 🔧 使用说明

### API测试命令

获取模型列表:
```bash
curl --request GET 'http://127.0.0.1:8787/v1/models' \
--header 'Content-Type: application/json'
```
```curl
请求

发送对话请求:
```bash
curl --request POST 'http://127.0.0.1:8787/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
Expand All @@ -115,60 +139,32 @@ curl --request POST 'http://127.0.0.1:8787/v1/chat/completions' \
}'
```

# 环境变量
## `API_PREFIX`
- **描述**: API 请求的前缀路径。
- **默认值**: `'/'`
- **获取方式**: `process.env.API_PREFIX || '/'`

## `API_KEY`
- **描述**: API 请求的密钥。
- **默认值**: 无 `''`
- **获取方式**: `process.env.API_KEY || ''`

## `MAX_RETRY_COUNT`
- **描述**: 最大重试次数。
- **默认值**: `3`
- **获取方式**: `process.env.MAX_RETRY_COUNT || 3`
## ⚙️ 环境配置

## `RETRY_DELAY`
- **描述**: 重试延迟时间,单位为毫秒。
- **默认值**: `5000`(5秒)
- **获取方式**: `process.env.RETRY_DELAY || 5000`
| 环境变量 | 描述 | 默认值 |
|---------|------|--------|
| `API_PREFIX` | API请求前缀 | `/` |
| `API_KEY` | API访问密钥 | `''` |
| `MAX_RETRY_COUNT` | 最大重试次数 | `3` |
| `RETRY_DELAY` | 重试延迟(ms) | `5000` |
| `PORT` | 服务端口 | `8787` |

## `PORT`
- **描述**: 服务监听的端口。
- **默认值**: `8787`
- **获取方式**: `process.env.PORT || 8787`


## Docker 部署说明
## 🐳 Docker部署

### 使用 Docker Compose(推荐)

1. 下载 `docker-compose.yml` 文件
1. 下载配置文件
```bash
curl -sSL https://raw.githubusercontent.com/Nekohy/pieces-os/main/docker-compose.yml
```

2. 修改配置:
-`API_KEY=sk-123456` 中的值修改为您自定义的密钥,用于保护部署的项目
- 如需要,可以修改左侧端口号(默认8787)

3. 启动服务:
2. 启动服务:
```bash
docker-compose up -d
```

4. 停止服务:
```bash
docker-compose down
```

### 使用 Docker 命令

如果您不想使用 Docker Compose,也可以直接使用 Docker 命令:

1. 拉取镜像:
```bash
docker pull chb2024/pieces-os:latest
Expand All @@ -184,37 +180,22 @@ docker run -d \
chb2024/pieces-os:latest
```

### 一键安装脚本(docker+本项目),适用于Ubuntu,Debian......

```bash
curl -sSL https://raw.githubusercontent.com/Nekohy/pieces-os/main/install.sh | sudo bash


```

根据提示输入即可

注意事项:
- 可以修改 `API_KEY` 用于保护您部署的docker
- 可以修改端口映射的左侧数值(如 `-p 9000:8787`
- 右侧端口(8787)和其他默认配置请勿修改
### Docker 管理命令

3. 管理容器:
```bash
## 停止容器
# 停止容器
docker stop pieces-os

## 启动容器
# 启动容器
docker start pieces-os

## 重启容器
# 重启容器
docker restart pieces-os

## 删除容器
# 删除容器
docker rm pieces-os
```

请确保在使用服务时使用正确的 API_KEY 进行认证。
---

# 碎碎念
我怎么把自己的提交邮箱写错了呢(这些提交都不算在我这个号头上(QWQ
如果这个项目对你有帮助,欢迎给个 Star ⭐️

0 comments on commit e195776

Please sign in to comment.