diff --git a/src/Contracts/DeepseekClientContract.php b/src/Contracts/ClientContract.php similarity index 52% rename from src/Contracts/DeepseekClientContract.php rename to src/Contracts/ClientContract.php index 7ea06b9..12172e3 100644 --- a/src/Contracts/DeepseekClientContract.php +++ b/src/Contracts/ClientContract.php @@ -2,11 +2,13 @@ namespace DeepSeek\Contracts; -interface DeepseekClientContract +interface ClientContract { - public static function build(string $apiKey): self; public function run(): string; + public static function build(string $apiKey, ?string $baseUrl = null, ?int $timeout = null): self; public function query(string $content, ?string $role = "user"): self; + public function getModelsList(): self; public function withModel(?string $model = null): self; public function withStream(bool $stream = true): self; + public function buildQuery(string $content, ?string $role = null): array; } diff --git a/src/DeepSeekClient.php b/src/DeepSeekClient.php index 3b3dad2..f78d8e5 100644 --- a/src/DeepSeekClient.php +++ b/src/DeepSeekClient.php @@ -2,7 +2,7 @@ namespace DeepSeek; -use DeepSeek\Contracts\DeepseekClientContract; +use DeepSeek\Contracts\ClientContract; use DeepSeek\Contracts\Models\ResultContract; use DeepSeek\Enums\Requests\EndpointSuffixes; use DeepSeek\Resources\Resource; @@ -10,11 +10,10 @@ use DeepSeek\Factories\ApiFactory; use DeepSeek\Enums\Queries\QueryRoles; use DeepSeek\Enums\Requests\QueryFlags; -use DeepSeek\Enums\Requests\HeaderFlags; use DeepSeek\Enums\Configs\TemperatureValues; use DeepSeek\Traits\Resources\{HasChat, HasCoder}; -class DeepSeekClient implements DeepseekClientContract +class DeepSeekClient implements ClientContract { use HasChat, HasCoder; @@ -113,14 +112,14 @@ public static function build(string $apiKey, ?string $baseUrl = null, ?int $time * @param string|null $role * @return self The current instance for method chaining. */ - public function query(string $content, ?string $role = null): self + public function query(string $content, ?string $role = "user"): self { $this->queries[] = $this->buildQuery($content, $role); return $this; } /** - * get list of available models .. + * get list of available models . * * @return self The current instance for method chaining. */ @@ -161,7 +160,7 @@ public function setTemperature(float $temperature): self return $this; } - protected function buildQuery(string $content, ?string $role = null): array + public function buildQuery(string $content, ?string $role = null): array { return [ 'role' => $role ?: QueryRoles::USER->value,