mirror of
https://github.com/Alishahryar1/free-claude-code.git
synced 2026-04-26 10:31:07 +00:00
Some checks are pending
CI / checks (push) Waiting to run
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.
29 lines
946 B
Python
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)
|