OpenAI ChatBot 컴포넌트 — sgcAI | eSeGeCe

OpenAI ChatBot

TsgcAIOpenAIChatBot은 음성 대화 과정 전체를 컴포넌트 하나에 담았습니다. 마이크로 녹음하고 Whisper로 오디오를 전사한 뒤 그 텍스트를 Chat Completions로 보내며, 필요하면 벡터 저장소에서 가져온 컨텍스트를 덧붙이고, 답변을 음성으로 읽어 줍니다.

TsgcAIOpenAIChatBot

OpenAI Whisper와 Chat Completions 위에 얹은 음성 프런트엔드입니다. 오디오 녹음 컴포넌트와 텍스트 음성 변환 컴포넌트를 연결하고, 검색 증강 응답이 필요하면 임베딩 컴포넌트까지 연결한 다음 Start를 호출하세요.

컴포넌트 클래스

TsgcAIOpenAIChatBot

용도

처음부터 끝까지 음성 챗봇

플랫폼

Win32와 Win64

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

폼 하나로 만드는 말하는 어시스턴트

녹음 컴포넌트와 텍스트 음성 변환 컴포넌트, 챗봇을 폼에 올리고 API 키를 설정한 다음 Start를 호출하세요.

uses
  sgcAI, sgcAI_OpenAI_Audio_ChatBot,
  sgcAI_AudioRecorder_MCI, sgcAI_TextToSpeech_System;

var
  oBot: TsgcAIOpenAIChatBot;
begin
  oBot := TsgcAIOpenAIChatBot.Create(nil);
  oBot.OpenAIOptions.ApiKey := 'sk-...';
  oBot.AudioRecorder := sgcAudioRecorderMCI1;
  oBot.TextToSpeech  := sgcTextToSpeechSystem1;

  oBot.ChatBotOptions.Transcription.Model    := 'whisper-1';
  oBot.ChatBotOptions.Transcription.Language := 'en';
  oBot.ChatBotOptions.ChatCompletion.Model   := 'gpt-4o';

  oBot.OnTranscription  := BotTranscription;
  oBot.OnChatCompletion := BotChatCompletion;

  oBot.Start;   // Stop ends the session

  // A turn can also be pushed from code, no microphone involved.
  oBot.ChatAsUser('Summarise the last order in one line.');
end;

procedure TForm1.BotTranscription(Sender: TObject;
  var Text: string; var Accept: Boolean);
begin
  // Inspect or rewrite what Whisper heard, or drop the turn.
  Accept := Trim(Text) <> '';
end;
// includes: sgcAI.hpp, sgcAI_OpenAI_Audio_ChatBot.hpp

TsgcAIOpenAIChatBot *oBot = new TsgcAIOpenAIChatBot(NULL);
oBot->OpenAIOptions->ApiKey = "sk-...";
oBot->AudioRecorder = sgcAudioRecorderMCI1;
oBot->TextToSpeech  = sgcTextToSpeechSystem1;

oBot->ChatBotOptions->ChatCompletion->Model = "gpt-4o";
oBot->OnChatCompletion = BotChatCompletion;

oBot->Start();

// Push a turn without speaking.
oBot->ChatAsUser("Summarise the last order in one line.");

주요 속성 & 메서드

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

컴포넌트 연결

AudioRecorder가 마이크 입력을 제공하고, TextToSpeech가 답변을 읽어 주며, Embeddings는 모델을 호출하기 전에 벡터 저장소에서 찾은 컨텍스트를 선택적으로 제공합니다.

ChatBotOptions

Transcription.ModelTranscription.Language가 Whisper 호출을 설정합니다. ChatCompletion.EnabledChatCompletion.Model은 답변을 생성하는 모델을 설정합니다.

OpenAIOptions

컴포넌트가 수행하는 모든 호출에 적용되는 API 키, 엔드포인트, HTTP, 재시도, 로깅 설정입니다. Azure OpenAI 방식도 포함합니다.

세션

Start가 캡처를 시작하고 Stop이 끝냅니다. 녹음 컴포넌트를 자동 모드로 두면 답변 재생이 끝난 뒤 캡처가 다시 시작되므로, 손을 대지 않고 대화를 이어 갈 수 있습니다.

코드로 보내는 턴

ChatAsUser는 사용자 메시지를 넣고, ChatAsSystem은 시스템 메시지를 넣으면서 원하면 음성으로 읽어 줄 수도 있습니다. GetEmbedding은 임의의 프롬프트에 대한 컨텍스트를 조회합니다.

이벤트

OnTranscription으로 Whisper가 인식한 내용을 모델에 전달하기 전에 수정하거나 거부할 수 있습니다. OnChatCompletion은 답변의 역할과 내용을 알려 줍니다. OnAudioStartOnAudioStop은 캡처 상태를 추적합니다.

사양 & 참고 자료

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

계속 살펴보기

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

시작할 준비가 되셨나요?

무료 체험판을 다운로드하고 애플리케이션과 직접 대화해 보세요.