Skip to content

Commit 26bebbc

Browse files
committed
refactor/2024-08-30-0124
1 parent 6d328c0 commit 26bebbc

9 files changed

+59
-34
lines changed

Package/DelphiAIDeveloper.dpk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ contains
5757
DelphiAIDev.Test in '..\Src\Test\DelphiAIDev.Test.pas',
5858
DelphiAIDev.Settings.View in '..\Src\Settings\DelphiAIDev.Settings.View.pas' {DelphiAIDevSettingsView},
5959
DelphiAIDev.Settings in '..\Src\Settings\DelphiAIDev.Settings.pas',
60-
DelphiAIDev.Chat in '..\Src\Chat\DelphiAIDev.Chat.pas',
60+
DelphiAIDev.AI in '..\Src\AI\DelphiAIDev.AI.pas',
6161
DelphiAIDev.Chat.View in '..\Src\Chat\DelphiAIDev.Chat.View.pas' {DelphiAIDevChatView},
6262
DelphiAIDev.Chat.ProcessResponse in '..\Src\Chat\DelphiAIDev.Chat.ProcessResponse.pas',
6363
DelphiAIDev.AI.Gemini in '..\Src\AI\DelphiAIDev.AI.Gemini.pas',

Package/DelphiAIDeveloper.dproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@
154154
<Form>DelphiAIDevSettingsView</Form>
155155
</DCCReference>
156156
<DCCReference Include="..\Src\Settings\DelphiAIDev.Settings.pas"/>
157-
<DCCReference Include="..\Src\Chat\DelphiAIDev.Chat.pas"/>
157+
<DCCReference Include="..\Src\AI\DelphiAIDev.AI.pas"/>
158158
<DCCReference Include="..\Src\Chat\DelphiAIDev.Chat.View.pas">
159159
<Form>DelphiAIDevChatView</Form>
160160
</DCCReference>

Src/Chat/DelphiAIDev.Chat.pas renamed to Src/AI/DelphiAIDev.AI.pas

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
unit DelphiAIDev.Chat;
1+
unit DelphiAIDev.AI;
22

33
interface
44

@@ -14,40 +14,50 @@ interface
1414
DelphiAIDev.AI.Ollama;
1515

1616
type
17-
TDelphiAIDevChat = class
17+
TDelphiAIDevAI = class
1818
private
19+
FAiUse: TC4DAiAvailable;
1920
FSettings: TDelphiAIDevSettings;
2021
FResponse: TStrings;
2122
public
2223
constructor Create;
2324
destructor Destroy; override;
25+
function AiUse(const Value: TC4DAiAvailable): TDelphiAIDevAI;
2426
procedure ProcessSend(const AQuestion: string);
2527
function Response: TStrings;
2628
end;
2729

2830
implementation
2931

30-
constructor TDelphiAIDevChat.Create;
32+
constructor TDelphiAIDevAI.Create;
3133
begin
3234
FSettings := TDelphiAIDevSettings.GetInstance;
3335
FSettings.LoadData;
36+
FAiUse := FSettings.AIDefault;
3437
FResponse := TStringList.Create;
3538
end;
3639

37-
destructor TDelphiAIDevChat.Destroy;
40+
destructor TDelphiAIDevAI.Destroy;
3841
begin
3942
FResponse.Free;
4043
inherited;
4144
end;
4245

43-
procedure TDelphiAIDevChat.ProcessSend(const AQuestion: string);
46+
function TDelphiAIDevAI.AiUse(const Value: TC4DAiAvailable): TDelphiAIDevAI;
47+
begin
48+
Result := Self;
49+
FAiUse := Value;
50+
end;
51+
52+
procedure TDelphiAIDevAI.ProcessSend(const AQuestion: string);
4453
var
4554
LQuestion: string;
4655
begin
4756
LQuestion := TUtils.AdjustQuestionToJson(AQuestion);
4857
FResponse.Clear;
4958

50-
case FSettings.AIDefault of
59+
TUtils.ShowMsgSynchronize(FAiUse.ToString);
60+
case FAiUse of
5161
TC4DAiAvailable.Gemini:
5262
FResponse.Text := TDelphiAIDevAIGemini.New(FSettings).GetResponse(LQuestion);
5363
TC4DAiAvailable.OpenAI:
@@ -61,7 +71,7 @@ procedure TDelphiAIDevChat.ProcessSend(const AQuestion: string);
6171
end;
6272
end;
6373

