Files
freedakgmail 5bcfbdb88d
CI / lint (push) Has been cancelled
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled
CI / security-scan (push) Has been cancelled
docs: 添加使用示范和启动指南
- examples/demo_usage.py: Python 使用示范(openai SDK + requests)
- examples/demo_usage.go: Go 使用示范(net/http)
- run.md: 完整启动指南(前置条件、3种启动方式、API Key 配置、验证命令)
2026-08-03 07:57:31 +08:00

155 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Edge AI Gateway 启动指南
## 前置条件
### 1. 安装 Go
```bash
# macOS
brew install go
# Linux
wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
```
### 2. 安装 Ollama(本地推理引擎)
```bash
# macOS
brew install ollama
# Linux
curl -fsSL https://ollama.com/install.sh | sh
# 拉取模型
ollama pull deepseek-r1:1.5b
```
### 3. 安装 SQLite
```bash
# macOS(自带)
# Linux
sudo apt install sqlite3
```
## 启动方式
### 方式一:直接运行
```bash
# 1. 创建数据目录
mkdir -p /tmp/edgeai-data
# 2. 启动 Ollama(另一个终端)
ollama serve
# 3. 启动 Edge AI Gateway
EDGEAI_DB_PATH=/tmp/edgeai-data go run ./cmd/gateway/ --config configs/config.yaml
```
服务器将在 `http://0.0.0.0:8080` 启动。
### 方式二:编译后运行
```bash
# 1. 编译
go build -o bin/gateway ./cmd/gateway/
# 2. 启动
EDGEAI_DB_PATH=/tmp/edgeai-data ./bin/gateway --config configs/config.yaml
```
### 方式三:Docker Compose
```bash
cd deploy
docker-compose up -d
```
服务端口:
- Gateway: http://localhost:8080
- Ollama: http://localhost:11434
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000
## 配置 API Key
首次启动后需要创建 API Key
```bash
# 1. 计算 key 的 SHA-256 哈希
HASH=$(echo -n "your-api-key" | shasum -a 256 | awk '{print $1}')
# 2. 插入数据库
sqlite3 /tmp/edgeai-data/auth.db "INSERT INTO api_keys (app_id, tenant_id, name, key_hash, allowed_models, allowed_priorities, is_admin, enabled) VALUES ('my-app', 'my-tenant', 'my-key', '$HASH', '[]', '[]', 1, 1);"
# 3. 重启服务器使 key 生效
```
## 环境变量
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `EDGEAI_DB_PATH` | `/var/lib/edgeai` | 数据库目录 |
| `EDGEAI_SERVER_PORT` | `8080` | 服务端口 |
| `EDGEAI_LOG_LEVEL` | `info` | 日志级别 |
| `EDGEAI_CONFIG_PATH` | `configs/config.yaml` | 配置文件路径 |
## 验证
```bash
# 健康检查
curl http://localhost:8080/health
# 查看模型(需 API Key
curl -H "Authorization: Bearer your-api-key" http://localhost:8080/v1/models
# 非流式对话
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-d '{"model":"general-chat","messages":[{"role":"user","content":"你好"}]}'
# 流式对话
curl -N -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-d '{"model":"fast-chat","messages":[{"role":"user","content":"你好"}],"stream":true}'
# Prometheus 指标
curl http://localhost:8080/metrics
```
## 可选:启动 vLLM
```bash
# 安装 vLLM
pip install vllm
# 启动 vLLM 服务(端口 8000
vllm serve --model deepseek-ai/deepseek-r1-1.5b --port 8000
# 然后在 Gateway 配置中使用 vllm-chat 模型
```
## 运行测试
```bash
# 单元测试
go test ./internal/... -count=1
# 集成测试
go test ./test/integration/ -count=1
# 全部测试
go test ./internal/... -count=1 && \
go test ./test/integration/ -count=1 && \
go test ./test/security/ -count=1 && \
go test ./test/compatibility/ -count=1 && \
go test ./test/performance/ -count=1 && \
go test ./test/chaos/ -count=1
```