feat(services): add Venice AI inference provider (v0.18.0) - #43
Merged
Conversation
…der (v0.18.0) Venice (https://docs.venice.ai/models/overview) is a privacy-first, OpenAI- compatible provider. Adds a `venice` service alongside OpenGateway so tools can run targeted inference (classifiers, summarizers, extraction) outside the host Hermes agent loop. * services/venice.py: base https://api.venice.ai/api/v1, VENICE_API_KEY (required — Venice 402s unauthenticated calls via x402) + optional VENICE_MODEL. Non-streaming chat completions; classifies OpenAI-style envelopes AND Venice's flat {"error": "..."} / HTTP 402 auth challenge → no_credentials. * services/__init__.py: registered (6e), independent from Hermes' main LLM. * lib/http.py: allowlist api.venice.ai. * README: documented VENICE_API_KEY / VENICE_MODEL. Verified live against the Venice API (402 auth path → no_credentials, flat error extracted) + full unit coverage of success + every error branch. Gate: 4629 passed, 8 skipped; 100% coverage (16,361 stmts, 0 missing); ruff check + format clean; plugin.yaml byte-identical. Tool count unchanged (53).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds Venice AI (https://docs.venice.ai/models/overview) — a privacy-first, OpenAI-compatible inference provider — as a
veniceservice, alongside the existing OpenGateway provider. Lets clawmes tools run targeted inference (classifiers, summarizers, structured extraction) outside the host Hermes agent loop.Changes
services/venice.py— basehttps://api.venice.ai/api/v1;VENICE_API_KEY(required) + optionalVENICE_MODEL. Non-streaming chat completions. Classifies OpenAI-style error envelopes and Venice's flat{"error": "..."}+ HTTP 402 / x402 auth challenge →no_credentials.services/__init__.py— registered (6e); independent from Hermes' main conversational LLM.lib/http.py—api.venice.aiallowlisted.VENICE_API_KEY/VENICE_MODEL.Testing
VeniceError(no_credentials)with the flat message extracted. (Full success-path live test needs a real key.)venice.py— success path, every substring + envelope + structured-body error branch, the Venice 402 flat-error path, singleton.Gate
4629 passed, 8 skipped; 100% coverage (16,361 stmts, 0 missing); ruff clean; plugin.yaml byte-identical; tool count unchanged (53).