64-
function TDelphiAIDevChat.Response: TStrings;
74+
function TDelphiAIDevAI.Response: TStrings;
6575
begin
6676
Result := FResponse;
6777
end;

Src/Chat/DelphiAIDev.Chat.View.dfm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ object DelphiAIDevChatView: TDelphiAIDevChatView
138138
Left = 0
139139
Top = 3
140140
Width = 56
141-
Height = 13
141+
Height = 22
142142
Cursor = crHandPoint
143143
Hint = 'AI being used'
144144
Margins.Left = 0
@@ -149,6 +149,7 @@ object DelphiAIDevChatView: TDelphiAIDevChatView
149149
Caption = 'lbCurrentAI'
150150
PopupMenu = pMenuCurrentAI
151151
OnClick = lbCurrentAIClick
152+
ExplicitHeight = 13
152153
end
153154
object btnSend: TButton
154155
AlignWithMargins = True
@@ -164,6 +165,7 @@ object DelphiAIDevChatView: TDelphiAIDevChatView
164165
Caption = 'Send'
165166
TabOrder = 0
166167
OnClick = btnSendClick
168+
ExplicitTop = 0
167169
end
168170
object pnBackConfigurableButtons: TPanel
169171
Left = 395

Src/Chat/DelphiAIDev.Chat.View.pas

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ interface
2626
Clipbrd,
2727
DelphiAIDev.Types,
2828
DelphiAIDev.Consts,
29-
DelphiAIDev.Chat,
29+
DelphiAIDev.AI,
3030
DelphiAIDev.Settings,
3131
DelphiAIDev.ModuleCreator,
3232
DelphiAIDev.DefaultsQuestions.PopupMenu,
@@ -103,7 +103,7 @@ TDelphiAIDevChatView = class(TDockableForm)
103103
procedure Clear1Click(Sender: TObject);
104104
procedure btnCleanAllClick(Sender: TObject);
105105
private
106-
FChat: TDelphiAIDevChat;
106+
FAI: TDelphiAIDevAI;
107107
FSettings: TDelphiAIDevSettings;
108108
FProcessResponse: TDelphiAIDevChatProcessResponse;
109109
FPopupMenuQuestions: TDelphiAIDevDefaultsQuestionsPopupMenu;
@@ -188,7 +188,7 @@ constructor TDelphiAIDevChatView.Create(AOwner: TComponent);
188188
AutoSave := True;
189189
SaveStateNecessary := True;
190190

191-
FChat := TDelphiAIDevChat.Create;
191+
FAI := TDelphiAIDevAI.Create;
192192
FSettings := TDelphiAIDevSettings.GetInstance;
193193
FProcessResponse := TDelphiAIDevChatProcessResponse.Create(mmReturn);
194194
FPopupMenuQuestions := TDelphiAIDevDefaultsQuestionsPopupMenu.Create;
@@ -203,7 +203,7 @@ destructor TDelphiAIDevChatView.Destroy;
203203
Self.SaveMemoReturnInFile;
204204
FPopupMenuQuestions.Free;
205205
FProcessResponse.Free;
206-
FChat.Free;
206+
FAI.Free;
207207
inherited;
208208
end;
209209

