From 0e598d595e05def8ab25ef9f0327e649feb2c379 Mon Sep 17 00:00:00 2001 From: Michael Schimmel Date: Tue, 10 Jun 2025 17:08:09 +0200 Subject: [PATCH] =?UTF-8?q?Test-Apps=20f=C3=BCr=20Gemini=20Api=20und=20Blo?= =?UTF-8?q?ckly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blockly/blockly_human_test.html | 108 +++ GoogleGeminiAccess/ApiKey.pas | 9 + GoogleGeminiAccess/GeminiAccess.dpr | 16 + GoogleGeminiAccess/GeminiAccess.dproj | 1130 +++++++++++++++++++++++++ GoogleGeminiAccess/GeminiAccess.res | Bin 0 -> 154816 bytes GoogleGeminiAccess/MainUnit.dfm | 52 ++ GoogleGeminiAccess/MainUnit.pas | 204 +++++ Src/Myc.Trade.DataStream.pas | 71 +- 8 files changed, 1555 insertions(+), 35 deletions(-) create mode 100644 Blockly/blockly_human_test.html create mode 100644 GoogleGeminiAccess/ApiKey.pas create mode 100644 GoogleGeminiAccess/GeminiAccess.dpr create mode 100644 GoogleGeminiAccess/GeminiAccess.dproj create mode 100644 GoogleGeminiAccess/GeminiAccess.res create mode 100644 GoogleGeminiAccess/MainUnit.dfm create mode 100644 GoogleGeminiAccess/MainUnit.pas diff --git a/Blockly/blockly_human_test.html b/Blockly/blockly_human_test.html new file mode 100644 index 0000000..abb91e7 --- /dev/null +++ b/Blockly/blockly_human_test.html @@ -0,0 +1,108 @@ + + + + + Blockly zu Umgangssprache - Mit Schleifen & Zählern + + + + +

Mein "Umgangssprache"-Generator

+

Bauen Sie links Ihre Blöcke. Rechts erscheint die textliche Beschreibung.

+ +
+ + +
+ +
+
+
+

Erzeugter Text:

+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/GoogleGeminiAccess/ApiKey.pas b/GoogleGeminiAccess/ApiKey.pas new file mode 100644 index 0000000..699e5ae --- /dev/null +++ b/GoogleGeminiAccess/ApiKey.pas @@ -0,0 +1,9 @@ +unit ApiKey; + +interface + +const Value = 'AIzaSyALccoMxn0_wcHswavhu5rzdglLeH6gVlI'; + +implementation + +end. diff --git a/GoogleGeminiAccess/GeminiAccess.dpr b/GoogleGeminiAccess/GeminiAccess.dpr new file mode 100644 index 0000000..6212a23 --- /dev/null +++ b/GoogleGeminiAccess/GeminiAccess.dpr @@ -0,0 +1,16 @@ +program GeminiAccess; + +uses + FastMM5, + Vcl.Forms, + MainUnit in 'MainUnit.pas' {Form1}, + ApiKey in 'ApiKey.pas'; + +{$R *.res} + +begin + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. diff --git a/GoogleGeminiAccess/GeminiAccess.dproj b/GoogleGeminiAccess/GeminiAccess.dproj new file mode 100644 index 0000000..92536ab --- /dev/null +++ b/GoogleGeminiAccess/GeminiAccess.dproj @@ -0,0 +1,1130 @@ + + + {B5DEDC9F-4F29-41B9-97D4-2AB0ABC43DC1} + 20.3 + VCL + True + Debug + Win64 + GeminiAccess + 3 + Application + GeminiAccess.dpr + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + GeminiAccess + T:\Myc\Src;$(DCC_UnitSearchPath) + 1031 + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + + + vclwinx;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;FireDACCommonODBC;FireDACCommonDriver;IndyProtocols;vclx;Skia.Package.RTL;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;bindcompfmx;inetdb;FireDACSqliteDriver;DbxClientDriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;DBXMySQLDriver;VclSmp;inet;vcltouch;fmxase;dbrtl;Skia.Package.FMX;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;vcldsnap;DBXInterBaseDriver;IndySystem;Skia.Package.VCL;vcldb;vclFireDAC;bindcomp;FireDACCommon;inetstn;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;adortl;vclimg;FireDACPgDriver;FireDAC;inetdbxpress;xmlrtl;tethering;bindcompvcl;dsnap;CloudService;fmxobj;bindcompvclsmp;FMXTee;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + + + vclwinx;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;FireDACCommonODBC;FireDACCommonDriver;IndyProtocols;vclx;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;bindcompfmx;inetdb;FireDACSqliteDriver;DbxClientDriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;DBXMySQLDriver;VclSmp;inet;vcltouch;fmxase;dbrtl;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;vcldsnap;DBXInterBaseDriver;IndySystem;Skia.Package.VCL;vcldb;vclFireDAC;bindcomp;FireDACCommon;inetstn;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;adortl;vclimg;FireDACPgDriver;FireDAC;inetdbxpress;xmlrtl;tethering;bindcompvcl;dsnap;CloudService;fmxobj;bindcompvclsmp;FMXTee;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + + + DEBUG;$(DCC_Define) + true + false + true + true + true + true + true + + + false + PerMonitorV2 + + + PerMonitorV2 + true + 1033 + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + PerMonitorV2 + + + PerMonitorV2 + + + + MainSource + + +
Form1
+
+ + + Base + + + Cfg_1 + Base + + + Cfg_2 + Base + +
+ + Delphi.Personality.12 + Application + + + + GeminiAccess.dpr + + + + + + GeminiAccess.exe + true + + + + + GeminiAccess.rsm + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v21 + 1 + + + res\drawable-anydpi-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values-v31 + 1 + + + res\values-v31 + 1 + + + + + res\values-v35 + 1 + + + res\values-v35 + 1 + + + + + res\drawable-anydpi-v26 + 1 + + + res\drawable-anydpi-v26 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v33 + 1 + + + res\drawable-anydpi-v33 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-night-v21 + 1 + + + res\values-night-v21 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable-anydpi-v24 + 1 + + + res\drawable-anydpi-v24 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-night-anydpi-v21 + 1 + + + res\drawable-night-anydpi-v21 + 1 + + + + + res\drawable-anydpi-v31 + 1 + + + res\drawable-anydpi-v31 + 1 + + + + + res\drawable-night-anydpi-v31 + 1 + + + res\drawable-night-anydpi-v31 + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + + + + + + + + + + + + + True + True + + + 12 + + + + +
diff --git a/GoogleGeminiAccess/GeminiAccess.res b/GoogleGeminiAccess/GeminiAccess.res new file mode 100644 index 0000000000000000000000000000000000000000..ca976d874d2a0f6b7d96662dc5c367ad0abe49d9 GIT binary patch literal 154816 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 literal 0 HcmV?d00001 diff --git a/GoogleGeminiAccess/MainUnit.dfm b/GoogleGeminiAccess/MainUnit.dfm new file mode 100644 index 0000000..1c10b26 --- /dev/null +++ b/GoogleGeminiAccess/MainUnit.dfm @@ -0,0 +1,52 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + Caption = 'Form1' + ClientHeight = 1011 + ClientWidth = 1105 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Segoe UI' + Font.Style = [] + OnCreate = FormCreate + OnDestroy = FormDestroy + DesignSize = ( + 1105 + 1011) + TextHeight = 15 + object AnswerMemo: TMemo + Left = 0 + Top = 0 + Width = 1105 + Height = 809 + Anchors = [akLeft, akTop, akRight, akBottom] + ScrollBars = ssVertical + TabOrder = 0 + end + object ExecButton: TButton + Left = 992 + Top = 928 + Width = 75 + Height = 25 + Anchors = [akRight, akBottom] + Caption = 'Execute' + TabOrder = 1 + OnClick = ExecButtonClick + end + object PromptMemo: TMemo + Left = 0 + Top = 815 + Width = 1105 + Height = 89 + Anchors = [akLeft, akRight, akBottom] + ScrollBars = ssVertical + TabOrder = 2 + end + object ApplicationEvents: TApplicationEvents + OnIdle = ApplicationEventsIdle + Left = 136 + Top = 104 + end +end diff --git a/GoogleGeminiAccess/MainUnit.pas b/GoogleGeminiAccess/MainUnit.pas new file mode 100644 index 0000000..654426c --- /dev/null +++ b/GoogleGeminiAccess/MainUnit.pas @@ -0,0 +1,204 @@ +unit MainUnit; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, + System.Net.HttpClient, System.Net.HttpClientComponent, System.JSON, System.Net.Mime, Vcl.AppEvnts, + Myc.Futures, System.Generics.Collections, ApiKey; + +type + // NEU: Ein Record, um einen einzelnen Redebeitrag in der Konversation zu speichern + TChatTurn = record + Role: string; // 'user' oder 'model' + Text: string; + end; + + TForm1 = class(TForm) + AnswerMemo: TMemo; + ExecButton: TButton; + ApplicationEvents: TApplicationEvents; + PromptMemo: TMemo; + procedure ExecButtonClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure ApplicationEventsIdle(Sender: TObject; var Done: Boolean); + private + FHttpClient: TNetHTTPClient; + FMyApiKey: string; + FAnswer: TFuture; + FChatHistory: TList; // NEU: Liste für den Konversationsverlauf + procedure SendPrompt; + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.dfm} + +const + GEMINI_MODEL = 'gemini-2.5-flash-preview-05-20'; + API_BASE_URL = 'https://generativelanguage.googleapis.com/v1beta/models/'; + +{ TForm1 } + +procedure TForm1.FormCreate(Sender: TObject); +begin + FHttpClient := TNetHTTPClient.Create(nil); + FMyApiKey := ApiKey.Value; // Eingelesen aus ApiKey.pas + + // NEU: Initialisiert die Liste für den Konversationsverlauf + FChatHistory := TList.Create; + + // Optional: Füge hier einen initialen System-Prompt hinzu, wenn gewünscht. + // Dieser wird dann immer als erste Nachricht mitgesendet. + // var initialTurn: TChatTurn; + // initialTurn.Role := 'user'; + // initialTurn.Text := 'Du bist ein Delphi-Entwicklungs-Assistent...'; + // FChatHistory.Add(initialTurn); +end; + +procedure TForm1.FormDestroy(Sender: TObject); +begin + FAnswer.WaitFor; + FHttpClient.Free; + FChatHistory.Free; // NEU: Gibt die Verlaufsliste frei +end; + +procedure TForm1.ApplicationEventsIdle(Sender: TObject; var Done: Boolean); +var + answerText: string; + modelTurn: TChatTurn; +begin + if FAnswer.Done.IsSet and not ExecButton.Enabled then + begin + answerText := FAnswer.Value; + AnswerMemo.Lines.Add(answerText); + + // NEU: Füge die Antwort des Modells zum Verlauf hinzu + if not answerText.StartsWith('Fehler!') then + begin + modelTurn.Role := 'model'; + modelTurn.Text := answerText; + FChatHistory.Add(modelTurn); + end; + + FAnswer := FAnswer.Null; + ExecButton.Enabled := True; + end; +end; + +procedure TForm1.ExecButtonClick(Sender: TObject); +begin + SendPrompt; +end; + +procedure TForm1.SendPrompt; +var + userPrompt: string; + userTurn: TChatTurn; +begin + if not ExecButton.Enabled then + Exit; + + userPrompt := PromptMemo.Lines.Text; + if userPrompt.IsEmpty then + begin + ShowMessage('Bitte geben Sie einen Prompt ein.'); + Exit; + end; + + // NEU: Füge die aktuelle Benutzereingabe zum Verlauf hinzu + userTurn.Role := 'user'; + userTurn.Text := userPrompt; + FChatHistory.Add(userTurn); + + // NEU: Leere das Eingabefeld für die nächste Nachricht + PromptMemo.Clear; + + ExecButton.Enabled := False; + AnswerMemo.Lines.Add(''); + AnswerMemo.Lines.Add('--- [USER] ---'); + AnswerMemo.Lines.Add(userPrompt); + AnswerMemo.Lines.Add('... sende Anfrage an Gemini ...'); + + FAnswer := TFuture.Construct( + function: string + var + jsonRequest: TJSONObject; + jsonContents: TJSONArray; + requestBody: TStringStream; + response: IHTTPResponse; + responseJson: TJSONValue; + apiUrl: string; + turn: TChatTurn; + begin + try + // 1. JSON-Body aus dem gesamten Konversationsverlauf erstellen + jsonRequest := TJSONObject.Create; + try + jsonContents := TJSONArray.Create; + jsonRequest.AddPair('contents', jsonContents); + + // NEU: Iteriere durch den Verlauf und baue die JSON-Struktur auf + for turn in FChatHistory do + begin + var jsonTurn := TJSONObject.Create; + jsonTurn.AddPair('role', TJSONString.Create(turn.Role)); + + var jsonParts := TJSONArray.Create; + jsonTurn.AddPair('parts', jsonParts); + + var jsonText := TJSONObject.Create; + jsonText.AddPair('text', TJSONString.Create(turn.Text)); + jsonParts.Add(jsonText); + + jsonContents.Add(jsonTurn); + end; + + // 2. Request senden + requestBody := TStringStream.Create(jsonRequest.ToString, TEncoding.UTF8); + try + apiUrl := API_BASE_URL + GEMINI_MODEL + ':generateContent?key=' + FMyApiKey; + response := FHttpClient.Post(apiUrl, requestBody, nil); + + // 3. Antwort verarbeiten + if (response.StatusCode = 200) then + begin + responseJson := TJSONObject.ParseJSONValue(response.ContentAsString(TEncoding.UTF8)); + try + Result := responseJson.GetValue('candidates') + .Items[0].GetValue('content') + .GetValue('parts') + .Items[0].GetValue('text'); + finally + responseJson.Free; + end; + end + else + begin + Result := 'Fehler! Status: ' + response.StatusCode.ToString + ' - ' + response.StatusText + + sLineBreak + response.ContentAsString; + end; + finally + requestBody.Free; + end; + finally + jsonRequest.Free; + end; + except + on E: Exception do + begin + Result := '--- FEHLER IM TASK ---' + sLineBreak + E.Message; + end; + end; + end); +end; + +end. + diff --git a/Src/Myc.Trade.DataStream.pas b/Src/Myc.Trade.DataStream.pas index ba582f2..3959b46 100644 --- a/Src/Myc.Trade.DataStream.pas +++ b/Src/Myc.Trade.DataStream.pas @@ -5,7 +5,7 @@ unit Myc.Trade.DataStream; Provides a data server for loading time-series data and streaming it. This unit contains the core components for handling historical data: - - TDataRecord: A generic record for a single time-stamped data entry. + - TAuraFileDataRecord: A generic record for a single time-stamped data entry. - IDataServer/TAuraDataServer: A server component responsible for loading and caching series of data files from disk. Each server instance manages its own cache, but all instances share a central load gate. @@ -29,11 +29,6 @@ uses Myc.Trade.DataPoint; type - // A generic record for a single time-stamped data entry. - TDataRecord = packed record - TimeStamp: TDateTime; - Data: T; - end; // Represents a generic data stream capable of providing sequential data chunks. IDataStream = interface @@ -69,10 +64,16 @@ type procedure ClearCache; end; + // A generic record for a single time-stamped data entry. + TAuraFileDataRecord = packed record + TimeStamp: TDateTime; + Data: T; + end; + IAuraDataServer = interface(IDataServer) ['{481E27DE-DC58-49AF-B8A8-B6316980C423}'] - function LoadDataFile(const FileName: string): TFuture>>; - function LoadDataSeries(const FileName: string): TFuture>>; + function LoadDataFile(const FileName: string): TFuture>>; + function LoadDataSeries(const FileName: string): TFuture>>; function EnumerateAssetFiles: TArray; end; @@ -87,7 +88,7 @@ type Name: String; Age: TDateTime; LastUsed: TDateTime; - Data: TFuture>>; + Data: TFuture>>; end; private // The cache is per-instance. @@ -101,8 +102,8 @@ type FLoadGate: TLatch; protected - class function ReadCompressedData(const InputStream: TStream): TArray>; static; - class function ReadUncompressedData(const InputStream: TStream): TArray>; static; + class function ReadCompressedData(const InputStream: TStream): TArray>; static; + class function ReadUncompressedData(const InputStream: TStream): TArray>; static; public constructor Create(const APath: String); @@ -123,8 +124,8 @@ type procedure ClearCache; function EnumerateAssetFiles: TArray; - function LoadDataFile(const FileName: string): TFuture>>; - function LoadDataSeries(const FileName: string): TFuture>>; + function LoadDataFile(const FileName: string): TFuture>>; + function LoadDataSeries(const FileName: string): TFuture>>; property Path: String read GetPath; end; @@ -135,9 +136,9 @@ type FDataServer: TAuraDataServer; FIsLiveData: TMutable.IWriteable; FCurrentFileName: string; - FCurrentData: TFuture>>; + FCurrentData: TFuture>>; FNextFileName: string; - FNextData: TFuture>>; + FNextData: TFuture>>; FCurrPosInFile: Int64; FCurrentIdx: Int64; FLastTimeStamp: TDateTime; @@ -314,12 +315,12 @@ begin Result := FPath; end; -function TAuraDataServer.LoadDataFile(const FileName: string): TFuture>>; +function TAuraDataServer.LoadDataFile(const FileName: string): TFuture>>; var parsedPath, parsedSymbol: string; parsedYear, parsedMonth: Integer; begin - Result := TFuture>>.Null; + Result := TFuture>>.Null; if not TryParseFileName(FileName, parsedPath, parsedSymbol, parsedYear, parsedMonth) then exit; @@ -368,8 +369,8 @@ begin .Construct( TLatch.Enqueue(FLoadGate), // Use shared class var FLoadGate function: TBytes begin Result := TFile.ReadAllBytes(capFileName); end) - .Chain>>( - function(bytes: TBytes): TArray> + .Chain>>( + function(bytes: TBytes): TArray> begin var zipMemoryStream := TBytesStream.Create(bytes); try @@ -383,9 +384,9 @@ begin else if TFile.Exists(FileName) then begin Result := - TFuture>>.Construct( + TFuture>>.Construct( TLatch.Enqueue(FLoadGate), // Use shared class var FLoadGate - function: TArray> + function: TArray> begin if TFile.Exists(capFileName) then begin @@ -418,11 +419,11 @@ begin end; end; -function TAuraDataServer.LoadDataSeries(const FileName: string): TFuture>>; +function TAuraDataServer.LoadDataSeries(const FileName: string): TFuture>>; var loadedState: TState; - loadedFiles: TArray>>>; - liveData: TFuture>>; + loadedFiles: TArray>>>; + liveData: TFuture>>; tabFiles: TList; currentFile: string; liveFilePath: string; @@ -452,7 +453,7 @@ begin end; end; - var loadedFileList := TList>>>.Create; + var loadedFileList := TList>>>.Create; var loadStates := TList.Create; try for currentFile in tabFiles do @@ -462,7 +463,7 @@ begin loadStates.Add(data.Done); end; - liveData := TFuture>>.Null; + liveData := TFuture>>.Null; if liveFilePath <> '' then begin liveData := LoadDataFile(liveFilePath); @@ -481,11 +482,11 @@ begin end; Result := - TFuture>>.Construct( + TFuture>>.Construct( loadedState, - function: TArray> + function: TArray> begin - var tickList := TList>.Create; + var tickList := TList>.Create; try var overallLastTabTickTime: TDateTime := 0; var cnt := 0; @@ -508,7 +509,7 @@ begin ); end; -class function TAuraDataServer.ReadCompressedData(const InputStream: TStream): TArray>; +class function TAuraDataServer.ReadCompressedData(const InputStream: TStream): TArray>; var decompressionStream: TStream; localHeader: TZipHeader; @@ -547,7 +548,7 @@ begin end; end; -class function TAuraDataServer.ReadUncompressedData(const InputStream: TStream): TArray>; +class function TAuraDataServer.ReadUncompressedData(const InputStream: TStream): TArray>; var fileSize: Int64; recordCount, bytesRead: Integer; @@ -555,10 +556,10 @@ begin SetLength(Result, 0); InputStream.Position := 0; fileSize := InputStream.Size; - if (fileSize = 0) or ((fileSize mod SizeOf(TDataRecord)) <> 0) then + if (fileSize = 0) or ((fileSize mod SizeOf(TAuraFileDataRecord)) <> 0) then exit; - recordCount := fileSize div SizeOf(TDataRecord); + recordCount := fileSize div SizeOf(TAuraFileDataRecord); if recordCount > 0 then begin SetLength(Result, recordCount); @@ -596,8 +597,8 @@ end; function TAuraFileStream.GetChunk(var Data: array of TDataPoint): Integer; var - item: TDataRecord; - currData: TArray>; + item: TAuraFileDataRecord; + currData: TArray>; begin Result := 0; if not FCurrentData.Done.IsSet then