Azure OpenAI 스키마 살펴보기
Azure OpenAI를 PostgreSQL 데이터베이스에 통합하면 확장성이 뛰어난 AI 기반 앱을 만들 수 있습니다. 이 통합을 통해 익숙한 SQL 언어와 PostgreSQL의 유연성을 사용하여 데이터베이스 계층 내에서 지능형 솔루션을 빌드할 수 있습니다. 자연어 처리, 권장 사항 시스템 또는 콘텐츠 생성에 관계없이 Azure OpenAI는 애플리케이션에 권한을 부여합니다.
azure_openai
확장에 의해 설치된 스키마를 azure_ai
사용하면 Azure OpenAI 서비스 인스턴스에 연결하고 상호 작용할 수 있습니다. 이 스키마를 사용하면 Azure OpenAI 서비스와 원활하게 통합할 수 있으므로 PostgreSQL 데이터베이스에서 직접 강력한 생성 AI 애플리케이션을 만들 수 있습니다.
임베딩 생성
스키마를 azure_openai
사용하여 데이터베이스 계층 내에서 벡터 포함을 생성하는 함수를 호출 create_embeddings()
할 수 있습니다. 이러한 포함은 고차원 벡터의 효율적인 스토리지, 인덱싱 및 쿼리를 허용합니다. 이 함수는 다음 두 가지 형식을 사용할 수 있습니다.
azure_openai.create_embeddings(text,text,integer,boolean,integer,integer)
azure_openai.create_embeddings(text,text[],integer,integer,boolean,integer,integer)
다음 표에서는 함수에서 예상하는 인수에 대해 설명합니다.
논쟁 | 유형 | 기본값 | 설명 |
---|---|---|---|
배포_이름 (deployment_name) | text |
Azure OpenAI Studio의 모델 임베딩 배포 이름입니다. 이 이름은 일반적으로 text-embeddings-ada-002 모델의 배포를 나타냅니다. |
|
입력 | text 또는 text[] |
벡터 포함이 만들어지는 입력 텍스트(또는 입력 텍스트 배열)입니다. | |
batch_size | integer |
100 |
input 인수가 text 값의 배열인 경우에만 적용됩니다. batch_size 는 동시에 처리할 배열의 레코드 수를 지정합니다. |
타임아웃_밀리초 | integer |
NULL::integer |
작업이 중지된 후의 시간 제한(밀리초)입니다. |
throw_on_error | boolean |
true |
오류 발생 시 함수가 예외를 throw하여 래핑 트랜잭션을 롤백해야 하는지 여부를 나타내는 플래그입니다. |
최대_시도횟수 | integer |
1 |
오류가 발생할 경우 Azure OpenAI 서비스에 대한 호출을 다시 시도하는 횟수입니다. |
재시도 지연 시간_ms (retry_delay_ms) | integer |
1000 |
Azure OpenAI 서비스 엔드포인트 호출을 다시 시도하기 전에 대기할 시간(밀리초)입니다. |
Azure OpenAI에 대한 연결 구성
함수를 azure_openai
사용하기 전에 Azure OpenAI 서비스 엔드포인트 및 키를 사용하여 확장을 구성합니다. 다음 명령은 Azure OpenAI 인스턴스에 연결하는 데 필요한 엔드포인트 및 키를 설정하는 데 사용하는 쿼리를 나타냅니다.
SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '{api-key}');
그런 다음, 함수를 get_setting()
사용하여 구성 테이블에 기록된 azure_ai.settings
설정을 확인할 수 있습니다.
SELECT azure_ai.get_setting('azure_openai.endpoint');
SELECT azure_ai.get_setting('azure_openai.subscription_key');
벡터 확장을 통해 벡터 기능 활성화
azure_ai
확장의 azure_openai.create_embeddings()
함수를 사용하면 입력 텍스트에 대한 임베딩을 생성할 수 있습니다. 생성된 벡터를 데이터베이스의 나머지 데이터와 함께 저장할 수 있도록 하려면 데이터베이스 설명서의 벡터 지원 사용 지침에 따라 확장을 설치 vector
해야 합니다.
CREATE EXTENSION 명령을 사용하여 확장을 설치 vector
할 수 있습니다.
CREATE EXTENSION IF NOT EXISTS vector;
벡터 생성 및 저장
Margie's Travel용으로 개발 중인 AI 기반 임대 추천 애플리케이션에서, 데이터베이스에 벡터 지원을 추가한 후, vector
데이터 형식을 사용하여 해당 테이블에 임베딩을 저장하기 위한 새 열을 대상 테이블에 추가해야 합니다. listings
테이블에서 벡터가 활성화되어, 쿼리를 실행할 때 사용 가능한 속성을 검색하기 위한 의미 검색 기능을 지원합니다. 모델은 text-embedding-ada-002
1,536개의 차원을 가진 벡터를 생성하므로 벡터 크기로 지정 1536
해야 합니다.
ALTER TABLE listings
ADD COLUMN description_vector vector(1536);
이제 listings
테이블이 포함을 저장할 준비가 되었습니다. azure_openai.create_embeddings()
함수를 사용하여 description
필드에 대한 벡터를 만들고 이러한 벡터를 description_vector
테이블의 새로 만든 listings
열에 삽입합니다.
UPDATE listings
SET description_vector = azure_openai.create_embeddings('{your-deployment-name}', description);
각 포함은 부동 소수점 숫자의 벡터이므로 벡터 공간의 두 포함 사이의 거리는 원래 형식의 두 입력 간의 의미 체계 유사성과 상관 관계가 있습니다.