From ff4c2c418c2aa3116d72a817da10e830bd825859 Mon Sep 17 00:00:00 2001 From: 9qeklajc <9qeklajc> Date: Fri, 31 Oct 2025 22:52:18 +0100 Subject: [PATCH] fix ollama request --- routstr/upstreams/ollama.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/routstr/upstreams/ollama.py b/routstr/upstreams/ollama.py index 0b4a9d7a..3fb7dbda 100644 --- a/routstr/upstreams/ollama.py +++ b/routstr/upstreams/ollama.py @@ -41,6 +41,39 @@ class OllamaUpstreamProvider(UpstreamProvider): """Strip 'ollama/' prefix for Ollama API compatibility.""" return model_id.removeprefix("ollama/") + async def forward_request( + self, + request, + path: str, + headers: dict, + request_body: bytes, + key, + max_cost_for_model: int, + session, + model_obj, + ): + """Override to use OpenAI-compatible endpoint for proxy requests.""" + if path.startswith("v1/"): + path = path.replace("v1/", "") + + original_base_url = self.base_url + self.base_url = f"{self.base_url}/v1" + + try: + result = await super().forward_request( + request, + path, + headers, + request_body, + key, + max_cost_for_model, + session, + model_obj, + ) + return result + finally: + self.base_url = original_base_url + async def fetch_models(self) -> list[Model]: """Fetch models from Ollama API using /api/tags endpoint.""" from ..payment.models import Architecture, Model, Pricing, TopProvider