2.2 KiB
2.2 KiB
Conol.ai Gateway — OMP Key Matching
Problem
Gateway starts with a random API key but OMP expects a specific one.
Architecture
OMP (providers.yml) Gateway (port 9999)
├─ apiKey: test → ├─ /health → api_key_prefix
└─ baseUrl: ...9999/v1 ├─ /v1/chat/completions → Bearer auth
└─ /v1/models → Bearer auth
If the keys don't match: OMP gets HTTP 401 → falls back to next provider → "hermes-conol" NEVER works.
Two Gateways, Two Key Mechanisms
Gateway v3 (conol_github/conol_pool_gateway.py)
Uses ENI_POOL_KEY env var. Old stable gateway (20+ hour uptime).
cd C:\Users\User\Desktop\conol_github
ENI_POOL_KEY=test /c/Users/User/AppData/Local/Programs/Python/Python311/python.exe conol_pool_gateway.py
If ENI_POOL_KEY is not set, generates random sha256(os.urandom(32))[:32] → OMP will fail.
Gateway v4 (conol_autoreg/gateway.py)
Reads from config.json → gateway.api_key. Default: test.
cd C:\Users\User\Desktop\conol_autoreg
/c/Users/User/AppData/Local/Programs/Python/Python311/python.exe gateway.py
Also respects ENI_POOL_KEY and ENI_POOL_KEY_OVERRIDE env vars (override priority: ENI_POOL_KEY_OVERRIDE > ENI_POOL_KEY > config.json).
How to Verify Match
# Get gateway's actual key prefix
curl -s http://127.0.0.1:9999/health | python -c "import sys,json; print(json.load(sys.stdin)['api_key_prefix'])"
# Get OMP's expected key
python -c "
import yaml
with open(r'C:\Users\User\.omp\agent\providers.yml') as f:
c = yaml.safe_load(f)
print(repr(c['providers']['hermes-conol']['apiKey']))
"
Both should show test....
Common Failure Mode
Gateway was started without ENI_POOL_KEY → random key generated (e.g., bfae749f...). OMP has test. Result: OMP calls return 401, "hermes-conol" provider silently fails, all traffic falls back to echogate.
Fix
- Kill old gateway process
- Restart with correct key:
# For conol_github gateway: ENI_POOL_KEY=test python conol_pool_gateway.py # For conol_autoreg gateway: python gateway.py # reads test from config.json - OMP picks up immediately — no restart needed