OpenAI Embeddings 컴포넌트 — sgcAI | eSeGeCe

OpenAI Embeddings

TsgcAIOpenAIEmbeddings는 검색 증강 생성의 색인과 조회를 담당합니다. 말뭉치를 청크로 나누고 청크마다 임베딩 벡터를 요청해 지정한 벡터 저장소에 기록하며, 어떤 질의에도 가장 가까운 저장 텍스트를 돌려줍니다.

TsgcAIOpenAIEmbeddings

저장소를 자유롭게 교체할 수 있는 임베딩 생성 컴포넌트입니다. Database에 벡터 데이터베이스 컴포넌트를 지정하면 청킹과 임베딩, 일괄 처리, 기록까지 색인 파이프라인 전체가 호출 한 번으로 실행됩니다.

컴포넌트 클래스

TsgcAIOpenAIEmbeddings

용도

임베딩과 RAG 조회

플랫폼

Win32와 Win64

sgcAI는 자체 완결형 제품입니다. 이 컴포넌트는 기반이 되는 sgcWebSockets Core 런타임과 함께 sgcAI에 포함되어 제공되므로, 별도로 구매해야 할 기본 라이선스가 없습니다.

말뭉치를 색인하고 질의하기

벡터 저장소를 지정하고 CreateEmbeddingsFromFile을 한 번 호출한 다음, 사용자 질문마다 컨텍스트를 조회하세요.

uses
  sgcAI, sgcAI_OpenAI_Embeddings, sgcAI_DB_Vector_File;

var
  oEmbeddings: TsgcAIOpenAIEmbeddings;
  oDB: TsgcAIDatabaseVectorFile;
  vContext: string;
begin
  oDB := TsgcAIDatabaseVectorFile.Create(nil);
  oDB.VectorFileOptions.InputFilename  := 'corpus.sgcif';
  oDB.VectorFileOptions.VectorFilename := 'corpus.sgcvf';

  oEmbeddings := TsgcAIOpenAIEmbeddings.Create(nil);
  oEmbeddings.OpenAIOptions.ApiKey := 'sk-...';
  oEmbeddings.EmbeddingsOptions.Model     := 'text-embedding-3-small';
  oEmbeddings.EmbeddingsOptions.ChunkSize := 4096;
  oEmbeddings.Database := oDB;

  oEmbeddings.OnCreateEmbeddingsProgress := EmbeddingsProgress;

  // One pass over the corpus, done once.
  oEmbeddings.CreateEmbeddingsFromFile('manual.txt');

  // Then, per question, retrieve the nearest chunk.
  vContext := oEmbeddings.GetEmbedding('How do I reset the device?', '');
end;

procedure TForm1.EmbeddingsProgress(Sender: TObject;
  aPosition: Int64; var aContinue: Boolean);
begin
  ProgressBar1.Position := aPosition;
  aContinue := not CancelRequested;
end;
// includes: sgcAI.hpp, sgcAI_OpenAI_Embeddings.hpp, sgcAI_DB_Vector_File.hpp

TsgcAIDatabaseVectorFile *oDB = new TsgcAIDatabaseVectorFile(NULL);
oDB->VectorFileOptions->InputFilename  = "corpus.sgcif";
oDB->VectorFileOptions->VectorFilename = "corpus.sgcvf";

TsgcAIOpenAIEmbeddings *oEmbeddings = new TsgcAIOpenAIEmbeddings(NULL);
oEmbeddings->OpenAIOptions->ApiKey = "sk-...";
oEmbeddings->Database = oDB;

oEmbeddings->CreateEmbeddingsFromFile("manual.txt");
String vContext = oEmbeddings->GetEmbedding("How do I reset the device?", "");

주요 속성 & 메서드

가장 자주 사용하게 되는 멤버들입니다.

Database

Database에는 어떤 벡터 저장소 컴포넌트든 지정할 수 있습니다. 로컬 파일에는 TsgcAIDatabaseVectorFile을, 관리형 인덱스에는 TsgcAIDatabaseVectorPinecone을 사용하세요. 색인 코드는 달라지지 않습니다.

EmbeddingsOptions

Model의 기본값은 text-embedding-3-small입니다. ChunkSize는 말뭉치를 나누는 방식을 정하고, WaitStoringData는 저장소에 기록하는 속도를 조절하며, User는 요청에 태그를 붙입니다.

색인

CreateEmbeddings는 문자열을, CreateEmbeddingsFromFile은 파일 전체를 색인합니다. 두 메서드 모두 저장소에 배치를 열고 청크마다 벡터 하나를 넣은 다음 배치를 닫습니다.

조회

GetEmbedding은 질의를 임베딩해 가장 가까운 저장 텍스트를 반환합니다. 이 문자열을 프롬프트에 컨텍스트로 넣으면 됩니다.

배치 이벤트

OnCreateEmbeddingsStart는 전체 크기를 알려 주고, OnCreateEmbeddingsProgress는 진행 위치와 함께 계속 여부 플래그를 제공해 오래 걸리는 색인 작업을 취소할 수 있게 하며, OnCreateEmbeddingsStop이 작업을 마무리합니다.

청크 단위 이벤트

OnBeforeCreateEmbedding으로 개별 요청을 확인하고 거부할 수 있으며, OnAfterCreateEmbedding은 요청과 응답을 함께 전달하므로 토큰 사용량을 점검하는 데 유용합니다.

사양 & 참고 자료

이 컴포넌트가 사용하는 서비스와 프로토콜의 공식 자료입니다.

계속 살펴보기

온라인 도움말sgcAI 컴포넌트의 전체 API 레퍼런스와 사용 안내서.
sgcAI 전체 컴포넌트15개 컴포넌트 전체의 기능 매트릭스를 살펴보세요.
무료 체험판 다운로드보유한 문서를 색인하고 오프라인으로 조회해 보세요.
가격Single, Team, Site 라이선스, 전체 소스 코드 포함, 기본 제품 불필요.
최고의 가성비: All-Access모든 eSeGeCe 제품과 프리미엄 지원이 포함되어 연 €1,059부터 이용할 수 있어요.
All-Access 가격 보기

시작할 준비가 되셨나요?

무료 체험판을 다운로드하고 보유한 데이터에 근거해 답하는 언어 모델을 만들어 보세요.