Interface ProviderCodec

All Known Implementing Classes:
AnthropicCodec, AzureOpenAiCodec, BedrockCodec, CohereCodec, GeminiCodec, OllamaCodec, OpenAiChatCompletionsCodec, OpenAiResponsesCodec, VoyageCodec

public interface ProviderCodec
  • Method Details

    • provider

      Provider provider()
    • apiVersion

      String apiVersion()
    • encode

      default HttpResponse encode(Completion completion, String model)
    • encodeStreaming

      default List<SseEvent> encodeStreaming(Completion completion, String model, StreamingPhysics physics)
    • streamingFormat

      default StreamingFormat streamingFormat()
      The wire format this provider uses for streaming responses. Defaults to StreamingFormat.SSE; override for providers that use a different format (e.g. Ollama uses NDJSON).
    • encodeEmbedding

      default HttpResponse encodeEmbedding(EmbeddingResponse embedding, String input)
    • encodeEmbedding

      default HttpResponse encodeEmbedding(EmbeddingResponse embedding, String input, String model)
      Model-aware embedding encode. Most providers have a single embedding wire shape and ignore the model, so the default delegates to encodeEmbedding(EmbeddingResponse, String). Providers whose embedding shape varies by model family (e.g. Bedrock Titan vs Cohere) override this to branch on model.
    • encodeRerank

      default HttpResponse encodeRerank(RerankResponse rerank, List<String> documents)
      Encode a rerank response for providers that expose a rerank endpoint (e.g. Cohere /v1/rerank, Voyage /v1/rerank). Each result is a {"index":N,"relevance_score":F} entry, one per candidate document, sorted by descending relevance. The surrounding envelope is provider-specific (Cohere uses a top-level results array; Voyage uses an OpenAI-style data list with an object/usage wrapper).
    • decode

      default ParsedConversation decode(HttpRequest request)