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