Azure OpenAI 스키마 살펴보기

완료됨

Azure OpenAI를 PostgreSQL 데이터베이스에 통합하면 확장성이 뛰어난 AI 기반 앱을 만들 수 있습니다. 이러한 통합을 통해 친숙한 SQL 언어와 PostgreSQL의 유연성을 사용하여 데이터베이스 계층 내에 지능형 솔루션을 빌드할 수 있습니다. 자연어 처리, 권장 사항 시스템, 콘텐츠 생성 등 Azure OpenAI는 애플리케이션을 강화합니다.

azure_ai 확장으로 설치된 azure_openai 스키마를 사용하면 Azure OpenAI Service 인스턴스에 연결하고 상호 작용할 수 있습니다. 이 스키마를 사용하면 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)

다음 표에서는 함수에서 예상되는 인수를 설명합니다.

인수 Type 기본값 설명
deployment_name text Azure OpenAI Studio의 포함 모델 배포 이름입니다. 이 이름은 일반적으로 text-embeddings-ada-002 모델의 배포를 나타냅니다.
input text 또는 text[] 벡터 포함이 만들어지는 입력 텍스트(또는 입력 텍스트 배열)입니다.
batch_size integer 100 input 인수가 text 값의 배열인 경우에만 적용됩니다. batch_size는 동시에 처리할 배열의 레코드 수를 지정합니다.
timeout_ms integer NULL::integer 작업이 중지된 후의 시간 제한(밀리초)입니다.
throw_on_error boolean true 함수가 오류 발생 시 예외를 throw하여 래핑 트랜잭션을 롤백해야 하는지 여부를 나타내는 플래그입니다.
max_attempts integer 1 오류가 발생한 경우 Azure OpenAI 서비스 호출을 다시 시도하는 횟수입니다.
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 필드에 대한 벡터를 만들고 이러한 벡터를 listings 테이블의 새로 만든 description_vector 열에 삽입합니다.

UPDATE listings
SET description_vector = azure_openai.create_embeddings('{your-deployment-name}', description);

각 포함은 부동 소수점 숫자의 벡터이므로 벡터 공간에서 두 포함 사이의 거리는 원래 형식의 두 입력 간 의미 체계 유사성과 상호 관련된 관계가 있습니다.