본문으로 건너뛰기

구독 프록시

구독 프록시는 외부 앱이 사용할 수 있도록 하는 로컬 HTTP 서버입니다 — OpenViking, Karakeep, Open WebUI, OpenAI 호환 앱 모두 Chat Completions — Hermes에서 관리하는 제공자 구독을 LLM 엔드포인트로 사용하세요. 프록시는 올바른 자격 증명을 첨부합니다(자동으로 새로 고침) 그래서 앱은 고정 API 키가 필요하지 않습니다.

이는 API 서버와 다릅니다:

API 서버구독 프록시
그것이 제공하는 것사용자의 에이전트(전체 도구 세트, 메모리, 기술)원시 모델 추론
사용 사례"Hermes를 채팅 백엔드로 사용하세요"다른 앱에서 내 포털 구독 사용
인증당신의 API_SERVER_KEY어떤 보유자(에이전트이 실제 소유자를 첨부함)
도구 호출예 — 에이전트가 도구를 실행합니다아니요 — 그냥 통과만

API 서버를 에이전트를 백엔드로 사용하고 싶을 때 사용하세요. 사용하세요 구독을 통해 모델만 사용하고 싶을 때 프록시.

빠른 시작

1. 제공자 계정에 로그인하세요 (한 번만)

hermes login nous

이것은 Nous 포털 OAuth 절차를 위해 브라우저를 엽니다. Hermes는 저장합니다 ~/.hermes/auth.json에 있는 리프레시 토큰 — 모든 Hermes가 있는 동일한 장소 제공자 로그인이 활성화되었습니다.

2. 프록시 시작

hermes proxy start

Starting Hermes proxy for Nous Portal Listening on: http://127.0.0.1:8645/v1 Forwarding to: (resolved per-request from your subscription) Use any bearer token in the client — the proxy attaches your real credential.


이것을 포그라운드에서 계속 실행하세요. `tmux`, `nohup` 또는 systemd를 사용하세요
유닛이 로그아웃 후에도 살아남길 원하면.

### 3. 앱을 그것을 가리키도록 설정하세요 \{#3-point-your-app-at-it}

모든 OpenAI 호환 앱 설정은 같은 세 가지 항목을 사용합니다:

Base URL: http://127.0.0.1:8645/v1 API key: anything (e.g. "sk-unused") Model: Hermes-4- # or Hermes-4.3-, Hermes-4-


프록시는 앱에서 오는 `Authorization` 헤더를 무시하고 첨부합니다
업스트림 요청에 대한 실제 포털 자격 증명입니다. 새로 고침이 발생합니다
소지자가 만료에 가까워지면 자동으로.

## 사용 가능한 제공자 \{#available-providers}

```bash
hermes proxy providers

현재 배송됨: nous (Nous Portal). 더 많은 OAuth 제공자를 UpstreamAdapter 인터페이스를 구현하여 추가됨 hermes_cli/proxy/adapters/.

상태 확인

hermes proxy status

Hermes proxy upstream adapters

[nous ] Nous Portal — ready (bearer expires 2026-05-15T06:43:)


만약 `not logged in`를 보게 되면, `hermes login nous`를 실행하세요. 만약 보게 되면
`credentials need attention`, 사용자의 리프레시 토큰이 취소되었습니다 (드물게 —
포털 웹 UI에서 로그아웃한 경우에 발생할 수 있음) — 그냥 다시 실행하세요
`hermes login nous`.

## 허용된 경로 \{#3-point-your-app-at-it}

프록시는 업스트림이 실제로 제공하는 경로만 전달합니다. Nous의 경우
포털:

| 경로 | 목적 |
|------|---------|
| `/v1/chat/completions` | 채팅 완성(스트리밍 + 비스트리밍) |
| `/v1/completions` | 레거시 텍스트 완성 |
| `/v1/embeddings` | 임베딩 |
| `/v1/models` | 모델 목록 |

다른 경로(`/v1/images/generations`, `/v1/audio/speech` 등)는 반환합니다
허용된 경로를 명확하게 가리키는 오류와 함께 404가 발생합니다. 이렇게 하면 잘못된
클라이언트가 이상한 요청을 업스트림으로 유출하지 않도록.

## OpenViking을 포털 사용으로 구성하기 \{#available-providers}

[OpenViking](https://github.com/volcengine/OpenViking)는 컨텍스트입니다
VLM(비전/언어 모델)을 위해 LLM 제공자가 필요한 데이터베이스
기억을 추출하는 데 사용) 및 임베딩 모델. 프록시를 사용하면
로컬 프록시에 `vlm.api_base`를 가리키십시오:

`~/.openviking/ov.conf` 편집:

```json
{
"vlm": {
"provider": "openai",
"model": "Hermes-4-",
"api_base": "http://127.0.0.1:8645/v1",
"api_key": "unused-proxy-attaches-real-creds"
}
}

