mirror of
https://github.com/domfelipe/hermes-client-onboarding.git
synced 2026-08-07 09:16:39 +00:00
Always set DeepSeek base_url to avoid OpenRouter 401
Leftover model.base_url pointing at openrouter.ai causes Missing Authentication header even with a valid DEEPSEEK_API_KEY.
This commit is contained in:
parent
89b036652c
commit
f86c06d521
4 changed files with 21 additions and 0 deletions
|
|
@ -141,6 +141,7 @@ Equivalente manual:
|
||||||
hermes config set DEEPSEEK_API_KEY "sk-..."
|
hermes config set DEEPSEEK_API_KEY "sk-..."
|
||||||
hermes config set model.provider deepseek
|
hermes config set model.provider deepseek
|
||||||
hermes config set model.default deepseek-v4-flash
|
hermes config set model.default deepseek-v4-flash
|
||||||
|
hermes config set model.base_url "https://api.deepseek.com/v1"
|
||||||
```
|
```
|
||||||
|
|
||||||
Não imprime secrets.
|
Não imprime secrets.
|
||||||
|
|
|
||||||
|
|
@ -87,13 +87,17 @@ Ask:
|
||||||
hermes config set DEEPSEEK_API_KEY "THE_KEY"
|
hermes config set DEEPSEEK_API_KEY "THE_KEY"
|
||||||
hermes config set model.provider deepseek
|
hermes config set model.provider deepseek
|
||||||
hermes config set model.default deepseek-v4-flash
|
hermes config set model.default deepseek-v4-flash
|
||||||
|
hermes config set model.base_url "https://api.deepseek.com/v1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Important: always set `model.base_url` to the DeepSeek API. A leftover OpenRouter URL causes HTTP 401 ("Missing Authentication header") even with a valid `DEEPSEEK_API_KEY`.
|
||||||
|
|
||||||
4. Verify with:
|
4. Verify with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
hermes config get model.default
|
hermes config get model.default
|
||||||
hermes config get model.provider
|
hermes config get model.provider
|
||||||
|
hermes config get model.base_url
|
||||||
```
|
```
|
||||||
|
|
||||||
Optional: Offer fallback model `deepseek-v4-pro` if the user wants a stronger model (higher cost).
|
Optional: Offer fallback model `deepseek-v4-pro` if the user wants a stronger model (higher cost).
|
||||||
|
|
@ -232,6 +236,7 @@ curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-
|
||||||
hermes config set DEEPSEEK_API_KEY "sk-..."
|
hermes config set DEEPSEEK_API_KEY "sk-..."
|
||||||
hermes config set model.provider deepseek
|
hermes config set model.provider deepseek
|
||||||
hermes config set model.default deepseek-v4-flash
|
hermes config set model.default deepseek-v4-flash
|
||||||
|
hermes config set model.base_url "https://api.deepseek.com/v1"
|
||||||
hermes config set TELEGRAM_BOT_TOKEN "..."
|
hermes config set TELEGRAM_BOT_TOKEN "..."
|
||||||
hermes config set TELEGRAM_ALLOWED_USERS "123456789"
|
hermes config set TELEGRAM_ALLOWED_USERS "123456789"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-
|
||||||
hermes config set DEEPSEEK_API_KEY "THE_KEY"
|
hermes config set DEEPSEEK_API_KEY "THE_KEY"
|
||||||
hermes config set model.provider deepseek
|
hermes config set model.provider deepseek
|
||||||
hermes config set model.default deepseek-v4-flash
|
hermes config set model.default deepseek-v4-flash
|
||||||
|
hermes config set model.base_url "https://api.deepseek.com/v1"
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Check:
|
3. Check:
|
||||||
|
|
@ -32,9 +33,16 @@ hermes config set model.default deepseek-v4-flash
|
||||||
```bash
|
```bash
|
||||||
hermes config get model.default
|
hermes config get model.default
|
||||||
hermes config get model.provider
|
hermes config get model.provider
|
||||||
|
hermes config get model.base_url
|
||||||
# key lives in ~/.hermes/.env — never cat full file in front of client
|
# key lives in ~/.hermes/.env — never cat full file in front of client
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If HTTP 401 "Missing Authentication header" with a valid key: `model.base_url` is probably still OpenRouter. Force DeepSeek:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
hermes config set model.base_url "https://api.deepseek.com/v1"
|
||||||
|
```
|
||||||
|
|
||||||
4. Test connectivity: `curl -sI https://api.deepseek.com | head -1`
|
4. Test connectivity: `curl -sI https://api.deepseek.com | head -1`
|
||||||
|
|
||||||
5. If the model name is rejected, stick to Hermes-supported IDs: `deepseek-v4-flash` or `deepseek-v4-pro` (legacy `deepseek-chat` / `deepseek-reasoner` were retired).
|
5. If the model name is rejected, stick to Hermes-supported IDs: `deepseek-v4-flash` or `deepseek-v4-pro` (legacy `deepseek-chat` / `deepseek-reasoner` were retired).
|
||||||
|
|
|
||||||
|
|
@ -52,13 +52,20 @@ if [[ ! "$TG_USERS" =~ ^[0-9]+(,[0-9]+)*$ ]]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
BASE_URL="https://api.deepseek.com/v1"
|
||||||
|
if [[ "$PROVIDER" == "openrouter" ]]; then
|
||||||
|
BASE_URL="https://openrouter.ai/api/v1"
|
||||||
|
fi
|
||||||
|
|
||||||
hermes config set DEEPSEEK_API_KEY "$DS_KEY"
|
hermes config set DEEPSEEK_API_KEY "$DS_KEY"
|
||||||
hermes config set model.provider "$PROVIDER"
|
hermes config set model.provider "$PROVIDER"
|
||||||
hermes config set model.default "$MODEL"
|
hermes config set model.default "$MODEL"
|
||||||
|
hermes config set model.base_url "$BASE_URL"
|
||||||
hermes config set TELEGRAM_BOT_TOKEN "$TG_TOKEN"
|
hermes config set TELEGRAM_BOT_TOKEN "$TG_TOKEN"
|
||||||
hermes config set TELEGRAM_ALLOWED_USERS "$TG_USERS"
|
hermes config set TELEGRAM_ALLOWED_USERS "$TG_USERS"
|
||||||
|
|
||||||
echo "ok: provider=$(hermes config get model.provider 2>/dev/null || echo "$PROVIDER")"
|
echo "ok: provider=$(hermes config get model.provider 2>/dev/null || echo "$PROVIDER")"
|
||||||
echo "ok: model=$(hermes config get model.default 2>/dev/null || echo "$MODEL")"
|
echo "ok: model=$(hermes config get model.default 2>/dev/null || echo "$MODEL")"
|
||||||
|
echo "ok: base_url=$(hermes config get model.base_url 2>/dev/null || echo "$BASE_URL")"
|
||||||
echo "ok: allowed_users=$TG_USERS"
|
echo "ok: allowed_users=$TG_USERS"
|
||||||
echo "ok: secrets written (not displayed)"
|
echo "ok: secrets written (not displayed)"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue