sgcChat 기능 비교표
sgcChat가 하는 모든 일을 작업별로 묶어 정리했어요. sgcChat는 sgcUI Enterprise와 All-Access의 일부이며, 모든 기능이 모든 라이선스에 포함되고, Community 에디션은 없어요.
sgcChat가 하는 모든 일을 작업별로 묶어 정리했어요. sgcChat는 sgcUI Enterprise와 All-Access의 일부이며, 모든 기능이 모든 라이선스에 포함되고, Community 에디션은 없어요.
컨트롤 4개
기능 6개
기능 6개
기능 6개
기능 6개
기능 4개
SVG 및 PNG
Delphi, C++ Builder, .NET
| 컨트롤 | 상세 |
|---|---|
| 채팅 패널 | TsgcVCLChatPanel과 TsgcFMXChatPanel은 제목, 아바타, 접속 상태가 있는 헤더, 채팅 뷰, 채팅 입력을 하나로 합쳐요. 어시스턴트에는 AI를, 팀 채팅에는 Transport를 설정하면 패널이 이를 통해 전송, 중지, 다시 생성, 편집, 삭제, 반응을 처리해요. |
| 채팅 뷰 | TsgcVCLChatView와 TsgcFMXChatView는 TsgcChatConversation을 메시지 말풍선으로 보여 줘요. |
| 채팅 입력 | TsgcVCLChatInput과 TsgcFMXChatInput: 첨부 버튼과, 답변이 스트리밍되는 동안 중지 버튼으로 바뀌는 보내기 버튼이 있는 여러 줄 입력란. |
| Markdown 뷰어 | TsgcVCLMarkdownViewer와 TsgcFMXMarkdownViewer는 대화 없이 Markdown만 단독으로 보여 줘요. |
| 기능 | 상세 |
|---|---|
| Markdown | 제목, 강조, 코드 스팬, 인용, 중첩 목록, 작업 목록, 링크, 이미지, 표를 sgcRichEdit의 Markdown 엔진이 읽어요. |
| 코드 블록 | Pascal, C#, C++, C, JavaScript, TypeScript, Python, JSON, SQL, XML, HTML, Bash 구문 강조를 지원하며 모든 블록에 복사 버튼이 있어요. |
| 스트리밍 | AppendMarkdown은 도착하는 대로 텍스트를 추가하고 Flush는 대기 중인 텍스트를 한 번에 보여 줘요. 아직 닫히지 않은 코드 블록이나 표도 커지는 대로 표시돼요. |
| 선택과 클립보드 | 마우스나 키보드로 선택하고, Ctrl+C로 복사하며, 복사와 모두 선택이 있는 컨텍스트 메뉴를 제공해요. |
| 링크와 이미지 | OnLinkClick 이벤트가 링크로 무엇을 열지 결정하고, OnGetImage 이벤트가 이미지를 제공해요. |
| 테마 | 텍스트, 링크, 코드 블록, 인용의 색상은 sgcUI 테마에서 가져와요. |
| 기능 | 상세 |
|---|---|
| 메시지 말풍선 | 자신의 메시지는 한쪽에, 다른 사람의 메시지는 반대쪽에 표시되며 아바타, 작성자 이름, 시간, 상태 체크 표시, 날짜 구분선이 있어요. 한 작성자의 연속된 메시지는 묶여요. |
| 옵션 | ShowAvatars, ShowTimestamps, ShowStatus, GroupMessages, ShowDateSeparators, BubbleMaxWidthPercent. |
| 메시지 동작 | 복사, 답장, 편집, 다시 생성, 삭제이며 OnMessageAction 이벤트로 알려 줘요. |
| 긴 대화 | 보이는 메시지만 측정하고 각 메시지의 레이아웃을 캐시하므로 긴 대화도 부드럽게 스크롤돼요. |
| 스크롤 | 답변이 스트리밍되는 동안 사용자가 위로 스크롤하지 않았다면 뷰는 맨 아래에 머물고, 위로 스크롤한 경우에는 새 메시지가 도착했음을 알리는 알약 모양 표시가 나타나요. |
| 입력 | Enter는 전송하고 Shift+Enter는 새 줄을 시작하며, 설정할 수 있어요. 대기 중인 첨부 파일은 칩으로 표시되고, 입력란이 비어 있으면 자리 표시 텍스트가 표시돼요. |
| 기능 | 상세 |
|---|---|
| AI 바인딩 | TsgcChatAI는 SystemPrompt, Model, MaxHistory와 OnBeforeSend, OnAnswer, OnError, OnToolCall 이벤트로 대화를 프로바이더에 연결해요. |
| 스트리밍 | 프로바이더는 작업 스레드에서 실행되며, 답변의 각 조각은 메인 스레드에서 서식이 적용된 Markdown으로 표시돼요. |
| 중지, 다시 생성, 편집 후 다시 보내기 | Stop은 진행 중인 답변을 끝내고, Regenerate는 다시 질문하며, EditAndResend는 질문을 바꿔 그 시점부터 다시 질문해요. |
| 도구 호출 | 도구 이름, 인수, 결과, 실행 중, 완료, 오류 상태를 보여 주는 도구 호출 카드이며, 사용자는 각 카드를 펼치고 접을 수 있어요. |
| 프로바이더 | sgcWebSockets의 TsgcAIChat(OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok, Mistral)을 사용하는 TsgcChatAIProvider_AIChat, sgcUI AI 프로바이더 계층을 사용하는 TsgcChatAIProvider_UICore, 자체 백엔드를 위한 TsgcChatAIEventProvider. |
| 기록 | SaveToJSON, LoadFromJSON, SaveToFile, LoadFromFile이 세션 사이에 대화를 유지해요. |
| 기능 | 상세 |
|---|---|
| 사용자와 아바타 | 각 사용자는 이름, 이니셜 또는 아바타 이미지, 색상을 가져요. |
| 접속 상태 | 온라인, 자리 비움, 다른 용무 중, 오프라인이 아바타의 점과 패널 헤더에 표시돼요. |
| 입력 중 표시 | 사용자 이름이 포함된 입력 중 표시이며, 입력 상태 변경을 더 이상 보내지 않는 사용자는 TypingTimeout 후에 지워져요. |
| 읽음 확인 | 전송 중, 보냄, 전달됨, 읽음, 실패 상태를 표시하고, 그룹 대화에서는 메시지를 읽은 사용자 수를 표시해요. |
| 반응과 답장 | 이모지별 개수가 표시되는 이모지 반응과, 원본 메시지를 인용하는 답장. |
| 첨부 파일, 편집, 삭제 | 이미지 미리보기와 파일 칩, 편집됨으로 표시되는 편집된 메시지, 삭제된 메시지. |
| 기능 | 상세 |
|---|---|
| 이벤트 트랜스포트 | TsgcChatEventTransport는 메시지, 입력 상태 변경, 읽음 확인, 반응, 접속 상태, 편집, 삭제를 여러분의 코드에 전달하며 어떤 백엔드에서도 사용할 수 있어요. |
| 와이어 형식 | 이벤트마다 문서화된 JSON 프레임을 사용하며 확인 응답, 재시도, 중복 감지를 지원해요. 변경 사항은 메인 스레드에서 대화에 적용돼요. |
| WebSocket 클라이언트 | TsgcChatTransport_WebSocket은 sgcWebSockets의 TsgcWebSocketClient를 통해 대화를 채널에 연결해요. |
| 중계 서버 | TsgcChatServer_WebSocket은 TsgcWebSocketServer를 통해 채널의 클라이언트 간에 메시지를 중계하고, 각 사용자의 접속 상태를 유지하며, 나중에 참여하는 사용자에게 최근 메시지를 보내 줘요. |
| 기능 | 상세 |
|---|---|
| 테마 | 다른 sgcUI 제품과 공유하는 sgcUI의 라이트, 다크, Fluent 테마. |
| 오른쪽에서 왼쪽 쓰기 | 아랍어와 히브리어 대화는 좌우가 반전되어 자신의 메시지가 왼쪽에 표시돼요. |
| 현지화 | 컨트롤 문구를 12개 언어로 제공해요: 영어, 스페인어, 독일어, 프랑스어, 이탈리아어, 포르투갈어(브라질), 네덜란드어, 폴란드어, 터키어, 일본어, 한국어, 중국어. |
| 접근성 | Windows에서 UI Automation은 채팅 뷰를 작성자와 시간이 포함된 메시지 목록으로, Markdown 뷰어를 텍스트가 있는 문서로, 입력란을 편집 상자로 노출해요. |
| 기능 | 상세 |
|---|---|
| 창이 필요 없음 | TsgcChatMarkdownDocument와 TsgcChatViewCore는 VCL이나 FireMonkey 없이 Markdown 문서나 대화를 레이아웃하고 그려요. |
| SVG 및 PNG | sgcUI SVG 캔버스나 래스터 캔버스에 그려서 SVG 또는 PNG 파일로 저장해요. sgcChat 제품 페이지의 이미지도 이렇게 만들었어요. |
| Linux64 | 프레임워크 독립 유닛은 Delphi 10.2 이상에서 Linux64용으로 컴파일돼요. |
| 대상 | 컴포넌트 | 버전 |
|---|---|---|
| VCL | TsgcVCLChatPanel, TsgcVCLChatView, TsgcVCLChatInput, TsgcVCLMarkdownViewer | Delphi 7 to 13, C++ Builder 2007 to 13 |
| FireMonkey | TsgcFMXChatPanel, TsgcFMXChatView, TsgcFMXChatInput, TsgcFMXMarkdownViewer | Delphi 및 C++ Builder XE6 이상 |
| Linux64 | 모델, Markdown 문서, 뷰, AI 및 트랜스포트 코어, SVG 및 PNG 출력 | Delphi 10.2 이상 |
| sgcWebSockets 브리지 | TsgcChatAIProvider_AIChat, TsgcChatTransport_WebSocket, TsgcChatServer_WebSocket | sgcWebSockets가 지원하는 모든 Delphi 버전 |
| WinForms | TsgcWinFormsChatPanel 및 기타 WinForms 컨트롤 | Windows의 .NET Framework 4.7.2, .NET 8, 9, 10 |
| WPF | TsgcWpfChatPanel 및 기타 WPF 컨트롤 | Windows의 .NET Framework 4.7.2, .NET 8, 9, 10 |
| Avalonia | TsgcAvaloniaChatPanel 및 기타 Avalonia 컨트롤 | .NET 8, 9, 10 |
클래스와 멤버 이름이 같은 C# 포트예요. 패키지는 Registered 전용이며 nuget.org에는 게시되지 않아요.
| 패키지 | 에디션 | 내용 |
|---|---|---|
esegece.sgcChat | Registered | 대화 모델, Markdown 문서, 뷰 및 입력 코어, AI 바인딩, 트랜스포트, SVG 출력 |
esegece.sgcChat.Rendering | Registered | 컨트롤의 렌더링 계층과 PNG 출력 |
esegece.sgcChat.WinForms | Registered | Windows Forms 컨트롤 |
esegece.sgcChat.Wpf | Registered | WPF 컨트롤 |
esegece.sgcChat.Avalonia | Registered | Avalonia 컨트롤 |
esegece.sgcChat.sgcWebSockets | Registered | sgcWebSockets .NET 기반 AI 프로바이더, WebSocket 트랜스포트, 중계 서버 |
sgcChat는 개발 환경마다 하나씩 빌드된 sgcUI 도움말에 설명되어 있어요.