optimize technical truth

This commit is contained in:
team 1
2026-04-29 09:09:43 +02:00
parent bca015129c
commit d3d94d023e
3 changed files with 192 additions and 5 deletions

View File

@@ -13,6 +13,9 @@ use Throwable;
final class OllamaClient
{
private const CONNECT_TIMEOUT_SECONDS = 10;
private const LOW_SPEED_LIMIT_BYTES = 1;
private const LOW_SPEED_TIME_SECONDS = 45;
private ?ModelGenerationConfig $cachedConfig = null;
private $config = null;
@@ -66,7 +69,10 @@ final class OllamaClient
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => false,
CURLOPT_TIMEOUT => $this->timeoutSeconds,
CURLOPT_TIMEOUT => $this->requestTimeoutSeconds(),
CURLOPT_CONNECTTIMEOUT => self::CONNECT_TIMEOUT_SECONDS,
CURLOPT_LOW_SPEED_LIMIT => self::LOW_SPEED_LIMIT_BYTES,
CURLOPT_LOW_SPEED_TIME => self::LOW_SPEED_TIME_SECONDS,
CURLOPT_WRITEFUNCTION => function ($curl, string $data) use (&$buffer): int {
$buffer .= $data;
return strlen($data);
@@ -144,7 +150,10 @@ final class OllamaClient
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => $this->timeoutSeconds,
CURLOPT_TIMEOUT => $this->requestTimeoutSeconds(),
CURLOPT_CONNECTTIMEOUT => self::CONNECT_TIMEOUT_SECONDS,
CURLOPT_LOW_SPEED_LIMIT => self::LOW_SPEED_LIMIT_BYTES,
CURLOPT_LOW_SPEED_TIME => self::LOW_SPEED_TIME_SECONDS,
]);
$response = curl_exec($ch);
@@ -188,6 +197,13 @@ final class OllamaClient
];
}
private function requestTimeoutSeconds(): int
{
$timeout = (int) $this->timeoutSeconds;
return $timeout > 0 ? $timeout : 300;
}
/**
* Config caching per request
*/