@@ -535,6 +535,16 @@ direction LR
535
535
}
536
536
}
537
537
538
+ namespace AiClientNamespace.Enums {
539
+ class ModalityEnum {
540
+ TEXT
541
+ DOCUMENT
542
+ IMAGE
543
+ AUDIO
544
+ VIDEO
545
+ }
546
+ }
547
+
538
548
namespace AiClientNamespace.Files.Contracts {
539
549
class FileInterface {
540
550
}
@@ -604,6 +614,16 @@ direction LR
604
614
}
605
615
}
606
616
617
+ namespace AiClientNamespace.Operations.Enums {
618
+ class OperationStateEnum {
619
+ STARTING
620
+ PROCESSING
621
+ SUCCEEDED
622
+ FAILED
623
+ CANCELED
624
+ }
625
+ }
626
+
607
627
namespace AiClientNamespace.Operations.DTO {
608
628
class EmbeddingOperation {
609
629
+getId() string
@@ -619,37 +639,23 @@ direction LR
619
639
}
620
640
}
621
641
622
- namespace AiClientNamespace.Providers.Models.Enums {
623
- class ModalityEnum {
624
- TEXT
625
- DOCUMENT
626
- IMAGE
627
- AUDIO
628
- VIDEO
642
+ namespace AiClientNamespace.Results.Contracts {
643
+ class ResultInterface {
644
+ +getId() string
645
+ +getTokenUsage() TokenUsage
646
+ +getProviderMetadata() array< string, mixed >
647
+ +getJsonSchema() array< string, mixed >$
629
648
}
649
+ }
650
+
651
+ namespace AiClientNamespace.Results.Enums {
630
652
class FinishReasonEnum {
631
653
STOP
632
654
LENGTH
633
655
CONTENT_FILTER
634
656
TOOL_CALLS
635
657
ERROR
636
658
}
637
- class OperationStateEnum {
638
- STARTING
639
- PROCESSING
640
- SUCCEEDED
641
- FAILED
642
- CANCELED
643
- }
644
- }
645
-
646
- namespace AiClientNamespace.Results.Contracts {
647
- class ResultInterface {
648
- +getId() string
649
- +getTokenUsage() TokenUsage
650
- +getProviderMetadata() array< string, mixed >
651
- +getJsonSchema() array< string, mixed >$
652
- }
653
659
}
654
660
655
661
namespace AiClientNamespace.Results.DTO {
@@ -699,12 +705,29 @@ direction LR
699
705
+getArgs() array< string, mixed >
700
706
+getJsonSchema() array< string, mixed >$
701
707
}
708
+ class FunctionDeclaration {
709
+ +getName() string
710
+ +getDescription() string
711
+ +getParameters() mixed
712
+ +getJsonSchema() array< string, mixed >$
713
+ }
702
714
class FunctionResponse {
703
715
+getId() string
704
716
+getName() string
705
717
+getResponse() mixed
706
718
+getJsonSchema() array< string, mixed >$
707
719
}
720
+ class Tool {
721
+ +getType() ToolType
722
+ +getFunctionDeclarations() FunctionDeclaration[]?
723
+ +getWebSearch() WebSearch?
724
+ +getJsonSchema() array< string, mixed >$
725
+ }
726
+ class WebSearch {
727
+ +getAllowedDomains() string[]
728
+ +getDisallowedDomains() string[]
729
+ +getJsonSchema() array< string, mixed >$
730
+ }
708
731
}
709
732
710
733
namespace AiClientNamespace.Util {
@@ -778,6 +801,8 @@ direction LR
778
801
OperationInterface <|-- EmbeddingOperation
779
802
ResultInterface <|-- GenerativeAiResult
780
803
ResultInterface <|-- EmbeddingResult
804
+ Tool "1" o-- "0..*" FunctionDeclaration
805
+ Tool "1" o-- "0..1" WebSearch
781
806
```
782
807
783
808
### Details: Class diagram for AI extenders
@@ -913,15 +938,15 @@ direction LR
913
938
getRequiredCapabilities() CapabilityEnum[]
914
939
getRequiredOptions() RequiredOption[]
915
940
}
916
- class SupportedOption {
941
+ class RequiredOption {
917
942
+getName() string
918
- +isSupportedValue(mixed $value) bool
919
- +getSupportedValues() mixed[]
943
+ +getValue() mixed
920
944
+getJsonSchema() array< string, mixed >$
921
945
}
922
- class RequiredOption {
946
+ class SupportedOption {
923
947
+getName() string
924
- +getValue() mixed
948
+ +isSupportedValue(mixed $value) bool
949
+ +getSupportedValues() mixed[]
925
950
+getJsonSchema() array< string, mixed >$
926
951
}
927
952
}
0 commit comments