DemonRoute (demonroute.com) is an OpenAI-compatible API for open-weight models: base URL https://api.demonroute.com/v1, Authorization: Bearer <key>, Chat Completions with streaming. Model IDs are Hugging Face-style org/Name, for example NousResearch/Hermes-4-70B or Sao10K/L3.3-70B-Euryale-v2.3; GET /v1/models (with a key) lists them. Accounts can be anonymous (username and password, no email), funding is crypto-only, and client IPs aren't persisted (https://demonroute.com/privacy).
Your OpenAI plugin docs already cover OpenAI-compatible gateways, and DemonRoute works with the existing path:
llm = openai.LLM(
base_url="https://api.demonroute.com/v1",
api_key="<demonroute-key>",
model="NousResearch/Hermes-4-70B",
)
Tool calling depends on the model (Hermes-4-70B returns structured tool calls; not every model does).
Would you take a short docs addition with this example? Happy to open the PR.
Disclosure: I'm Jeremy Ryan, and I'm affiliated with DemonRoute.
DemonRoute (demonroute.com) is an OpenAI-compatible API for open-weight models: base URL
https://api.demonroute.com/v1,Authorization: Bearer <key>, Chat Completions with streaming. Model IDs are Hugging Face-styleorg/Name, for exampleNousResearch/Hermes-4-70BorSao10K/L3.3-70B-Euryale-v2.3;GET /v1/models(with a key) lists them. Accounts can be anonymous (username and password, no email), funding is crypto-only, and client IPs aren't persisted (https://demonroute.com/privacy).Your OpenAI plugin docs already cover OpenAI-compatible gateways, and DemonRoute works with the existing path:
Tool calling depends on the model (Hermes-4-70B returns structured tool calls; not every model does).
Would you take a short docs addition with this example? Happy to open the PR.
Disclosure: I'm Jeremy Ryan, and I'm affiliated with DemonRoute.