OpenAI Assistant
TsgcAIOpenAIAssistant는 OpenAI Assistants API를 감싼 컴포넌트입니다. 지침과 도구를 갖춘 어시스턴트를 만들고, 스레드를 열어 메시지를 보낸 다음, 블로킹 또는 스트리밍 방식으로 실행을 시작하세요. File Search와 Code Interpreter, 직접 정의한 함수는 속성으로 설정합니다.
TsgcAIOpenAIAssistant는 OpenAI Assistants API를 감싼 컴포넌트입니다. 지침과 도구를 갖춘 어시스턴트를 만들고, 스레드를 열어 메시지를 보낸 다음, 블로킹 또는 스트리밍 방식으로 실행을 시작하세요. File Search와 Code Interpreter, 직접 정의한 함수는 속성으로 설정합니다.
OpenAI Assistants API 기반의 상태를 유지하는 에이전트입니다. 어시스턴트와 스레드, 메시지, 실행, 벡터 저장소를 관리하고 도구 호출을 사용자 코드로 전달합니다.
sgcAI는 자체 완결형 제품입니다. 이 컴포넌트는 기반이 되는 sgcWebSockets Core 런타임과 함께 sgcAI에 포함되어 제공되므로, 별도로 구매해야 할 기본 라이선스가 없습니다.
어시스턴트를 설정하고 스레드를 열어 메시지를 보낸 다음 실행하세요. 스트리밍 실행은 답변이 생성되는 동안 이벤트를 발생시킵니다.
uses
sgcAI, sgcAI_OpenAI_Audio_Assistant;
var
oAssistant: TsgcAIOpenAIAssistant;
oThread: TsgcOpenAIClass_Thread;
begin
oAssistant := TsgcAIOpenAIAssistant.Create(nil);
oAssistant.OpenAIOptions.ApiKey := 'sk-...';
oAssistant.AssistantOptions.Name := 'Support Agent';
oAssistant.AssistantOptions.Model := 'gpt-4o';
oAssistant.AssistantOptions.Instructions.Text :=
'Answer support questions from the product manual only.';
oAssistant.AssistantOptions.Tools.FileSearch.Enabled := True;
oAssistant.OnStreamMessageDelta := AssistantDelta;
oAssistant.OnFunctionCall := AssistantFunctionCall;
oAssistant.CreateAssistant;
oThread := oAssistant.CreateThread;
oAssistant.CreateMessageText(oThread.Id, 'How do I reset the device?');
oAssistant.CreateRunAndWait(oThread.Id, 60000, True);
end;
// includes: sgcAI.hpp, sgcAI_OpenAI_Audio_Assistant.hpp
TsgcAIOpenAIAssistant *oAssistant = new TsgcAIOpenAIAssistant(NULL);
oAssistant->OpenAIOptions->ApiKey = "sk-...";
oAssistant->AssistantOptions->Name = "Support Agent";
oAssistant->AssistantOptions->Model = "gpt-4o";
oAssistant->AssistantOptions->Tools->FileSearch->Enabled = true;
oAssistant->OnStreamMessageDelta = AssistantDelta;
oAssistant->CreateAssistant();
TsgcOpenAIClass_Thread *oThread = oAssistant->CreateThread();
oAssistant->CreateMessageText(oThread->Id, "How do I reset the device?");
oAssistant->CreateRunAndWait(oThread->Id, 60000, true);
가장 자주 사용하게 되는 멤버들입니다.
Name, Model, Instructions, Temperature, TopP가 어시스턴트를 정의합니다. Tools.FileSearch, Tools.CodeInterpreter, Tools.Functions로 내장 도구와 직접 만든 도구를 활성화합니다.
CreateAssistant, GetAssistant, ListAssistants로 OpenAI 계정에 있는 어시스턴트 정의를 관리합니다.
CreateThread와 GetThread로 대화를 시작합니다. CreateMessageText는 한 턴을 전송하고, GetMessages는 limit, order, 커서 인자로 대화 내용을 페이지 단위로 가져옵니다.
CreateRun이 실행을 시작하고, GetRun이 상태를 확인하며, CreateRunAndWait는 타임아웃까지 블로킹 방식으로 완료를 기다립니다. 모두 스트리밍으로 사용할 수 있습니다.
UploadVectorStoreFile로 지정한 벡터 저장소에 문서를 추가하고, GetVectorStoreFiles로 이미 들어 있는 파일을 확인합니다. 어시스턴트는 이렇게 보유한 파일에 근거해 답변합니다.
OnStreamMessage, OnStreamMessageDelta, OnStreamRun, OnStreamError, OnStreamDone이 스트리밍 실행을 따라갑니다. OnFunctionCall은 도구 호출을 사용자 코드로 전달합니다.
이 컴포넌트는 AudioRecorder와 TextToSpeech 연결도 지원하므로, 같은 어시스턴트를 타이핑 대신 음성으로 사용할 수 있습니다.
이 컴포넌트가 사용하는 서비스와 프로토콜의 공식 자료입니다.