AI Chat 컴포넌트 — sgcAI | eSeGeCe

AI Chat

TsgcAIChat은 7개 대규모 언어 모델 공급자를 위한 단일 채팅 클라이언트입니다. Provider를 지정하고 API 키와 모델을 설정한 다음 Chat을 호출하면 됩니다. 공급자를 바꾸는 데는 할당문 하나면 충분하고 나머지 코드는 그대로 유지됩니다.

TsgcAIChat

공급자에 종속되지 않는 채팅 컴포넌트입니다. 대화 기록을 유지하고 공급자별 JSON 본문을 구성하며, 해당 HTTP API 클라이언트를 구동해 어시스턴트 텍스트를 한 번에 또는 토큰 단위로 돌려줍니다.

컴포넌트 클래스

TsgcAIChat

용도

공급자 중립 LLM 채팅

플랫폼

Win32와 Win64

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

모델에 질문하기

공급자를 고르고 키와 모델을 설정한 다음 Chat을 호출하세요. 스트리밍과 비동기 방식도 동일한 설정을 사용합니다.

uses
  sgcAI, sgcAI_Chat;

var
  oChat: TsgcAIChat;
  vAnswer: string;
begin
  oChat := TsgcAIChat.Create(nil);
  oChat.Provider := aicpAnthropic;
  oChat.ChatOptions.ApiKey    := 'sk-ant-...';
  oChat.ChatOptions.Model     := 'claude-sonnet-4-5';
  oChat.ChatOptions.MaxTokens := 4096;
  oChat.SystemMessage := 'You are a Delphi expert.';
  oChat.MaxHistoryMessages := 20;

  // Blocking call, returns the assistant text.
  vAnswer := oChat.Chat('How do I keep a WebSocket connection alive?');

  // Token by token, delivered on OnChatStream.
  oChat.OnChatStream := OnChatStreamHandler;
  oChat.ChatStream('Now explain it to a beginner.');
end;

procedure TForm1.OnChatStreamHandler(Sender: TObject;
  const aChunk: string; var Cancel: Boolean);
begin
  Memo1.Text := Memo1.Text + aChunk;
  Cancel := StopRequested;   // abort a long generation
end;
// includes: sgcAI.hpp, sgcAI_Chat.hpp

TsgcAIChat *oChat = new TsgcAIChat(NULL);
oChat->Provider = aicpOpenAI;
oChat->ChatOptions->ApiKey = "sk-...";
oChat->ChatOptions->Model  = "gpt-4o";
oChat->SystemMessage = "You are a Delphi expert.";

String vAnswer = oChat->Chat("How do I keep a WebSocket connection alive?");

// Local models: same code, no data leaves the machine.
oChat->Provider = aicpOllama;
oChat->ChatOptions->BaseUrl = "http://127.0.0.1:11434";
oChat->ChatOptions->Model   = "llama3";
vAnswer = oChat->Chat("Same question, local model.");

주요 속성 & 메서드

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

Provider

Provider로 공급자를 선택합니다: aicpOpenAI, aicpAnthropic, aicpGemini, aicpDeepSeek, aicpOllama, aicpGrok, aicpMistral. 값을 바꾸면 이전 공급자를 위해 캐시해 둔 클라이언트가 해제됩니다.

ChatOptions

ApiKey, Model, MaxTokens, Temperature, TopP, BaseUrl을 제공합니다. TemperatureTopP를 기본값으로 두면 요청에서 생략되어 공급자 기본값이 적용됩니다.

대화

SystemMessage는 모든 턴에 적용될 페르소나를 지정합니다. MaxHistoryMessages는 다시 전송되는 과거 메시지 수를 제한해 토큰 비용을 억제합니다. ClearHistoryGetHistory로 대화 기록을 초기화하고 읽습니다.

호출

Chat은 블로킹 방식으로 답변을 반환합니다. ChatStream은 SSE로 스트리밍합니다. ChatWithSystem은 한 턴에 한해 시스템 프롬프트를 덮어씁니다. ChatAsync는 Delphi 2010 이상에서 future를 반환합니다.

이벤트

OnChatMessage는 완료된 메시지를 역할과 함께 알려 줍니다. OnChatStream은 모든 청크를 전달하며 Cancel 플래그를 함께 제공합니다. OnChatError는 공급자 오류와 전송 오류를 노출합니다.

로컬 모델

ProvideraicpOllama로 설정하면 ChatOptions.BaseUrl이 컴포넌트를 자체 Ollama 호스트로 향하게 하므로, 프롬프트와 답변이 컴퓨터 밖으로 나가지 않습니다.

사양 & 참고 자료

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

계속 살펴보기

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

시작할 준비가 되셨나요?

무료 체험판을 다운로드하고 몇 분 만에 Delphi 폼 뒤에 언어 모델을 붙여 보세요.