Skip to content

Commit 1eb1d2c

Browse files
author
aafent
committed
AI Chat Library added, New Package versions
1 parent 915c0ee commit 1eb1d2c

17 files changed

Lines changed: 247 additions & 24 deletions

File tree

FAST.FBasic.InteractiveConsole/FBasicIC_Setup.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
using FAST.FBasic.InteractiveConsole.DemoObjects;
22
using FAST.FBasic.TemplatingLibrary;
33
using FAST.FBasicInteractiveConsole.BusinessCases;
4-
using FAST.FBasicInteractiveConsole.TestCode;
54
using FAST.FBasicInterpreter;
65
using FAST.FBasicInterpreter.Types;
76
using Microsoft.Data.Sqlite;
8-
using Microsoft.Extensions.Configuration;
97
using System.Dynamic;
108
using System.Text.Json;
11-
using System.Xml.XPath;
129

1310
namespace FAST.FBasic.InteractiveConsole
1411
{
@@ -20,6 +17,12 @@ private void setupEnvironment()
2017
env.DefaultEnvironment(programsFolder);
2118
env.requestForObjectHandler = (request) =>
2219
{
20+
// (v) Get a string from configuration files
21+
string entry = config[$"RequestForObject:{request.Level3Request()}"]!;
22+
if (string.IsNullOrEmpty(entry) ) entry = config[$"RequestForObject:{request.Level2Request()}"]!;
23+
if (!string.IsNullOrEmpty(entry)) return entry;
24+
25+
// (v) return Object using HC logic
2326

2427
if ( request.Level3Request() == "SQL.CONNECTION.MyCursor1")
2528
{
@@ -69,6 +72,7 @@ private void setupEnvironment()
6972
return emp;
7073
}
7174

75+
// (v) Nothing found, so raise an error
7276
Console.WriteLine($"Interactive: THE REQUEST FOR OBJECT NOT FOUND. Context:{request.Context}, Group:{request.Group}, Name:{request.Name}");
7377

7478
return null;
@@ -85,6 +89,7 @@ private void setupEnvironment()
8589
env.AddLibrary(new FBasicStreams());
8690
env.AddLibrary(new FBasicJsonLibrary());
8791
env.AddLibrary(new FBasicTemplatingLibrary());
92+
env.AddLibrary(new FBasicAIChat());
8893
env.AddVariable("table.column", "myColumn1");
8994

9095
FBasicEvents.Reset();

FAST.FBasic.InteractiveConsole/FBasicSettings.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,13 @@
55
},
66
"ConnectionStrings": {
77
"DefaultConnection": "Server=myServer;Database=myDB;Trusted_Connection=True;"
8+
},
9+
"RequestForObject": {
10+
"APIKEY.OPENAI": "<Your_API_Key_Here>",
11+
"APIKEY.GEMINI": "<Your_API_Key_Here>",
12+
"APIKEY.CLAUDE": "<Your_API_Key_Here>",
13+
"APIKEY.HUGGINGFACE": "<Your_API_Key_Here>",
14+
"APIKEY.TEST": "test"
815
}
16+
917
}
Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
rem
22

3-
' RETRIEVE array_name, NEW|APPEND, number|*, SQL Data retrieval statement
4-
retrieve Cust, APPEND, *, "select CustomerID, Name, Email,City from Customers where CustomerID=1"
5-
retrieve Cust, APPEND, 1, "select CustomerID, Name, Email,City from Customers"
6-
retrieve Cust, APPEND, 2, "select CustomerID, Name, Email,City from Customers"
7-
8-
Error 1,"Not found"
9-
10-
print "Count="+ubound("Cust")
11-
print [Cust.CustomerID]+": Name:"+[Cust.Name]+", Email: "+[Cust.Email]
3+
AiPROVIDER prov, test, *
4+
AiSESSION chat, prov, "You are an Oceanographer. Provide clear and concise responses, no more that 100 words."
125

6+
AiPROMPT chat, resp, "What is the whale? reply with up to 20 words"
137

8+
print resp
149

1510
halt
1611

FAST.FBasicInterpreter/DataProviders/AIProvider/AITrace.cs renamed to FAST.FBasic.LibraryToolkit/AIProvider/AITrace.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace FAST.IAIProvider
1+
namespace FAST.AIProvider
22
{
33
/// <summary>
44
/// Trace record of AI provider

FAST.FBasicInterpreter/DataProviders/AIProvider/IAIProvider.cs renamed to FAST.FBasic.LibraryToolkit/AIProvider/IAIProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
namespace FAST.IAIProvider
2+
namespace FAST.AIProvider
33
{
44
/// <summary>
55
/// Base interface for all AI providers

FAST.FBasicInterpreter/DataProviders/AIProvider/IAITraceableProvider.cs renamed to FAST.FBasic.LibraryToolkit/AIProvider/IAITraceableProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace FAST.IAIProvider
1+
namespace FAST.AIProvider
22
{
33
/// <summary>
44
/// Traceable AI provider interface

FAST.FBasic.LibraryToolkit/FAST.FBasic.LibraryToolkit.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<Copyright>Global Cloud Services EOOD</Copyright>
1111
<PackageOutputPath>.\Packages</PackageOutputPath>
1212
<PackageId>FAST.FBasicLibraryToolkit</PackageId>
13-
<Version>1.0.2</Version>
13+
<Version>1.0.3</Version>
1414
<Authors>GCS</Authors>
1515
<RepositoryUrl>https://github.com/aafent/FAST.FBasic</RepositoryUrl>
1616
<PackageProjectUrl>https://github.com/aafent/FAST.FBasic/blob/main/README.md</PackageProjectUrl>

FAST.FBasicInterpreter/DataProviders/AIProvider/AIChatSessionManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
namespace FAST.IAIProvider
1+
namespace FAST.AIProvider
22
{
33
/// <summary>
44
/// Main Session Manager

FAST.FBasicInterpreter/DataProviders/AIProvider/ClaudeProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Text;
22
using System.Text.Json;
33

4-
namespace FAST.IAIProvider
4+
namespace FAST.AIProvider
55
{
66
/// <summary>
77
/// Anthropic Claude Provider

FAST.FBasicInterpreter/DataProviders/AIProvider/GeminiProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Text;
22
using System.Text.Json;
33

4-
namespace FAST.IAIProvider
4+
namespace FAST.AIProvider
55
{
66
// Google Gemini Provider
77
public class GeminiProvider : IAIProvider, IAITraceableProvider

0 commit comments

Comments
 (0)