Skip to content

Commit 6f8fe19

Browse files
committed
Rename AiEntrypoint to AiClient and fix name in code examples.
1 parent 9206a9f commit 6f8fe19

File tree

1 file changed

+35
-35
lines changed

1 file changed

+35
-35
lines changed

docs/ARCHITECTURE.md

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ The following examples indicate how this SDK could eventually be used.
2020
#### Generate text using any suitable model from any provider (most basic example)
2121

2222
```php
23-
$text = Ai::generateTextResult(
23+
$text = AiClient::generateTextResult(
2424
'Write a 2-verse poem about PHP.'
2525
)->toText();
2626
```
2727

2828
#### Generate text using a Google model
2929

3030
```php
31-
$text = Ai::generateTextResult(
31+
$text = AiClient::generateTextResult(
3232
'Write a 2-verse poem about PHP.',
3333
Google::model('gemini-2.5-flash')
3434
)->toText();
@@ -37,7 +37,7 @@ $text = Ai::generateTextResult(
3737
#### Generate multiple text candidates using an Anthropic model
3838

3939
```php
40-
$texts = Ai::generateTextResult(
40+
$texts = AiClient::generateTextResult(
4141
'Write a 2-verse poem about PHP.',
4242
Anthropic::model(
4343
'claude-3.7-sonnet',
@@ -49,13 +49,13 @@ $texts = Ai::generateTextResult(
4949
#### Generate an image using any suitable OpenAI model
5050

5151
```php
52-
$modelsMetadata = Ai::defaultRegistry()->findProviderModelsMetadataForSupport(
52+
$modelsMetadata = AiClient::defaultRegistry()->findProviderModelsMetadataForSupport(
5353
'openai',
5454
AiCapability::IMAGE_GENERATION
5555
);
56-
$imageFile = Ai::generateImageResult(
56+
$imageFile = AiClient::generateImageResult(
5757
'Generate an illustration of the PHP elephant in the Carribean sea.',
58-
Ai::defaultRegistry()->getProviderModel(
58+
AiClient::defaultRegistry()->getProviderModel(
5959
'openai',
6060
$modelsMetadata[0]->getId()
6161
)
@@ -65,12 +65,12 @@ $imageFile = Ai::generateImageResult(
6565
#### Generate an image using any suitable model from any provider
6666

6767
```php
68-
$providerModelsMetadata = Ai::defaultRegistry()->findModelsMetadataForSupport(
68+
$providerModelsMetadata = AiClient::defaultRegistry()->findModelsMetadataForSupport(
6969
AiCapability::IMAGE_GENERATION
7070
);
71-
$imageFile = Ai::generateImageResult(
71+
$imageFile = AiClient::generateImageResult(
7272
'Generate an illustration of the PHP elephant in the Carribean sea.',
73-
Ai::defaultRegistry()->getProviderModel(
73+
AiClient::defaultRegistry()->getProviderModel(
7474
$providerModelsMetadata[0]->getProvider()->getId(),
7575
$providerModelsMetadata[0]->getModels()[0]->getId()
7676
)
@@ -82,12 +82,12 @@ $imageFile = Ai::generateImageResult(
8282
_Note: This does effectively the exact same as [the first code example](#generate-text-using-any-suitable-model-from-any-provider-most-basic-example), but more verbosely. In other words, if you omit the model parameter, the SDK will do this internally._
8383

8484
```php
85-
$providerModelsMetadata = Ai::defaultRegistry()->findModelsMetadataForSupport(
85+
$providerModelsMetadata = AiClient::defaultRegistry()->findModelsMetadataForSupport(
8686
AiCapability::TEXT_GENERATION
8787
);
88-
$text = Ai::generateTextResult(
88+
$text = AiClient::generateTextResult(
8989
'Write a 2-verse poem about PHP.',
90-
Ai::defaultRegistry()->getProviderModel(
90+
AiClient::defaultRegistry()->getProviderModel(
9191
$providerModelsMetadata[0]->getProvider()->getId(),
9292
$providerModelsMetadata[0]->getModels()[0]->getId()
9393
)
@@ -99,7 +99,7 @@ $text = Ai::generateTextResult(
9999
_Note: Since this omits the model parameter, the SDK will automatically determine which models are suitable and use any of them, similar to [the first code example](#generate-text-using-any-suitable-model-from-any-provider-most-basic-example). Since it knows the input includes an image, it can internally infer that the model needs to not only support `AiCapability::TEXT_GENERATION`, but also `AiOption::INPUT_MODALITIES => ['text', 'image']`._
100100

101101
```php
102-
$text = Ai::generateTextResult(
102+
$text = AiClient::generateTextResult(
103103
[
104104
[
105105
'text' => 'Generate alternative text for this image.',
@@ -117,7 +117,7 @@ $text = Ai::generateTextResult(
117117
_Note: Similarly to the previous example, even without specifying the model here, the SDK will be able to infer required model capabilities because it can detect that multiple chat messages are passed. Therefore it will internally only consider models that support `AiCapability::TEXT_GENERATION` as well as `AiCapability::CHAT_HISTORY`._
118118

119119
```php
120-
$text = Ai::generateTextResult(
120+
$text = AiClient::generateTextResult(
121121
[
122122
[
123123
'role' => MessageRole::USER,
@@ -140,17 +140,17 @@ $text = Ai::generateTextResult(
140140
_Note: Unlike the previous two examples, to require JSON output it is necessary to go the verbose route, since it is impossible for the SDK to detect whether you require JSON output purely from the prompt input. Therefore this code example contains the logic to manually search for suitable models and then use one of them for the task._
141141

142142
```php
143-
$providerModelsMetadata = Ai::defaultRegistry()->findModelsMetadataForSupport(
143+
$providerModelsMetadata = AiClient::defaultRegistry()->findModelsMetadataForSupport(
144144
AiCapability::TEXT_GENERATION,
145145
[
146146
// Make sure the model supports JSON output as well as following a given schema.
147147
AiOption::OUTPUT_MIME_TYPE => 'application/json',
148148
AiOption::OUTPUT_SCHEMA => true,
149149
]
150150
);
151-
$jsonString = Ai::generateTextResult(
151+
$jsonString = AiClient::generateTextResult(
152152
'Transform the following CSV content into a JSON array of row data.',
153-
Ai::defaultRegistry()->getProviderModel(
153+
AiClient::defaultRegistry()->getProviderModel(
154154
$providerModelsMetadata[0]->getProvider()->getId(),
155155
$providerModelsMetadata[0]->getModels()[0]->getId(),
156156
[
@@ -177,16 +177,16 @@ $jsonString = Ai::generateTextResult(
177177
#### Generate embeddings using any suitable model from any provider
178178

179179
```php
180-
$providerModelsMetadata = Ai::defaultRegistry()->findModelsMetadataForSupport(
180+
$providerModelsMetadata = AiClient::defaultRegistry()->findModelsMetadataForSupport(
181181
AiCapability::EMBEDDING_GENERATION
182182
);
183-
$embeddings = Ai::generateEmbeddingsResult(
183+
$embeddings = AiClient::generateEmbeddingsResult(
184184
[
185185
'A very long text.',
186186
'Another very long text.',
187187
'More long text.',
188188
],
189-
Ai::defaultRegistry()->getProviderModel(
189+
AiClient::defaultRegistry()->getProviderModel(
190190
$providerModelsMetadata[0]->getProvider()->getId(),
191191
$providerModelsMetadata[0]->getModels()[0]->getId()
192192
)
@@ -214,7 +214,7 @@ config:
214214
classDiagram
215215
direction LR
216216
namespace Ai {
217-
class AiEntrypoint {
217+
class AiClient {
218218
+prompt(?string $text) PromptBuilder$
219219
+message(?string $text) MessageBuilder$
220220
}
@@ -274,8 +274,8 @@ direction LR
274274
}
275275
}
276276
277-
AiEntrypoint .. PromptBuilder : creates
278-
AiEntrypoint .. MessageBuilder : creates
277+
AiClient .. PromptBuilder : creates
278+
AiClient .. MessageBuilder : creates
279279
```
280280

281281
### Overview: Traditional method call API for AI implementers
@@ -291,7 +291,7 @@ config:
291291
classDiagram
292292
direction LR
293293
namespace Ai {
294-
class AiEntrypoint {
294+
class AiClient {
295295
+generateResult(string|MessagePart|MessagePart[]|Message|Message[] $prompt, AiModel $model) GenerativeAiResult$
296296
+generateOperation(string|MessagePart|MessagePart[]|Message|Message[] $prompt, AiModel $model) GenerativeAiOperation$
297297
+generateTextResult(string|MessagePart|MessagePart[]|Message|Message[] $prompt, AiModel $model) GenerativeAiResult$
@@ -322,7 +322,7 @@ config:
322322
classDiagram
323323
direction LR
324324
namespace Ai {
325-
class AiEntrypoint {
325+
class AiClient {
326326
+defaultRegistry() AiProviderRegistry$
327327
+isConfigured(AiProviderAvailability $availability) bool$
328328
}
@@ -339,7 +339,7 @@ direction LR
339339
}
340340
}
341341
342-
AiEntrypoint "1" o-- "1..*" AiProviderRegistry
342+
AiClient "1" o-- "1..*" AiProviderRegistry
343343
```
344344

345345
### Details: Class diagram for AI implementers
@@ -353,7 +353,7 @@ config:
353353
classDiagram
354354
direction LR
355355
namespace Ai {
356-
class AiEntrypoint {
356+
class AiClient {
357357
+prompt(?string $text) PromptBuilder$
358358
+message(?string $text) MessageBuilder$
359359
+defaultRegistry() AiProviderRegistry$
@@ -602,14 +602,14 @@ direction LR
602602
<<Enumeration>> OperationState
603603
<<Enumeration>> AiModality
604604
605-
AiEntrypoint .. Message : receives
606-
AiEntrypoint .. MessagePart : receives
607-
AiEntrypoint .. PromptBuilder : creates
608-
AiEntrypoint .. MessageBuilder : creates
609-
AiEntrypoint .. GenerativeAiResult : creates
610-
AiEntrypoint .. EmbeddingResult : creates
611-
AiEntrypoint .. GenerativeAiOperation : creates
612-
AiEntrypoint .. EmbeddingOperation : creates
605+
AiClient .. Message : receives
606+
AiClient .. MessagePart : receives
607+
AiClient .. PromptBuilder : creates
608+
AiClient .. MessageBuilder : creates
609+
AiClient .. GenerativeAiResult : creates
610+
AiClient .. EmbeddingResult : creates
611+
AiClient .. GenerativeAiOperation : creates
612+
AiClient .. EmbeddingOperation : creates
613613
PromptBuilder .. GenerativeAiResult : creates
614614
PromptBuilder .. EmbeddingResult : creates
615615
PromptBuilder .. GenerativeAiOperation : creates

0 commit comments

Comments
 (0)