get( 'ai_provider', 'wp_native_ai' ); switch ( $provider ) { case 'wp_native_ai': return new WordPressAIProvider(); case 'wp_connector_openai': case 'openai': return new OpenAIProvider(); case 'wp_connector_gemini': case 'wp_connector_google': case 'wp_connector_google-gemini': case 'gemini': return new GeminiProvider(); default: if ( WordPressAIProvider::is_available() ) { return new WordPressAIProvider(); } return new GeminiProvider(); } } /** * Get the Vector Store instance (Native WordPress MySQL Vector Storage). * * @return VectorStoreInterface */ public static function get_vector_store(): VectorStoreInterface { return new MySQLVectorStore(); } /** * Retrieve embedding vector for a given text. * * @param string $text Content block. * @return array Float vector array. */ public static function generate( string $text ): array { self::$last_model = ''; $provider = self::get_provider(); if ( null === $provider ) { Logger::error( 'Could not resolve embedding provider.' ); return array(); } return $provider->get_embedding( $text ); } }