Skip to content

Releases: llmrix/llmrix-router

Release v1.0.3

Choose a tag to compare

@github-actions github-actions released this 30 Sep 02:38
beb7c65

Release v1.0.3

Added

  • Optional JEV semantic routing enhancement for selected Chat routes. JEV receives the current
    candidate routing-tags and may return preferred tags with a confidence score; the existing
    routing strategy remains responsible for the final model selection and fallback behavior.
  • Provider-neutral JevDecisionClient, JevDecisionProvider, and JevDecisionProviderRequest SPIs,
    plus a built-in TypeSafe JEV provider using POST /v1/systemone.
  • Spring configuration for the JEV decision integration: decision.enabled, provider, base-url,
    api-key, authenticator, options, routes, timeout, min-confidence, and failure-mode.
  • User-defined model metadata.routing-tags configuration and validation metadata.

Changed

  • JEV is treated as an optional policy enhancement. Timeouts, invalid decisions, unknown tags,
    low confidence, and provider failures fall back to the existing route strategy.
  • JEV is not enabled by default. The built-in provider defaults to https://api.typesafe.ai,
    uses decision.api-key as a Bearer token, and can be overridden with a custom client/provider.

Release v1.0.2

Choose a tag to compare

@github-actions github-actions released this 27 Aug 14:34
8e8865f

Added

  • Caffeine-backed local quota state with idle expiration and a fail-closed maximum partition limit.
  • Optional route-level RPM/TPM quotas for programmatic and Spring Boot routers, with independent
    quota partitions when RoutingHints.AUTH_QUOTA_KEY is present.
  • OpenRouter Embeddings support through the OpenAI-compatible /v1/embeddings adapter.
  • OpenRouter Rerank support through the Cohere-compatible /v1/rerank adapter.
  • Free OpenRouter Embedding and Rerank routes in the standalone server example, including
    liquid/lfm-2.5-embedding-350m:free, nvidia/nemotron-3-embed-1b:free,
    nvidia/llama-nemotron-rerank-vl-1b-v2:free, and qwen/qwen3-reranker-8b.
  • Router and upstream curl examples for Embeddings and Rerank in the API and server documentation.
  • Orion client operations for Embeddings, Rerank, Audio, Image, and Video, including request-level
    headers and observation callbacks consistent with Chat operations.
  • Private routing-hints transport between the Orion client and Router using the
    X-LLMRix-Routing-Hints header.
  • Optional forward-routing-hints compatibility configuration for integrations that explicitly
    require routing hints at the upstream boundary.
  • DEBUG-level OpenAI-compatible request diagnostics that report method, endpoint, model, fields,
    and payload size without logging credentials or request content.

Changed

  • OpenRouter model credentials in the server example are now read from OPENROUTER_API_KEY.
  • Aggregate usage.total_tokens responses are mapped to input usage for input-only operations.
  • Provider-bound OpenAI-compatible requests now filter the private routing-hints header by default;
    the Orion client continues to send it on the Client-to-Router hop.

Fixed

  • HTTP 200 Server-Sent Events containing an error event are now surfaced instead of being silently
    treated as a successful stream completion.
  • Streaming chat responses now include final usage data when the provider supplies it.
  • Image and video responses retain provider model and usage fields.
  • Successful OpenAI-compatible responses are validated for required operation-specific fields before
    being mapped to the common API.
  • Multipart filenames are sanitized to prevent CR/LF header injection.

Release v1.0.1

Choose a tag to compare

@github-actions github-actions released this 25 Aug 16:06
36efeb2

Added

  • Multi-modal core API: unified ModelClient interface with ModelRequest / RoutedResponse abstractions supporting chat, embedding, audio, image, and video modalities.
  • Modular API packages: api/chat, api/embedding, api/audio, api/image, and api/video sub-packages with modality-specific model, request, and response types.
  • New core packages: engine (execution policy and routed operations), event (lifecycle events and listener SPI), model (target, capability, limits, pricing), runtime (LlmRouter builder and facade), state (health, quota, state store), and stream (streaming utilities).
  • Provider SPI: ModelProvider and ModelProviderRequest in spi.provider for pluggable provider integrations.
  • Authentication SPI: ProviderAuthenticator and RequestAuthenticator in spi.auth for flexible authentication strategies.
  • Cost SPI: ModelPricingResolver and PricingContext in spi.cost for usage cost calculation.
  • First-class providers: built-in openai, deepseek, and openrouter providers with official default endpoints and OpenRouter application attribution headers.
  • OpenAI-compatible multi-modal integrations: OpenAiCompatibleAudioModel, OpenAiCompatibleEmbeddingModel, OpenAiCompatibleImageModel, and OpenAiCompatibleVideoModel.
  • OpenAI HTTP endpoints in Spring starter: audio, embedding, image, and video controllers alongside the existing chat endpoint, all under llmrix.model.router.http.enabled.
  • LlmRouter runtime facade: programmatic builder API (LlmRouterBuilder) for assembling router instances.
  • ModelTargetRegistry: replaces CandidateFactoryRegistry in the Spring starter for managing model targets and providers.
  • ObservingModelOperations: generic observation-aware model operations wrapper in the Orion client.
  • Module-scoped examples: llmrix-model-router-core-examples, llmrix-model-router-integrations-examples, llmrix-model-router-spring-starter-examples, llmrix-model-router-server-examples, and llmrix-model-client-examples as child modules under llmrix-model-examples.
  • GitHub Actions CI workflow: automatic build and test verification on pull requests and pushes to main.
  • GitHub Actions auto-release workflow: automatic tag and GitHub Release creation when code is merged to main, with changelog extraction from CHANGELOG.md.
  • Additional Spring configuration metadata: JSON metadata for IDE auto-completion of router properties.
  • Lombok configuration: project-wide lombok.config for consistent annotation processing.

