free-claude-code/providers/ollama/client.py
Alishahryar1 f3a7528d49
Some checks are pending
CI / checks (push) Waiting to run
Major refactor: API, providers, messaging, and Anthropic protocol
Consolidates the incremental refactor work into a single change set: modular web tools (api/web_tools), native Anthropic request building and SSE block policy, OpenAI conversion and error handling, provider transports and rate limiting, messaging handler and tree queue, safe logging, smoke tests, and broad test coverage.
2026-04-26 03:01:14 -07:00

29 lines
946 B
Python

"""Ollama provider implementation."""
import httpx
from providers.anthropic_messages import AnthropicMessagesTransport
from providers.base import ProviderConfig
from providers.defaults import OLLAMA_DEFAULT_BASE
class OllamaProvider(AnthropicMessagesTransport):
"""Ollama provider using native Anthropic Messages API."""
def __init__(self, config: ProviderConfig):
super().__init__(
config,
provider_name="OLLAMA",
default_base_url=OLLAMA_DEFAULT_BASE,
)
self._api_key = config.api_key or "ollama"
async def _send_stream_request(self, body: dict) -> httpx.Response:
"""Create a streaming native Anthropic messages response."""
request = self._client.build_request(
"POST",
"/v1/messages",
json=body,
headers=self._request_headers(),
)
return await self._client.send(request, stream=True)