optimize technical truth
This commit is contained in:
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user