sgcAI 기능 매트릭스
SGC AI 팔레트 페이지의 15개 컴포넌트를 기준으로 정리한 sgcAI의 모든 기능입니다. 컴포넌트 하나로 7개 모델 공급자와 대화하고, Model Context Protocol 서버를 직접 운영하거나 이용하고, 보유한 데이터를 벡터로 색인하며, 이 모든 것을 음성으로 제어할 수 있습니다. 모든 라이선스에 전체 소스 코드가 제공됩니다. 컴포넌트를 클릭하면 속성, 이벤트, 예제가 담긴 전용 페이지로 이동합니다.
SGC AI 팔레트 페이지의 15개 컴포넌트를 기준으로 정리한 sgcAI의 모든 기능입니다. 컴포넌트 하나로 7개 모델 공급자와 대화하고, Model Context Protocol 서버를 직접 운영하거나 이용하고, 보유한 데이터를 벡터로 색인하며, 이 모든 것을 음성으로 제어할 수 있습니다. 모든 라이선스에 전체 소스 코드가 제공됩니다. 컴포넌트를 클릭하면 속성, 이벤트, 예제가 담긴 전용 페이지로 이동합니다.
sgcAI는 자체 완결형 제품입니다. 아래 표에 있는 모든 항목이, 컴포넌트가 기반으로 하는 sgcWebSockets Core 런타임과 함께 하나의 패키지로 제공됩니다. 별도로 구매해야 할 기본 라이선스가 없습니다.
sgcAI는 Windows 제품입니다. AI 패키지는 MSWINDOWS 조건에서만 컴파일되므로, 15개 팔레트 컴포넌트 중 13개는 Win32 및 Win64용으로 등록되며 macOS, Linux, iOS, Android에서는 빌드되지 않습니다.
두 개의 Model Context Protocol 컴포넌트인 TsgcWSAPIServer_MCP와 TsgcWSAPIClient_MCP는 예외입니다. 플랫폼 제한이 없으며 sgc HTTP 스택이 동작하는 모든 곳에서 실행됩니다. 아래 플랫폼 & 언어를 참고하세요.
공급자 7종, 컴포넌트 4종
클라이언트와 서버
보유 데이터 기반 RAG
System, Google, Amazon
MCI와 Wave
Windows Win32 및 Win64, MCP 쌍은 크로스플랫폼
모두 SGC AI라는 하나의 팔레트 페이지에 등록됩니다.
| 컴포넌트 | 클래스 | 계열 | 설명 |
|---|---|---|---|
| AI Chat | TsgcAIChat | 채팅 | OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok, Mistral을 위한 단일 채팅 클라이언트. |
| OpenAI ChatBot | TsgcAIOpenAIChatBot | 채팅 | 음성 챗봇: 녹음하고 Whisper로 전사한 뒤 답변하고 그 답변을 읽어 줍니다. |
| OpenAI Translator | TsgcAIOpenAITranslator | 채팅 | 음성을 입력받아 영어 음성으로 번역합니다. |
| OpenAI Assistant | TsgcAIOpenAIAssistant | 채팅 | Assistants API: 스레드, 실행, File Search, Code Interpreter, 함수 호출. |
| MCP Server | TsgcWSAPIServer_MCP | MCP | HTTP 또는 HTTP Streamable로 도구, 프롬프트, 리소스를 게시합니다. |
| MCP Client | TsgcWSAPIClient_MCP | MCP | HTTP, HTTP Streamable 또는 stdio로 모든 MCP 서버를 이용합니다. |
| OpenAI Embeddings | TsgcAIOpenAIEmbeddings | 벡터 | 텍스트나 파일에서 임베딩을 생성하고 가장 가까운 항목을 조회합니다. |
| Vector Database (File) | TsgcAIDatabaseVectorFile | 벡터 | 서버도 계정도 필요 없는 로컬 파일 기반 벡터 저장소. |
| Vector Database (Pinecone) | TsgcAIDatabaseVectorPinecone | 벡터 | Pinecone REST API를 통한 관리형 벡터 인덱스. |
| Text to Speech (System) | TsgcTextToSpeechSystem | 음성 | 컴퓨터에 설치된 엔진으로 읽어 주며 키가 필요 없습니다. |
| Text to Speech (Google) | TsgcTextToSpeechGoogle | 음성 | 서비스 계정 인증을 사용하는 Google Cloud Text-to-Speech. |
| Text to Speech (Amazon) | TsgcTextToSpeechAmazon | 음성 | 서명된 AWS 요청과 SSML을 지원하는 Amazon Polly. |
| Audio Recorder (MCI) | TsgcAudioRecorderMCI | 오디오 | 무음 감지를 지원하는 마이크 녹음, WAV 파일로 저장. |
| Audio Recorder (Wave) | TsgcAudioRecorderWave | 오디오 | 샘플 형식을 완전히 제어할 수 있는 스트리밍 마이크 녹음. |
| Audio Player (MCI) | TsgcAudioPlayerMCI | 오디오 | 실제 재생 종료 알림을 제공하는 재생 컴포넌트. |
Provider 속성 하나로 7개 공급자에 연결하며, 음성 및 에이전트 시나리오를 위한 OpenAI 컴포넌트 3종이 추가로 제공됩니다.
| 기능 | 컴포넌트 | 비고 |
|---|---|---|
| OpenAI | TsgcAIChat | Provider := aicpOpenAI. Chat Completions API를 통한 GPT 모델. |
| Anthropic | TsgcAIChat | Provider := aicpAnthropic. Messages API를 통한 Claude 모델. |
| Google Gemini | TsgcAIChat | Provider := aicpGemini. |
| DeepSeek | TsgcAIChat | Provider := aicpDeepSeek. deepseek-chat 및 deepseek-reasoner. |
| Ollama(로컬 모델) | TsgcAIChat | Provider := aicpOllama. ChatOptions.BaseUrl이 자체 호스트를 가리키므로 데이터가 컴퓨터 밖으로 나가지 않습니다. |
| xAI Grok | TsgcAIChat | Provider := aicpGrok. |
| Mistral | TsgcAIChat | Provider := aicpMistral. |
| 블로킹 호출 | TsgcAIChat | Chat(aMessage)가 어시스턴트 텍스트를 반환합니다. |
| 스트리밍 | TsgcAIChat | ChatStream과 OnChatStream을 제공하며, 생성 도중 중단할 수 있는 Cancel 플래그가 함께 전달됩니다. |
| 비동기 | TsgcAIChat | Delphi 2010 이상에서 ChatAsync가 future를 반환합니다. |
| 시스템 프롬프트 | TsgcAIChat | 모든 턴에 적용되는 SystemMessage, 또는 한 번만 적용되는 ChatWithSystem. |
| 대화 기록 제한 | TsgcAIChat | MaxHistoryMessages가 다시 전송되는 컨텍스트 양을 제한합니다. ClearHistory와 GetHistory로 대화 기록을 관리합니다. |
| 샘플링 제어 | TsgcAIChat | MaxTokens, Temperature, TopP. 뒤의 두 값을 지정하지 않으면 공급자 기본값이 적용됩니다. |
| 음성 텍스트 변환 | TsgcAIOpenAIChatBot, TsgcAIOpenAITranslator | Whisper 전사 및 번역을 제공하며, 사용 전에 텍스트를 검토할 수 있는 이벤트가 있습니다. |
| 검색 증강 응답 | TsgcAIOpenAIChatBot | Embeddings 컴포넌트를 연결하면 모델 호출 전에 검색된 컨텍스트가 추가됩니다. |
| 어시스턴트, 스레드, 실행 | TsgcAIOpenAIAssistant | CreateAssistant, CreateThread, CreateMessageText, CreateRun, CreateRunAndWait. |
| File Search와 Code Interpreter | TsgcAIOpenAIAssistant | AssistantOptions.Tools를 사용하며, UploadVectorStoreFile로 직접 문서를 추가할 수 있습니다. |
| 함수 호출 | TsgcAIOpenAIAssistant | Tools.Functions와 OnFunctionCall 이벤트. |
AI 클라이언트가 도구, 프롬프트, 리소스에 접근할 때 사용하는 프로토콜의 양쪽 끝을 모두 제공합니다.
| 기능 | 클라이언트 | 서버 | 비고 |
|---|---|---|---|
| HTTP JSON-RPC 전송 | aimcptrHttp | TransportOptions.Http | 요청 하나에 응답 하나, 그리고 연결이 닫힙니다. |
| HTTP Streamable 전송 | aimcptrHttpStreamable | TransportOptions.HttpStreamable | Keep-alive에 SSE 스트림이 더해지며, 알림과 서버가 시작하는 요청이 이 스트림으로 전달됩니다. |
| stdio 전송 | aimcptrStdio | 별도의 stdio 호스트 | 클라이언트가 로컬 하위 프로세스를 실행합니다. 서버 측 stdio는 팔레트 컴포넌트가 아니라 전용 호스트 클래스가 제공합니다. |
| 핸드셰이크 | Initialize | OnMCPInitialize | 기능 협상과 세션 ID 할당. |
| 세션 | Session, HeartBeat | OnMCPSessionNew, OnMCPSessionEnd, SessionTimeout | 유휴 세션은 서버에서 만료되며, 클라이언트는 주기적인 ping으로 세션을 유지할 수 있습니다. |
| 도구 | ListTools, RequestTool | Tools, OnMCPRequestTool | 목록 조회와 호출. 서버는 이벤트를 발생시키고 실제 작업은 사용자 코드가 처리합니다. |
| 프롬프트 | ListPrompts, RequestPrompt | Prompts, OnMCPRequestPrompt | 도구와 동일한 패턴입니다. |
| 리소스 | ListResources, RequestResource, ListResourceTemplates | Resources, ResourceTemplates, OnMCPRequestResource | 목록 조회는 페이징용 커서를 받습니다. |
| 리소스 구독 | SubscribeResource, UnsubscribeResource | SendNotificationResourcesUpdated | 리소스를 구독하고 변경 시 알림을 받습니다. |
| 목록 변경 알림 | 수신 | SendNotificationToolsListChanged 및 프롬프트, 리소스용 동등 메서드 | streamable 전송이 필요합니다. |
| 루트 | OnMCPListRoots | RequestRootsList | 서버가 사용할 수 있는 파일 시스템 루트를 클라이언트에 묻습니다. |
| 샘플링 | OnMCPSamplingCreateMessage | RequestSamplingCreateMessage | 서버가 클라이언트의 모델에 completion을 요청합니다. |
| Elicitation | OnMCPElicitationCreate | RequestElicitationCreate | 서버가 클라이언트를 통해 사용자에게 입력을 요청합니다. |
| Completion | Complete | 처리됨 | 도구와 프롬프트의 인자 값 자동 완성. |
| 로깅 | SetLoggingLevel | SendLogMessage | 클라이언트가 지정한 수준으로 구조화된 로그 메시지를 전달합니다. |
| 인증 | API 키, 사용자 지정 헤더, OAuth 2.0 | API 키, 사용자 지정 헤더, OAuth 2.0 | 양쪽 모두 MCPOptions.AuthenticationOptions를 사용합니다. |
| 내장 인가 서버 | — | ✓ | RFC 8414 및 RFC 9728을 따르는 동적 클라이언트 등록, 동의 페이지, PKCE, 리프레시 토큰. |
| Origin 검증 | — | HttpStreamable.ValidateOrigin | 세션을 생성 당시의 Origin 헤더에 고정합니다. |
보유한 문서를 벡터로 만들어 로컬 또는 관리형 인덱스에 저장하고, 질문마다 필요한 컨텍스트를 가져옵니다.
| 기능 | 파일 저장소 | Pinecone | 비고 |
|---|---|---|---|
| 임베딩 생성 | ✓ | ✓ | TsgcAIOpenAIEmbeddings.CreateEmbeddings와 CreateEmbeddingsFromFile. |
| 청킹 | ✓ | ✓ | EmbeddingsOptions.ChunkSize, 기본값 4096자. |
| 임베딩 모델 | ✓ | ✓ | EmbeddingsOptions.Model, 기본값 text-embedding-3-small. |
| 일괄 upsert | 닫을 때 기록 | 단일 REST upsert | 두 저장소 모두 BeginAddData, AddData, EndAddData를 지원합니다. |
| 최근접 이웃 조회 | QueryData | QueryData | 가장 가까운 벡터에 대응하는 원본 텍스트를 반환합니다. |
| 프롬프트용 컨텍스트 조회 | ✓ | ✓ | GetEmbedding(aInput, aParams)가 질의를 임베딩하고 가장 잘 맞는 결과를 반환합니다. |
| 진행률과 취소 | ✓ | ✓ | OnCreateEmbeddingsStart, 계속 여부 플래그가 있는 OnCreateEmbeddingsProgress, OnCreateEmbeddingsStop. |
| 청크 단위 후크 | ✓ | ✓ | OnBeforeCreateEmbedding으로 요청을 거부할 수 있고, OnAfterCreateEmbedding은 요청과 응답을 알려 줍니다. |
| 오프라인 동작 | ✓ | — | 파일 저장소는 조회 시 네트워크가 필요 없습니다. 임베딩 생성은 여전히 공급자를 호출합니다. |
| 여러 컴퓨터에서 공유 | — | ✓ | Pinecone 인덱스는 한 애플리케이션이 쓰고 다른 애플리케이션이 읽을 수 있습니다. |
| 설정 | VectorFileOptions.InputFilename, VectorFilename | PineconeOptions, PineconeIndexOptions | 파일 두 개, 또는 API 키와 인덱스 및 프로젝트 ID. |
| ID 제어 | OnBeginAddData | OnBeginAddData | 첫 ID와 ID 레이블을 설정하면 여러 번의 수집이 하나의 저장소를 공유할 수 있습니다. |
세 컴포넌트가 하나의 인터페이스를 공유하므로 챗봇, 번역기, 어시스턴트가 어느 것이든 받아들입니다.
| 기능 | System | Amazon | |
|---|---|---|---|
| 문자열 읽기 | TextToSpeech | TextToSpeech | TextToSpeech |
| 자격 증명 필요 | 아니요 | 서비스 계정 JSON | AWS 액세스 키와 시크릿 |
| 네트워크 필요 | 아니요 | 예 | 예 |
| 문자당 비용 | 없음 | 공급자 요금제 | 공급자 요금제 |
| 음성 선택 | 컴퓨터 음성 설정 | Language, VoiceId, Gender | Engine, VoiceId |
| 출력 형식 | 직접 재생 | AudioEncoding, FileName | OutputFormat, FileName |
| SSML | — | — | TextType |
| 오디오 플레이어 필요 | 아니요 | 예, AudioPlayer | 예, AudioPlayer |
| 인증 처리 | — | 캐시된 액세스 토큰과 서명된 JWT | AWS Signature Version 4 |
| 시작 및 중지 이벤트 | ✓ | ✓ | ✓ |
서로 다른 장단점을 가진 녹음 컴포넌트 2종과, 음성 흐름을 완성하는 재생 컴포넌트입니다.
| 기능 | Recorder (MCI) | Recorder (Wave) | Player (MCI) |
|---|---|---|---|
| 사용하는 Windows API | MCI | waveIn | MCI |
| 출력 | WAV 파일 | 실시간 스트림 | 파일 재생 |
| 샘플 형식 제어 | 고정, 16비트 모노 22050 Hz | SampleRate, Channels, BitsPerSample | — |
| 무음 감지 | MCIOptions.LevelMin, StopAfter | WaveOptions.LevelMin, StopAfter, WaitForAudio | — |
| 수동 또는 자동 | RecorderOptions.Mode: camoManual 또는 camoAuto | Start와 Stop | Play |
| 동시 인스턴스 | ✓, 컴포넌트마다 고유한 MCI 별칭 | ✓ | ✓ |
| 재생 종료 알림 | — | — | ✓, 타이머가 아닌 실제 MCI 알림 |
| 음성 컴포넌트에서의 사용 | 기본 녹음 컴포넌트 | 스트리밍 시나리오 | 클라우드 음성 컴포넌트의 출력 |
지원 범위를 정확하게 정리했습니다.
| 항목 | 내용 |
|---|---|
| 운영 체제 | Windows 전용입니다. SGC_AI는 MSWINDOWS에서만 정의되며, SGC AI 팔레트 등록 전체를 이 조건이 좌우합니다. 아래의 MCP 두 컴포넌트만 예외이고, AI 컴포넌트에는 macOS, Linux, iOS, Android 빌드가 없습니다. |
| Delphi | Delphi 7부터 RAD Studio 13 Florence까지, VCL과 FireMonkey, Win32 및 Win64 대상. |
| C++ Builder | C++ Builder 10.1 Berlin부터 C++ Builder 13까지, 생성된 헤더를 통해 Win32 및 Win64 대상. |
| AI 팔레트 컴포넌트 | 15개 중 13개가 [ComponentPlatforms(pidWin32 or pidWin64)]로 선언되어 있습니다. 채팅, 에이전트, 임베딩, 벡터, 음성, 오디오 컴포넌트는 Win32와 Win64 전용입니다. |
| MCP 컴포넌트 | 유일한 예외입니다. TsgcWSAPIServer_MCP와 TsgcWSAPIClient_MCP는 [ComponentPlatforms(0)]으로 선언되어 플랫폼 제한이 없으며, Windows, macOS, Linux, iOS, Android를 포함해 sgc HTTP 스택이 동작하는 모든 곳에서 실행됩니다. |
| 포함된 런타임 | sgcWebSockets Core 런타임이 포함되어 있으므로, HTTP 클라이언트 스택, JSON 레이어, MCP 서버 API 뒤의 HTTP 서버에 별도 라이선스가 필요하지 않습니다. |
| TLS | sgcWebSockets 설정에 따라 모든 공급자 호출에 OpenSSL 또는 SChannel을 사용합니다. |
| 소스 코드 | 모든 유료 등급에 전체 Object Pascal 소스가 제공됩니다. |
| 재배포 | 빌드한 바이너리는 로열티가 없으며, 좌석당 또는 서버당 런타임 비용이 없습니다. |