Skip to content
This repository was archived by the owner on Jun 5, 2025. It is now read-only.

Commit 24618c3

Browse files
authored
Decrease the ollama completion request timeout from 300s to 30s (#999)
1 parent 7d61fdb commit 24618c3

File tree

1 file changed

+29
-25
lines changed

1 file changed

+29
-25
lines changed

src/codegate/providers/ollama/completion_handler.py

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ async def ollama_stream_generator( # noqa: C901
8383
class OllamaShim(BaseCompletionHandler):
8484

8585
def __init__(self, base_url):
86-
self.client = AsyncClient(host=base_url, timeout=300)
86+
self.client = AsyncClient(host=base_url, timeout=30)
8787

8888
async def execute_completion(
8989
self,
@@ -93,31 +93,35 @@ async def execute_completion(
9393
is_fim_request: bool = False,
9494
) -> Union[ChatResponse, GenerateResponse]:
9595
"""Stream response directly from Ollama API."""
96-
if is_fim_request:
97-
prompt = ""
98-
for i in reversed(range(len(request["messages"]))):
99-
if request["messages"][i]["role"] == "user":
100-
prompt = request["messages"][i]["content"] # type: ignore
101-
break
102-
if not prompt:
103-
raise ValueError("No user message found in FIM request")
96+
try:
97+
if is_fim_request:
98+
prompt = ""
99+
for i in reversed(range(len(request["messages"]))):
100+
if request["messages"][i]["role"] == "user":
101+
prompt = request["messages"][i]["content"] # type: ignore
102+
break
103+
if not prompt:
104+
raise ValueError("No user message found in FIM request")
104105

105-
response = await self.client.generate(
106-
model=request["model"],
107-
prompt=prompt,
108-
raw=request.get("raw", False),
109-
suffix=request.get("suffix", ""),
110-
stream=stream,
111-
options=request["options"], # type: ignore
112-
)
113-
else:
114-
response = await self.client.chat(
115-
model=request["model"],
116-
messages=request["messages"],
117-
stream=stream, # type: ignore
118-
options=request["options"], # type: ignore
119-
) # type: ignore
120-
return response
106+
response = await self.client.generate(
107+
model=request["model"],
108+
prompt=prompt,
109+
raw=request.get("raw", False),
110+
suffix=request.get("suffix", ""),
111+
stream=stream,
112+
options=request["options"], # type: ignore
113+
)
114+
else:
115+
response = await self.client.chat(
116+
model=request["model"],
117+
messages=request["messages"],
118+
stream=stream, # type: ignore
119+
options=request["options"], # type: ignore
120+
) # type: ignore
121+
return response
122+
except Exception as e:
123+
logger.error(f"Error in Ollama completion: {str(e)}")
124+
raise e
121125

122126
def _create_streaming_response(
123127
self,

0 commit comments

Comments
 (0)