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.SystemMessage := 'You are a Delphi expert. Answer in one paragraph.';
vAnswer := oChat.Chat('How do I keep a WebSocket connection alive?');
oChat.Provider := aicpOpenAI;
oChat.ChatOptions.ApiKey := 'sk-...';
oChat.ChatOptions.Model := 'gpt-4o';
vAnswer := oChat.Chat('Same question, different model.');
end;
TsgcAIChat *oChat = new TsgcAIChat(NULL);
oChat->Provider = aicpAnthropic;
oChat->ChatOptions->ApiKey = "sk-ant-...";
oChat->ChatOptions->Model = "claude-sonnet-4-5";
oChat->SystemMessage = "You are a Delphi expert. Answer in one paragraph.";
String vAnswer = oChat->Chat("How do I keep a WebSocket connection alive?");
oChat->Provider = aicpOpenAI;
oChat->ChatOptions->ApiKey = "sk-...";
oChat->ChatOptions->Model = "gpt-4o";
vAnswer = oChat->Chat("Same question, different model.");
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;
end;
uses
sgcHTTP_API_Anthropic;
procedure TForm1.Ask;
begin
FClaude := TsgcHTTP_API_Anthropic.Create(nil);
FClaude.AnthropicOptions.ApiKey := 'sk-ant-...';
FClaude.AnthropicOptions.AnthropicVersion := '2023-06-01';
FClaude.OnHTTPAPISSE := OnDelta;
FClaude._CreateMessageStream('claude-3-5-sonnet-latest',
'Summarise order 10248 for the customer.', 1024);
end;
procedure TForm1.OnDelta(Sender: TObject; const aEvent, aData: string;
var Cancel: Boolean);
begin
Memo1.Text := Memo1.Text + aData;
end;
using esegece.sgcWebSockets;
var claude = new TsgcHTTPAPI_Anthropic();
claude.AnthropicOptions.ApiKey = "sk-ant-...";
claude.AnthropicOptions.AnthropicVersion = "2023-06-01";
Console.Write(claude._CreateMessageStream("claude-3-5-sonnet-latest",
"Summarise order 10248 for the customer.", 1024));
uses
sgcAI, sgcAI_MCP_Classes, sgcAI_MCP_Types;
var
oMCP: TsgcWSAPIClient_MCP;
begin
oMCP := TsgcWSAPIClient_MCP.Create(nil);
oMCP.MCPOptions.Transport := aimcptrHttpStreamable;
oMCP.MCPOptions.HttpOptions.URL := 'https://mcp.example.com/mcp';
oMCP.MCPOptions.ClientInfo.Name := 'sgc-mcp-client';
oMCP.MCPOptions.ClientInfo.Version := '1.0.0';
oMCP.OnMCPListTools := MCPListTools;
oMCP.OnMCPResponseTool := MCPToolResponse;
oMCP.Initialize;
oMCP.ListTools;
oMCP.RequestTool('GetTemperature', vArguments);
end;
oMCP.MCPOptions.Transport := aimcptrStdio;
oMCP.MCPOptions.StdioOptions.Command := 'C:\tools\my-mcp-server.exe';
oMCP.MCPOptions.StdioOptions.Arguments := '--stdio';