이 페이지에서는 AlloyDB AI 쿼리 엔진에서 제공하는 연산자 함수를 사용하여 SQL 연산자에 자연어를 사용하는 방법을 설명합니다. ai.if
, ai.if
로 조인, ai.score
, ai.generate
연산자를 사용하여 자연어와 SQL 쿼리를 결합할 수 있습니다.
이 페이지의 안내를 사용하려면 PostgreSQL용 AlloyDB를 이해하고 생성형 AI 개념에 익숙해야 합니다.
AlloyDB는 ai
스키마를 예약하고 google_ml_integration
확장 프로그램을 설치할 때 이 스키마를 만들려고 시도합니다. 스키마 생성에 실패하면 google_ml
스키마에서 이름이 동일한 함수를 사용합니다.
시작하기 전에
- 자연어로 SQL 연산자를 사용할 수 있는 액세스 권한을 요청하고 사용 설정 확인을 받을 때까지 기다린 후 이 페이지의 안내를 따르세요.
쿼리에서 필터 및 조인 사용
자연 언어로 표현된 조건이 충족되는지 평가하려면 ai.if
/google_ml.if
연산자를 사용하세요 . 이 함수는 불리언 true 또는 false 값을 반환하고 출력이 명확하게 감지되지 않으면 NULL을 반환합니다.
다음 샘플 쿼리는 주차 공간을 언급하는 레스토랑 리뷰를 찾는 방법을 보여줍니다.
SELECT review AS talks_about_parking
FROM user_reviews
WHERE
ai.if(
prompt => 'the following review talks about parking at the restaurant. review: ' || review);
조인 연산 실행
조인 연산을 실행하려면 조인과 함께 ai.if
/google_ml.if
연산자를 사용합니다. 다음 샘플 쿼리는 레스토랑 메뉴의 각 메뉴 항목을 언급하는 리뷰 수를 찾습니다.
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;
쿼리 결과 점수 매기기
자연어로 설명된 시맨틱 기준을 기반으로 쿼리의 항목 목록을 정렬하려면 ai.rank/google_ml.rank
연산자를 사용합니다.
다음 샘플 쿼리는 가장 긍정적인 레스토랑 리뷰 20개를 가져옵니다. 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;
자연어로 SQL 연산자의 텍스트 생성
자연어로 지정된 프롬프트를 기반으로 텍스트를 생성하려면 ai.generate
/google_ml.generate
함수를 사용하세요.
다음 쿼리는 ai.generate
함수 호출에 명시된 기준에 따라 각 사용자 리뷰의 요약을 생성합니다.
SELECT
ai.generate(
prompt => 'Summarize the review in 20 words or less. Review: ' || review_text) AS review_summary
FROM user_reviews;