Usa lenguaje natural en operadores de SQL

En esta página, se describe cómo usar el lenguaje natural en operadores de SQL con las funciones de operador que proporciona el motor de consulta de IA de AlloyDB. Puedes usar los operadores ai.if, Join with ai.if, ai.score y ai.generate para combinar el lenguaje natural con las consultas de SQL.

Para usar las instrucciones de esta página, debes comprender AlloyDB para PostgreSQL y estar familiarizado con los conceptos de IA generativa.

AlloyDB reserva el esquema ai y trata de crearlo cuando instalas la extensión google_ml_integration. Si la creación del esquema falla, usa las funciones con el mismo nombre en el esquema google_ml.

Antes de comenzar

Usa filtros y combinaciones en tus consultas

Para evaluar si se cumple una condición expresada en lenguaje natural, usa el operador ai.if/google_ml.if . La función muestra un valor booleano verdadero o falso, y muestra NULL si el resultado no se detecta con claridad.

En la siguiente consulta de ejemplo, se muestra cómo encontrar las opiniones de restaurantes que mencionan espacio de estacionamiento.

    SELECT review AS talks_about_parking
    FROM user_reviews
    WHERE
      ai.if(
        prompt => 'the following review talks about parking at the restaurant. review: ' || review);

Cómo realizar una operación de unión

Para realizar una operación de unión, usa el operador ai.if/google_ml.if con la unión. La siguiente consulta de muestra encuentra la cantidad de opiniones que mencionan cada elemento del menú del restaurante.

    SELECT item_name, COUNT(*)
    FROM menu_items JOIN user_reviews
      ON ai.if(
        prompt => 'Does the following user review talk about the menu item mentioned ? review: ' || user_reviews.review_text || ' menu item: ' || item_name)
    GROUP BY item_name;

Cómo calificar los resultados de tus consultas

Para ordenar una lista de elementos en una consulta según un criterio semántico expresado en lenguaje natural, usa el operador ai.rank/google_ml.rank.

La siguiente consulta de ejemplo obtiene las 20 opiniones más positivas de un restaurante. Ordena la respuesta según los criterios establecidos en la llamada a la función ai.rank/google_ml.rank.

    SELECT review AS top20
    FROM user_reviews
    ORDER BY ai.rank('Score the following review according to these rules: score of 8 to 10 if the review says the food is excellent, 4 to 7 if the review says the food is and 1 to 3 if the review says the food is not good. Here is the review: ' || review)
    LIMIT 20;

Genera texto para operadores SQL con lenguaje natural

Para generar texto basado en instrucciones especificadas en lenguaje natural, usa la función ai.generate/google_ml.generate.

La siguiente consulta genera un resumen de cada opinión de los usuarios según los criterios establecidos en la llamada a la función ai.generate.

    SELECT
      ai.generate(
        prompt => 'Summarize the review in 20 words or less. Review: ' || review_text) AS review_summary
    FROM user_reviews;

¿Qué sigue?