63eec59773
- 新增 vLLM 适配器 (internal/adapter/vllm.go),支持 OpenAI 兼容 API - 修复 responseWriter 未实现 http.Flusher 导致 SSE 流式输出 500 错误 - 调整中间件顺序:BodyLimit 移至 Auth 之前,提前拒绝超大请求 - BodyLimit 增强:检查 Content-Length header - 导出 Server.Authenticator() 方法供测试使用 - 配置更新:使用本地 deepseek-r1:1.5b 模型,新增 vllm-chat 逻辑模型 - 修复 handlers.go 中未使用的 target 参数 lint 警告
102 lines
2.2 KiB
YAML
102 lines
2.2 KiB
YAML
server:
|
|
host: "0.0.0.0"
|
|
port: 8080
|
|
admin_port: 8081
|
|
max_request_body_mb: 20
|
|
|
|
auth:
|
|
enabled: true
|
|
methods: [api_key]
|
|
jwt_issuer: edge-ai-gateway
|
|
jwt_secret_env: EDGEAI_JWT_SECRET
|
|
|
|
scheduler:
|
|
max_running_tasks: 8
|
|
max_queued_tasks: 500
|
|
fairness: weighted_fair_queue
|
|
priority_aging_seconds: 30
|
|
reserved_realtime_slots: 2
|
|
|
|
timeouts:
|
|
default_connect_ms: 5000
|
|
default_queue_ms: 5000
|
|
default_first_token_ms: 10000
|
|
default_inference_ms: 60000
|
|
default_idle_ms: 15000
|
|
default_total_ms: 90000
|
|
cancel_grace_period_ms: 3000
|
|
|
|
context:
|
|
safety_margin_ratio: 0.08
|
|
default_policy: summary_and_recent
|
|
max_session_messages: 200
|
|
session_idle_ttl_minutes: 60
|
|
enable_prompt_persistence: false
|
|
|
|
models:
|
|
general-chat:
|
|
provider: ollama
|
|
actual_model: deepseek-r1:1.5b
|
|
endpoint: http://127.0.0.1:11434
|
|
context_window: 32768
|
|
max_output_tokens: 4096
|
|
max_concurrency: 4
|
|
residency: always
|
|
cancel_supported: true
|
|
|
|
fast-chat:
|
|
provider: ollama
|
|
actual_model: deepseek-r1:1.5b
|
|
endpoint: http://127.0.0.1:11434
|
|
context_window: 16384
|
|
max_output_tokens: 2048
|
|
max_concurrency: 2
|
|
residency: on_demand
|
|
idle_unload_seconds: 600
|
|
|
|
vllm-chat:
|
|
provider: vllm
|
|
actual_model: deepseek-r1:1.5b
|
|
endpoint: http://127.0.0.1:8000
|
|
context_window: 32768
|
|
max_output_tokens: 4096
|
|
max_concurrency: 4
|
|
residency: always
|
|
cancel_supported: true
|
|
|
|
routing:
|
|
sensitive_data_local_only: true
|
|
allow_cloud_fallback_by_default: false
|
|
overload_strategy:
|
|
- same_model_other_instance
|
|
- smaller_local_model
|
|
- backup_edge_node
|
|
- reject
|
|
|
|
circuit_breaker:
|
|
error_rate_threshold: 0.1
|
|
min_requests: 10
|
|
window_seconds: 60
|
|
open_duration_seconds: 30
|
|
half_open_max_requests: 1
|
|
|
|
backpressure:
|
|
level1_threshold: 0.70
|
|
level2_threshold: 0.85
|
|
level3_threshold: 0.95
|
|
|
|
observability:
|
|
metrics_enabled: true
|
|
metrics_path: /metrics
|
|
tracing_enabled: true
|
|
prompt_logging: metadata_only
|
|
audit_retention_days: 180
|
|
log_level: info
|
|
|
|
storage:
|
|
session_db: sqlite:///var/lib/edgeai/sessions.db
|
|
task_state: sqlite:///var/lib/edgeai/tasks.db
|
|
redis:
|
|
enabled: false
|
|
endpoint: redis://127.0.0.1:6379
|