Changed

  • Restructured the core API around a modality-agnostic ModelClient / ModelRequest / RoutedResponse model instead of a chat-only ChatModel API.
  • Moved chat-specific types (ChatRequest, ChatResponse, Message, ToolCallPart, etc.) from api into the api.chat sub-package.
  • Relocated execution pipeline types from execution to engine (execution policy, routed model operations) and state (health, quota, state store).
  • Moved lifecycle event types from spi.event to the top-level event package with the RouterListener SPI.
  • Renamed Candidate to RouteCandidate and Candidate* state types to Target* for clearer terminology.
  • Replaced the generic Spring configuration providers with first-class openai, deepseek, and openrouter providers.
  • Added official default API endpoints and OpenRouter application attribution headers.
  • Moved the OpenAI-compatible HTTP protocol, authentication, request ID, and error handling into the Spring starter. The standalone Spring Boot launch shell now lives in llmrix-model-router-server-examples, and HTTP exposure is controlled by llmrix.model.router.http.enabled.
  • Renamed router.candidates and routes.*.candidates configuration to integrations.
  • Converted llmrix-model-examples into a Maven aggregator with one *-examples child per Router or client production module, keeping examples and tests aligned with module boundaries.
  • Normalized the standalone server example configuration to environment-backed provider credentials and a consistent model pool.
  • Refactored the Spring starter auto-configuration to use ModelTargetRegistry and provider-based integration setup.
  • Enhanced .gitignore with comprehensive rules for IDEs, build tools, OS files, credentials, and environment configurations.
  • Updated Orion client and Spring starter to work with the new multi-modal model operations abstraction.

Removed

  • Removed llmrix-model-router-server standalone module; HTTP endpoints are now part of the Spring starter and the runnable example is in llmrix-model-router-server-examples.
  • Removed Spring AI provider implementation, tests, and dependencies.
  • Removed LangChain4j provider implementation, tests, and dependencies.
  • Removed the generic Bean provider abstraction and CandidateFactoryRegistry.
  • Removed route-level fallbacks configuration, fallback execution branches, and fallback lifecycle metrics. Every route now uses only its models pool; when no model remains available, execution raises ModelUnavailableException and the HTTP layer returns 503 Service Unavailable.
  • Removed README.zh-CN.md (consolidated to single-language documentation).
  • Removed default fallback lists from the server example because route models already provide load balancing and failure continuation.

Fixed

  • Skip examples modules (maven.deploy.skip, gpg.skip, maven.source.skip, maven.javadoc.skip) during Maven Central deployment to avoid publishing example artifacts.

Release v1.0.0

Choose a tag to compare

@llmrixing llmrixing released this 25 Jul 15:21

Added

  • llmrix-model-router-core: provider-neutral ChatModel API, candidate model, routing strategies (priority, round-robin, weighted random, balanced, semantic, contextual bandit), deterministic execution pipeline with quota, health, cooldown, retry, and lifecycle events.
  • llmrix-model-router-integrations: OpenAI-compatible client, Spring AI adapter, LangChain4j adapter, Redis state store (Lettuce + Lua), Bucket4j quota, ONNX policy, online shadow execution, offline evaluation, and Fugu iterative orchestration.
  • llmrix-model-router-spring-starter: llmrix.model.router.* configuration properties, auto-configuration, Micrometer metrics, Spring Observations, Actuator health indicator, first-token latency, and configuration metadata.
  • llmrix-model-router-server: executable Spring Boot launch shell for the router starter.
  • llmrix-model-orion: lightweight framework-neutral Java client with OrionModelClientListener SPI, CRLF-safe custom headers, and request-level options.
  • llmrix-model-orion-spring-starter: Orion auto-configuration and Micrometer integration.
  • llmrix-model-examples: Maven examples aggregator with module-scoped child projects; Redis and HTTP integration tests.
  • Maven Central deployment configuration and project metadata normalization.