CouncilEx.Provider.Adapters.Ollama (CouncilEx v0.1.0)

Copy Markdown View Source

Config preset for routing the OpenAI-compatible adapter at a local Ollama server. NOT a separate Provider.Adapter implementation — uses CouncilEx.Provider.Adapters.OpenAI underneath.

Setup

config :council_ex,
  providers: [
    ollama: CouncilEx.Provider.Adapters.Ollama.default_opts()
  ]

Override base_url

config :council_ex,
  providers: [
    ollama: CouncilEx.Provider.Adapters.Ollama.default_opts(
      base_url: "http://gpu-box:11434/v1"
    )
  ]

Tool-calling and structured output work for any served model that supports them via the OpenAI-compatible API (Llama 3.1+, Mistral, Qwen 2.5+).

Why not a native /api/chat adapter?

Ollama's OpenAI-compat endpoint covers everything Provider.Adapter needs: complete, stream, tool-calling, structured output. A native adapter would duplicate ~350 LOC for no functional gain. If the OpenAI-compat layer ever loses parity with native, a *.Native adapter can be added without breaking this preset.

Summary

Functions

Returns provider config keyword list for an Ollama-served model. Pass any overrides as keyword() and they will replace baseline values.

Functions

default_opts(overrides \\ [])

@spec default_opts(keyword()) :: keyword()

Returns provider config keyword list for an Ollama-served model. Pass any overrides as keyword() and they will replace baseline values.