106 lines
2.7 KiB
Markdown
106 lines
2.7 KiB
Markdown
# Edge AI Gateway
|
||
|
||
边缘 AI 算力机统一 AI 通讯层 — OpenAI 兼容的 AI 网关。
|
||
|
||
## 快速开始
|
||
|
||
### 前置条件
|
||
|
||
- Go 1.23+
|
||
- Ollama(或 vLLM)推理引擎
|
||
- Make(可选)
|
||
|
||
### 编译
|
||
|
||
```bash
|
||
make build
|
||
```
|
||
|
||
### 运行
|
||
|
||
```bash
|
||
# 使用默认配置
|
||
make run
|
||
|
||
# 使用自定义配置
|
||
./bin/edgeai-gateway --config configs/config.yaml
|
||
```
|
||
|
||
### 测试
|
||
|
||
```bash
|
||
# 全部测试
|
||
make test
|
||
|
||
# 单元测试
|
||
make test-unit
|
||
|
||
# 覆盖率报告
|
||
make test-coverage
|
||
```
|
||
|
||
### Docker 部署
|
||
|
||
```bash
|
||
# 构建镜像
|
||
make docker
|
||
|
||
# 使用 docker-compose 启动完整环境(Gateway + Ollama + Prometheus + Grafana)
|
||
docker compose -f deploy/docker-compose.yaml up -d
|
||
```
|
||
|
||
## API 端点
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|------|------|------|
|
||
| POST | `/v1/chat/completions` | Chat 补全(流式/非流式) |
|
||
| GET | `/v1/models` | 列出可用模型 |
|
||
| POST | `/v1/sessions` | 创建会话 |
|
||
| GET | `/v1/sessions/:id` | 查询会话 |
|
||
| DELETE | `/v1/sessions/:id` | 删除会话 |
|
||
| GET | `/health` | 健康检查 |
|
||
| GET | `/ready` | 就绪检查 |
|
||
| GET | `/metrics` | Prometheus 指标 |
|
||
|
||
## 配置
|
||
|
||
配置文件位于 `configs/config.yaml`,支持环境变量覆盖:
|
||
|
||
| 环境变量 | 说明 | 默认值 |
|
||
|---------|------|--------|
|
||
| `EDGEAI_CONFIG_PATH` | 配置文件路径 | `configs/config.yaml` |
|
||
| `EDGEAI_SERVER_PORT` | 服务端口 | `8080` |
|
||
| `EDGEAI_ADMIN_PORT` | 管理端口 | `8081` |
|
||
| `EDGEAI_LOG_LEVEL` | 日志级别 | `info` |
|
||
| `EDGEAI_DB_PATH` | 数据库目录 | `/var/lib/edgeai` |
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
cmd/gateway/ # 应用入口
|
||
internal/
|
||
config/ # 配置加载与校验
|
||
server/ # HTTP 服务器与路由
|
||
handler/ # 请求处理器与错误响应
|
||
middleware/ # 中间件(RequestID、BodyLimit、Logging、Recovery)
|
||
auth/ # API Key 认证
|
||
session/ # 会话存储(SQLite)
|
||
context/ # 上下文组装与 Token 估算
|
||
scheduler/ # 优先级队列与调度器
|
||
router/ # 逻辑模型映射
|
||
connector/ # 超时管理与取消传播
|
||
adapter/ # 推理引擎适配器(Ollama)
|
||
task/ # 任务状态机与持久化
|
||
observability/ # 结构化日志与 Prometheus 指标
|
||
pkg/api/ # API 类型定义
|
||
configs/ # 配置文件
|
||
deploy/ # Docker Compose 与 Prometheus 配置
|
||
test/ # 测试工具与集成/E2E 测试
|
||
```
|
||
|
||
## 开发阶段
|
||
|
||
- **M1 (MVP)** — 基础网关功能:API 代理、认证、调度、SSE 流式、Ollama 适配
|
||
- **M2 (治理增强)** — 熔断、背压、动态路由、幂等控制、Redis 集成
|
||
- **M3 (多节点/多模态)** — 多节点调度、视觉/语音模型、WebSocket、云端路由
|