new params for ollama client

This commit is contained in:
team2
2026-02-17 19:29:25 +01:00
parent ed8c20b032
commit 5b2a633a99

View File

@@ -35,8 +35,9 @@ final class OllamaClient
public function __construct(
string $apiUrl,
string $model,
int $timeoutSeconds,
) {
int $timeoutSeconds,
)
{
$this->apiUrl = $apiUrl;
$this->model = $model;
$this->timeoutSeconds = $timeoutSeconds;
@@ -52,14 +53,23 @@ final class OllamaClient
*/
public function stream(string $prompt): Generator
{
$json = [];
$payload = json_encode([
'model' => $this->model,
'model' => $this->model,
'prompt' => $prompt,
'stream' => true,
'options' => [
"temperature" => 0.9,
"top_k" => 35,
"top_p" => 0.9,
"repeat_penalty" => 1.1,
"num_ctx" => 8192
]
], JSON_THROW_ON_ERROR);
$buffer = '';
$done = false;
$done = false;
$ch = curl_init($this->apiUrl);
if ($ch === false) {
@@ -67,12 +77,12 @@ final class OllamaClient
}
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => false,
CURLOPT_TIMEOUT => $this->timeoutSeconds,
CURLOPT_WRITEFUNCTION => function ($curl, string $data) use (&$buffer, &$done): int {
CURLOPT_TIMEOUT => $this->timeoutSeconds,
CURLOPT_WRITEFUNCTION => function ($curl, string $data) use (&$buffer, &$done): int {
$buffer .= $data;
return strlen($data);
},
@@ -135,7 +145,7 @@ final class OllamaClient
}
}
if(!$json['response']){
if (!isset($json['response'])) {
yield $json;
return;
}