@@ -443,7 +443,7 @@ procedure TDelphiAIDevChatView.ProcessSend;
443443
begin
444444
try
445445
try
446-
FChat.ProcessSend(LQuestion);
446+
FAI.AiUse(FSettings.AIDefault).ProcessSend(LQuestion);
447447
except
448448
on E: Exception do
449449
TThread.Synchronize(nil,
@@ -460,7 +460,7 @@ procedure TDelphiAIDevChatView.ProcessSend;
460460
mmReturn.Lines.BeginUpdate;
461461
try
462462
//Optional use of one of the following lines
463-
FProcessResponse.AddResponseComplete(FChat.Response);
463+
FProcessResponse.AddResponseComplete(FAI.Response);
464464
Self.Last;
465465
//Self.AddResponseSimple(FChat.Response.Text);
466466
finally

Src/CodeCompletion/DelphiAIDev.CodeCompletion.Search.pas

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ interface
1212
DelphiAIDev.Utils,
1313
DelphiAIDev.Utils.OTA,
1414
DelphiAIDev.CodeCompletion.Vars,
15-
DelphiAIDev.Chat;
15+
DelphiAIDev.AI;
1616

1717
type
1818
IDelphiAIDevCodeCompletionSearch = interface
@@ -24,7 +24,7 @@ TDelphiAIDevCodeCompletionSearch = class(TInterfacedObject, IDelphiAIDevCodeCo
2424
private
2525
FSettings: TDelphiAIDevSettings;
2626
FQuestions: TStrings;
27-
FChat: TDelphiAIDevChat;
27+
FAI: TDelphiAIDevAI;
2828
FVars: TDelphiAIDevCodeCompletionVars;
2929
protected
3030
procedure Process(const AContext: IOTAKeyContext);
@@ -44,15 +44,15 @@ class function TDelphiAIDevCodeCompletionSearch.New: IDelphiAIDevCodeCompletionS
4444
constructor TDelphiAIDevCodeCompletionSearch.Create;
4545
begin
4646
FSettings := TDelphiAIDevSettings.GetInstance;
47-
FChat := TDelphiAIDevChat.Create;
47+
FAI := TDelphiAIDevAI.Create;
4848
FQuestions := TStringList.Create;
4949
FVars := TDelphiAIDevCodeCompletionVars.GetInstance;
5050
end;
5151

5252
destructor TDelphiAIDevCodeCompletionSearch.Destroy;
5353
begin
5454
FQuestions.Free;
55-
FChat.Free;
55+
FAI.Free;
5656
inherited;
5757
end;
5858

@@ -64,7 +64,7 @@ procedure TDelphiAIDevCodeCompletionSearch.Process(const AContext: IOTAKeyContex
6464
i: Integer;
6565
LIOTAEditPosition: IOTAEditPosition;
6666
begin
67-
FSettings.ValidateFillingSelectedAI(TShowMsg.No);
67+
FSettings.ValidateFillingSelectedAICodeCompletion(TShowMsg.No);
6868

6969
FQuestions.Clear;
7070
FQuestions.Add(FSettings.LanguageQuestions.GetLanguageDefinition);
@@ -80,12 +80,12 @@ procedure TDelphiAIDevCodeCompletionSearch.Process(const AContext: IOTAKeyContex
8080
end;
8181

8282
try
83-
FChat.ProcessSend(FQuestions.Text);
83+
FAI.AiUse(FSettings.CodeCompletionAIDefault).ProcessSend(FQuestions.Text);
8484
except
8585
Abort;
8686
end;
8787

88-
FVars.Contents.Text := TUtils.ConfReturnAI(FChat.Response.Text);
88+
FVars.Contents.Text := TUtils.ConfReturnAI(FAI.Response.Text);
8989

9090
LRow := LIOTAEditPosition.Row;
9191
LColumn := LIOTAEditPosition.Column;

Src/DB/Chat/DelphiAIDev.DB.Chat.View.dfm

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ object DelphiAIDevDBChatView: TDelphiAIDevDBChatView
381381
AlignWithMargins = True
382382
Left = 508
383383
Top = 0
384-
Width = 58
384+
Width = 61
385385
Height = 25
386386
Cursor = crHandPoint
387387
Margins.Left = 0
@@ -391,7 +391,6 @@ object DelphiAIDevDBChatView: TDelphiAIDevDBChatView
391391
Caption = 'Generate'
392392
TabOrder = 2
393393
OnClick = btnGenerateDatabaseReferenceClick
394-
ExplicitLeft = 503
395394
end
396395
end
397396
end
@@ -445,8 +444,8 @@ object DelphiAIDevDBChatView: TDelphiAIDevDBChatView
445444
end>
446445
end
447446
object pnCommands: TPanel
448-
Left = 936
449-
Top = 184
447+
Left = 947
448+
Top = 174
450449
Width = 26
451450
Height = 115
452451
Margins.Left = 0

Src/DB/Chat/DelphiAIDev.DB.Chat.View.pas

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ interface
2626
Clipbrd,
2727
DelphiAIDev.Types,
2828
DelphiAIDev.Consts,
29-
DelphiAIDev.Chat,
29+
DelphiAIDev.AI,
3030
DelphiAIDev.Settings,
3131
DelphiAIDev.ModuleCreator,
3232
DelphiAIDev.DefaultsQuestions.PopupMenu,
@@ -143,7 +143,7 @@ TDelphiAIDevDBChatView = class(TDockableForm)
143143
procedure DBGrid1TitleClick(Column: TColumn);
144144
procedure btnGenerateDatabaseReferenceClick(Sender: TObject);
145145
private
146-
FChat: TDelphiAIDevChat;
146+
FAI: TDelphiAIDevAI;
147147
FSettings: TDelphiAIDevSettings;
148148
FProcessResponse: TDelphiAIDevChatProcessResponse;
149149
FPopupMenuQuestions: TDelphiAIDevDefaultsQuestionsPopupMenu;
@@ -236,7 +236,7 @@ constructor TDelphiAIDevDBChatView.Create(AOwner: TComponent);
236236
AutoSave := True;
237237
SaveStateNecessary := True;
238238

239-
FChat := TDelphiAIDevChat.Create;
239+
FAI := TDelphiAIDevAI.Create;
240240
FSettings := TDelphiAIDevSettings.GetInstance;
241241
FProcessResponse := TDelphiAIDevChatProcessResponse.Create(mmReturn);
242242
FPopupMenuQuestions := TDelphiAIDevDefaultsQuestionsPopupMenu.Create;
@@ -261,7 +261,7 @@ destructor TDelphiAIDevDBChatView.Destroy;
261261
Self.SaveMemoReturnInFile;
262262
FPopupMenuQuestions.Free;
263263
FProcessResponse.Free;
264-
FChat.Free;
264+
FAI.Free;
265265
inherited;
266266
end;
267267

@@ -742,7 +742,7 @@ procedure TDelphiAIDevDBChatView.ProcessSend;
742742
begin
743743
try
744744
try
745-
FChat.ProcessSend(LQuestion);
745+
FAI.AiUse(FSettings.AIDefault).ProcessSend(LQuestion);
746746
except
747747
on E: Exception do
748748
TThread.Synchronize(nil,
@@ -759,7 +759,7 @@ procedure TDelphiAIDevDBChatView.ProcessSend;
759759
mmReturn.Lines.BeginUpdate;
760760
try
761761
//Optional use of one of the following lines
762-
FProcessResponse.AddResponseComplete(FChat.Response);
762+
FProcessResponse.AddResponseComplete(FAI.Response);
763763
Self.Last;
764764
//Self.AddResponseSimple(FChat.Response.Text);
765765
finally

Src/Settings/DelphiAIDev.Settings.pas

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,15 @@ TDelphiAIDevSettings = class
6565
FApiKeyOllama: string;
6666

6767
constructor Create;
68+
procedure ValidateFillingSelectedAIInternal(
69+
const AShowMsg: TShowMsg; const AAiUse: TC4DAiAvailable);
6870
public
6971
class function GetInstance: TDelphiAIDevSettings;
7072
procedure LoadDefaults;
7173
procedure SaveData;
7274
procedure LoadData;
7375
procedure ValidateFillingSelectedAI(const AShowMsg: TShowMsg = TShowMsg.Yes);
76+
procedure ValidateFillingSelectedAICodeCompletion(const AShowMsg: TShowMsg = TShowMsg.Yes);
7477

7578
property LanguageQuestions: TC4DLanguage read FLanguageQuestions write FLanguageQuestions;
7679
property AIDefault: TC4DAiAvailable read FAIDefault write FAIDefault;
@@ -284,6 +287,17 @@ procedure TDelphiAIDevSettings.LoadData;
284287
end;
285288

286289
procedure TDelphiAIDevSettings.ValidateFillingSelectedAI(const AShowMsg: TShowMsg = TShowMsg.Yes);
290+
begin
291+
Self.ValidateFillingSelectedAIInternal(AShowMsg, FAIDefault);
292+
end;
293+
294+
procedure TDelphiAIDevSettings.ValidateFillingSelectedAICodeCompletion(const AShowMsg: TShowMsg = TShowMsg.Yes);
295+
begin
296+
Self.ValidateFillingSelectedAIInternal(AShowMsg, FCodeCompletionAIDefault);
297+
end;
298+
299+
procedure TDelphiAIDevSettings.ValidateFillingSelectedAIInternal(
300+
const AShowMsg: TShowMsg; const AAiUse: TC4DAiAvailable);
287301
const
288302
MSG = '"%s" for IA %s not specified in settings.' + sLineBreak + sLineBreak +
289303
'Access menu > AI Developer > Settings';
@@ -295,7 +309,7 @@ procedure TDelphiAIDevSettings.ValidateFillingSelectedAI(const AShowMsg: TShowMs
295309
Abort;
296310
end;
297311
begin
298-
case FAIDefault of
312+
case AAiUse of
299313
TC4DAiAvailable.Gemini:
300314
begin
301315
if FBaseUrlGemini.Trim.IsEmpty then

0 commit comments

Comments
 (0)