그런 다음 터미널에서 openviking-server와 함께 프록시를 시작하세요:

# Terminal 1
hermes proxy start

# Terminal 2
openviking-server

OpenViking의 VLM 통화는 이제 사용자의 포털 구독을 통해 이루어집니다. 그 임베딩 모델 쪽은 여전히 자체 제공자가 필요합니다 — 포털은 제공 역할을 합니다 /v1/embeddings 하지만 모델 선택은 당신의 등급에 따라 달라집니다 지원합니다; portal.nousresearch.com/models를 확인하세요.

카라킵(또는 어떤 북마크/요약 앱)이 설정하기

Karakeep는 OpenAI 호환 API를 사용합니다 북마크 요약. 설정에서는:

# Karakeep.env
OPENAI_API_BASE_URL=http://127.0.0.1:8645/v1
OPENAI_API_KEY=any-non-empty-string
INFERENCE_TEXT_MODEL=Hermes-4-

같은 패턴이 Open WebUI, LobeChat, NextChat 또는 다른 어떤 것에서도 작동합니다 OpenAI 호환 클라이언트.

LAN에서 노출

기본적으로 프록시는 127.0.0.1 (로컬호스트 전용)에 바인딩됩니다. 다른 사용자가 연결할 수 있도록 네트워크에 있는 기기들이 그것을 사용합니다:

hermes proxy start --host 0.0.0.0 --port 8645

주의: 이제 네트워크에 있는 누구나 당신의 포털을 사용할 수 있습니다 구독. 프록시는 자체 인증이 없으며 — 모든 베어러를 허용합니다. 노출할 경우 적절한 인증이 있는 방화벽, VPN 또는 리버스 프록시를 사용하세요 이것은 당신이 신뢰하는 네트워크를 넘어섭니다.

요청 제한

사용자의 포털 등급의 RPM/TPM 제한은 전체 프록시에서 적용됩니다. 그 프록시는 분산되거나 풀링되지 않습니다 — 이것은 전체를 가진 단일 베어러입니다 구독 할당량. 사용량을 모니터링하세요 portal.nousresearch.com.

건축

프록시는 의도적으로 최소화되어 있습니다. 요청에 따라:

  1. 앱에서 POST /v1/chat/completions 받기
  2. 어댑터의 현재 자격 증명을 확인하세요(만료 시 갱신)
  3. 요청 본문을 그대로 전달하되, Authorization: Bearer <minted-key> 포함
  4. 응답을 변경하지 않고 스트리밍 방식으로 전송합니다 (SSE 유지)

변환 없음. 요청 본문 기록 없음. 에이전트 루프 없음. 그 프록시는 자격 증명을 첨부하는 통과 장치이다.

미래: 더 많은 OAuth 제공자

어댑터 시스템은 플러그형입니다. 새로운 제공자 추가 (예: HuggingFace, GitHub Copilot의 채팅 엔드포인트, OAuth를 통한 Anthropic) 에는 UpstreamAdapter를 구현하는 것이 필요합니다 hermes_cli/proxy/adapters/<provider>.py 그리고 그것을 등록하는 중 adapters/__init__.py. OpenAI와 호환되지 않는 제공자 프로토콜 수준(예: Anthropic Messages API)은 필요할 것입니다 변환 계층은 현재 형태의 범위를 벗어납니다.