assist-feedback.php
11 months ago
assistant.php
11 months ago
base.php
11 months ago
dropped-file.php
11 months ago
edit-image.php
11 months ago
embed.php
11 months ago
feedback.php
11 months ago
function.php
11 months ago
image.php
11 months ago
parameter.php
11 months ago
text.php
11 months ago
transcribe.php
11 months ago
embed.php
68 lines
| 1 | <?php |
| 2 | |
| 3 | class Meow_MWAI_Query_Embed extends Meow_MWAI_Query_Base { |
| 4 | public ?int $dimensions = null; |
| 5 | |
| 6 | public function __construct( $messageOrQuery = null ) { |
| 7 | if ( is_a( $messageOrQuery, 'Meow_MWAI_Query_Text' ) || is_a( $messageOrQuery, 'Meow_MWAI_Query_Assistant' ) ) { |
| 8 | $lastMessage = $messageOrQuery->get_message(); |
| 9 | if ( !empty( $lastMessage ) ) { |
| 10 | $this->set_message( $lastMessage ); |
| 11 | } |
| 12 | $this->session = $messageOrQuery->session; |
| 13 | $this->scope = $messageOrQuery->scope; |
| 14 | $this->apiKey = $messageOrQuery->apiKey; |
| 15 | $this->botId = $messageOrQuery->botId; |
| 16 | $this->envId = $messageOrQuery->envId; |
| 17 | } |
| 18 | else { |
| 19 | parent::__construct( $messageOrQuery ? $messageOrQuery : '' ); |
| 20 | } |
| 21 | |
| 22 | global $mwai_core; |
| 23 | $ai_embeddings_default_env = $mwai_core->get_option( 'ai_embeddings_default_env' ); |
| 24 | $ai_embeddings_default_model = $mwai_core->get_option( 'ai_embeddings_default_model' ); |
| 25 | $ai_embeddings_default_dimensions = $mwai_core->get_option( 'ai_embeddings_default_dimensions' ); |
| 26 | $this->set_env_id( $ai_embeddings_default_env ); |
| 27 | $this->set_model( $ai_embeddings_default_model ); |
| 28 | if ( $ai_embeddings_default_dimensions ) { |
| 29 | $this->set_dimensions( $ai_embeddings_default_dimensions ); |
| 30 | } |
| 31 | $this->feature = 'embedding'; |
| 32 | } |
| 33 | |
| 34 | /** |
| 35 | * Set the dimensions for the embedding model |
| 36 | * @param int $dimensions |
| 37 | */ |
| 38 | public function set_dimensions( $dimensions ) { |
| 39 | $this->dimensions = $dimensions; |
| 40 | } |
| 41 | |
| 42 | #[\ReturnTypeWillChange] |
| 43 | public function jsonSerialize(): array { |
| 44 | $json = [ |
| 45 | 'message' => $this->message, |
| 46 | |
| 47 | 'ai' => [ |
| 48 | 'model' => $this->model, |
| 49 | 'feature' => $this->feature, |
| 50 | 'dimensions' => $this->dimensions, |
| 51 | ], |
| 52 | |
| 53 | 'system' => [ |
| 54 | 'class' => get_class( $this ), |
| 55 | 'envId' => $this->envId, |
| 56 | 'scope' => $this->scope, |
| 57 | 'session' => $this->session |
| 58 | ] |
| 59 | ]; |
| 60 | |
| 61 | if ( !empty( $this->context ) ) { |
| 62 | $json['context']['content'] = $this->context; |
| 63 | } |
| 64 | |
| 65 | return $json; |
| 66 | } |
| 67 | } |
| 68 |