Skip to content

Commit c8c3d9e

Browse files
committed
ref: make tools optional
1 parent 57e502e commit c8c3d9e

9 files changed

+21
-15
lines changed

src/Model/Completion/ChatInterface.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*/
2323
interface ChatInterface
2424
{
25-
public function completion(string $input, array $tools = []): string;
25+
public function completion(string $input, ?array $tools = null): string;
2626

27-
public function completionWithHistory(string $input, History $history, array $tools = []): string;
27+
public function completionWithHistory(string $input, History $history, ?array $tools = null): string;
2828
}

src/Model/Completion/CompletionChat.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function __construct(
3636
* @throws ServiceIntegrationException
3737
*/
3838
#[\Override]
39-
public function completion(string $input, array $tools = []): string
39+
public function completion(string $input, ?array $tools = null): string
4040
{
4141
return $this->client->completion($input, $this->completionConfig, $tools)->completion;
4242
}
@@ -45,7 +45,7 @@ public function completion(string $input, array $tools = []): string
4545
* @throws ServiceIntegrationException
4646
*/
4747
#[\Override]
48-
public function completionWithHistory(string $input, History $history, array $tools = []): string
48+
public function completionWithHistory(string $input, History $history, ?array $tools = null): string
4949
{
5050
$history->append(new Message($input, Role::USER));
5151

src/Provider/Service/Client/DeepSeekClient.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ final class DeepSeekClient extends Client implements HasCompletionSupport
3333
protected Provider $provider = Provider::DEEPSEEK;
3434

3535
#[\Override]
36-
public function completion(History|string $input, CompletionConfig $config, array $tools = []): CompletionResponse
36+
public function completion(History|string $input, CompletionConfig $config, ?array $tools = null): CompletionResponse
3737
{
3838
Assert::notEmpty($input);
3939
$this->buildReferences($tools);

src/Provider/Service/Client/GoogleClient.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public function embeddings(string $prompt, EmbeddingConfig $config): EmbeddingRe
7070
}
7171

7272
#[\Override]
73-
public function completion(string|History $input, CompletionConfig $config, array $tools = []): CompletionResponse
73+
public function completion(string|History $input, CompletionConfig $config, ?array $tools = null): CompletionResponse
7474
{
7575
try {
7676
$response = $this->http->request('POST', "models/{$config->model}:generateContent?key={$this->config->apiKey}", [

src/Provider/Service/Client/MistralClient.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public function embeddings(string $prompt, EmbeddingConfig $config): EmbeddingRe
7171
}
7272

7373
#[\Override]
74-
public function completion(History|string $input, CompletionConfig $config, array $tools = []): CompletionResponse
74+
public function completion(History|string $input, CompletionConfig $config, ?array $tools = null): CompletionResponse
7575
{
7676
Assert::notEmpty($input);
7777
$this->buildReferences($tools);

src/Provider/Service/Client/OllamaClient.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public function embeddings(string $prompt, EmbeddingConfig $config): EmbeddingRe
6969
}
7070

7171
#[\Override]
72-
public function completion(History|string $input, CompletionConfig $config, array $tools = []): CompletionResponse
72+
public function completion(History|string $input, CompletionConfig $config, ?array $tools = null): CompletionResponse
7373
{
7474
Assert::notEmpty($input);
7575
$this->buildReferences($tools);

src/Provider/Service/Client/OpenAIClient.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public function embeddings(string $prompt, EmbeddingConfig $config): EmbeddingRe
7474
}
7575

7676
#[\Override]
77-
public function completion(History|string $input, CompletionConfig $config, array $tools = []): CompletionResponse
77+
public function completion(History|string $input, CompletionConfig $config, ?array $tools = null): CompletionResponse
7878
{
7979
Assert::notEmpty($input);
8080
$this->buildReferences($tools);

src/Provider/Service/Common/ToolCallingSupport.php

+10-4
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,21 @@ trait ToolCallingSupport
3232
*/
3333
private array $references = [];
3434

35-
public function buildReferences(array $tools): void
35+
public function buildReferences(?array $tools = null): void
3636
{
37-
foreach ($tools as $tool) {
38-
$this->references[] = ToolRunner::build($tool, $this->provider);
37+
if ($tools !== null) {
38+
foreach ($tools as $tool) {
39+
$this->references[] = ToolRunner::build($tool, $this->provider);
40+
}
3941
}
4042
}
4143

42-
public function getToolDefinitions(): array
44+
public function getToolDefinitions(): ?array
4345
{
46+
if (empty($this->references)) {
47+
return null;
48+
}
49+
4450
return \array_map(
4551
fn (ToolReference $reference): array => $reference->definition,
4652
$this->references

src/Provider/Service/HasCompletionSupport.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ interface HasCompletionSupport
3030
*
3131
* @param History|string $input The prompt to use for completion.
3232
* @param CompletionConfig $config The configuration to use for completion.
33-
* @param array<object> $tools The tools to use for completion (optional).
33+
* @param array|null $tools The tools to use for completion (optional).
3434
*
3535
* @throws ServiceIntegrationException when any error occurs during the request.
3636
* @throws \InvalidArgumentException when the prompt is empty.
3737
*/
38-
public function completion(History|string $input, CompletionConfig $config, array $tools = []): CompletionResponse;
38+
public function completion(History|string $input, CompletionConfig $config, ?array $tools = null): CompletionResponse;
3939
}

0 commit comments

Comments
 (0)