Skip to content

feat: add InferenceHub provider to OpenAI-compatible registry - #22

Merged
eric8810 merged 2 commits into
arcships:masterfrom
tianyiswufeng:feat/inferencehub-provider
Aug 4, 2026
Merged

feat: add InferenceHub provider to OpenAI-compatible registry#22
eric8810 merged 2 commits into
arcships:masterfrom
tianyiswufeng:feat/inferencehub-provider

Conversation

@tianyiswufeng

Copy link
Copy Markdown
Contributor

What

Adds inferencehub to the OpenAI-compatible provider registry:

  • aimux-providers/src/provider_registry.json — new entry (sorted position):
    name: inferencehub, display: InferenceHub, base_url: https://app.inferencehub.tech/v1, env_var: INFERENCEHUB_API_KEY, profile: {}
  • Every other changed file is regenerated output: scripts/gen_provider_names.py (ProviderName types for Rust + the 7 binding languages) and scripts/gen_providers_doc.py (docs/api/providers.md).
  • Bumped the two hardcoded registry-count asserts in provider.rs tests (registry_entries_are_valid, provider_name_roundtrip) 250 → 251.

Note: README says "325 providers / 250 registry-backed", while the generated docs/api/providers.md now counts 327 / 251 (it was 326 / 250 before this PR, so the total was already off by one). I left README untouched rather than half-fix it — happy to update those numbers here too if you'd like.

Protocol evidence (per RFC-0006)

  • Official API docs: https://inferencehub.tech/docs/api — documents POST /v1/chat/completions and GET /v1/models on base https://app.inferencehub.tech/v1, Authorization: Bearer auth, and SSE streaming ("stream": true).
  • Shared-layer reuse basis: standard OpenAI wire; no deviations observed, so the default profile ({}) applies and no shared-layer changes are needed.

Verified against the live endpoint

Ran the exact registry code path via the Node binding's provider(...) with a baseUrl override before adding the entry:

  • generateText ✓ (text + usage) — model zai-glm-5.2
  • streamText ✓ (incremental deltas) — model deepseek-v4-flash
  • tool calling ✓ (tool_calls returned, finish reason tool-calls)
  • GET /v1/models returns the live model id list (e.g. zai-glm-5.2, deepseek-v4-flash, gpt-5.6-sol)

Tests

No-difference thin wrapper → no cassette added (RFC-0006: "A no-difference thin wrapper does not need to record a cassette merely for process completeness"). Locally: cargo fmt --all -- --check, cargo clippy -p aimux-providers --all-targets -- -D warnings, and cargo test -p aimux-providers --tests pass.

Disclosure: I run InferenceHub. Happy to adjust anything about the entry.

🤖 Generated with Claude Code

Registry entry (name inferencehub, base_url https://app.inferencehub.tech/v1,
env INFERENCEHUB_API_KEY, default profile) + regenerated ProviderName types
for all bindings (gen_provider_names.py) + regenerated docs/api/providers.md
(gen_providers_doc.py). Bumps the two hardcoded registry-count test asserts
in provider.rs from 250 to 251.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@eric8810

eric8810 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

could you please share some knowledge into our provider inventory documentation

Provider-submitted entry, requested by maintainer review on PR arcships#22:
providers.json entry at sorted position (trust.status=review, provenance
recorded via source_id "provider_submission" pointing at the PR), the
matching providers.csv row, and the aimux_provider_modules listing.
Summary counts and README totals left untouched (generator-owned).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@tianyiswufeng

Copy link
Copy Markdown
Contributor Author

Added in 6ff3f7aprovider-inventory/providers.json + providers.csv now carry an inferencehub entry, and it's appended to aimux_provider_modules.

Notes on the field choices, so you can adjust anything to taste:

  • Shaped after the registry-backed aggregator entries (aihubmix-class): provider_kind: gateway_aggregator, tier L2 / protocol: openai / openai_compatible: true, implemented_in_aimux: true.
  • Set trust.status: "review" rather than self-assigning accepted — per the inventory README, new entries need your manual endpoint/protocol/legal review. Provenance is recorded with source_id: "provider_submission" pointing at this PR, with the docs URL, INFERENCEHUB_API_KEY, and endpoint metadata filled in (models_url is the real documented endpoint, so models_url_inferred: false; note GET /v1/models requires auth).
  • Capabilities chat, embedding, image_generation, rerank and the model count/sample (43 ids) match the official docs (https://inferencehub.tech/docs/api) and the live /v1/models as of Aug 3. There's also an Anthropic-compatible /v1/messages surface on the bare origin (https://app.inferencehub.tech) that works with your native anthropic provider via base_url / ANTHROPIC_BASE_URL — I kept the inventory entry OpenAI-shaped since that's what the registry entry uses; happy to record it as mixed-protocol instead if you prefer.
  • Left summary counts, the inventory README totals, and raw-provider-records.jsonl untouched — those look pipeline/generator-owned (codex and azure_ai_foundry aren't in the raw records either). Say the word if you'd like any of them bumped here.

@eric8810

eric8810 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

will merge when ci is complete

@eric8810
eric8810 merged commit 892a351 into arcships:master Aug 4, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants