aotrautils 0.0.1038 → 0.0.1040
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aotrautils/aotrautils.build.js +160 -108
- aotrautils/package.json +1 -1
aotrautils/aotrautils.build.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
|
3
|
-
/*utils COMMONS library associated with aotra version : «1_29072022-2359 (
|
3
|
+
/*utils COMMONS library associated with aotra version : «1_29072022-2359 (02/09/2024-03:11:33)»*/
|
4
4
|
/*-----------------------------------------------------------------------------*/
|
5
5
|
|
6
6
|
|
@@ -5185,7 +5185,7 @@ JSON.recycle=function recycle($){
|
|
5185
5185
|
|
5186
5186
|
|
5187
5187
|
|
5188
|
-
|
5188
|
+
// CAUTION : TODO : FIXME WILL ERROR IF THERE IS A NON-ESCAPED SINGLE QUOTE ("'") IN RAW STRING !!!
|
5189
5189
|
// JSON parsing management :
|
5190
5190
|
window.parseJSON=function(strParam){
|
5191
5191
|
|
@@ -5251,106 +5251,6 @@ window.stringifyObject=function(objectToStringify){
|
|
5251
5251
|
|
5252
5252
|
|
5253
5253
|
|
5254
|
-
// AI management :
|
5255
|
-
|
5256
|
-
|
5257
|
-
|
5258
|
-
class OpenAIAPIClient{
|
5259
|
-
|
5260
|
-
constructor(modelName, apiURL, agentRole, prompt){
|
5261
|
-
|
5262
|
-
//DBG
|
5263
|
-
lognow(">>>>>>>>>>>>>>>>!!!!!!apiURL:",apiURL);
|
5264
|
-
|
5265
|
-
// this.apiKey=apiKey;
|
5266
|
-
this.modelName=modelName;
|
5267
|
-
this.apiURL=apiURL;
|
5268
|
-
this.agentRole=agentRole;
|
5269
|
-
this.prompt=prompt;
|
5270
|
-
}
|
5271
|
-
|
5272
|
-
async getAnswer(AIAPIKey, additionalPrompt){
|
5273
|
-
|
5274
|
-
const self=this;
|
5275
|
-
const messages = [
|
5276
|
-
{ role: "system", content: this.agentRole },
|
5277
|
-
{ role: "user", content: (this.prompt + additionalPrompt) },
|
5278
|
-
];
|
5279
|
-
|
5280
|
-
//DBG
|
5281
|
-
lognow("------------self.apiURL:",self.apiURL);
|
5282
|
-
|
5283
|
-
const result=await this.launchRequest(AIAPIKey, messages);
|
5284
|
-
|
5285
|
-
// DBG
|
5286
|
-
console.log("! RESULT text :",result);
|
5287
|
-
|
5288
|
-
return result;
|
5289
|
-
}
|
5290
|
-
|
5291
|
-
|
5292
|
-
/*private*/launchRequest(AIAPIKey, messages){
|
5293
|
-
|
5294
|
-
// DBG
|
5295
|
-
lognow("! launchRequest messages :",messages);
|
5296
|
-
|
5297
|
-
|
5298
|
-
const headers={
|
5299
|
-
"Authorization": "Bearer "+AIAPIKey,
|
5300
|
-
"Content-Type": "application/json",
|
5301
|
-
};
|
5302
|
-
const parameters={
|
5303
|
-
model:this.modelName,
|
5304
|
-
messages:messages,
|
5305
|
-
};
|
5306
|
-
|
5307
|
-
return new Promise((resolve,reject)=>{
|
5308
|
-
performHTTPRequest(this.apiURL,"POST",headers,parameters,true).then((responseObj)=>{
|
5309
|
-
const responseData=responseObj.responseData;
|
5310
|
-
const data=responseData;
|
5311
|
-
|
5312
|
-
// DBG
|
5313
|
-
console.log("~~~~~~~~~~~data :",data);
|
5314
|
-
|
5315
|
-
if(data.error){
|
5316
|
-
const error=data.error;
|
5317
|
-
// TRACE
|
5318
|
-
console.error("Error:", error);
|
5319
|
-
reject(new Error(`${error}`));
|
5320
|
-
}
|
5321
|
-
|
5322
|
-
const assistantReply = data.choices[0].message.content;
|
5323
|
-
// DBG
|
5324
|
-
console.log("~~~~~~~~~~~assistantReply :",assistantReply);
|
5325
|
-
|
5326
|
-
resolve(assistantReply);
|
5327
|
-
}).catch(error => {
|
5328
|
-
// TRACE
|
5329
|
-
console.error("Error:", error);
|
5330
|
-
reject(error);
|
5331
|
-
});
|
5332
|
-
});
|
5333
|
-
|
5334
|
-
|
5335
|
-
|
5336
|
-
|
5337
|
-
}
|
5338
|
-
|
5339
|
-
|
5340
|
-
|
5341
|
-
|
5342
|
-
}
|
5343
|
-
|
5344
|
-
|
5345
|
-
// Nodejs compatibility :
|
5346
|
-
getOpenAIAPIClient=(modelName, apiURL, agentRole, prompt)=>{
|
5347
|
-
return new OpenAIAPIClient(modelName, apiURL, agentRole, prompt);
|
5348
|
-
};
|
5349
|
-
|
5350
|
-
|
5351
|
-
|
5352
|
-
|
5353
|
-
|
5354
5254
|
// MUST REMAIN AT THE END OF THIS LIBRARY FILE !
|
5355
5255
|
|
5356
5256
|
AOTRAUTILS_LIB_IS_LOADED=true;
|
@@ -5359,7 +5259,7 @@ AOTRAUTILS_LIB_IS_LOADED=true;
|
|
5359
5259
|
|
5360
5260
|
|
5361
5261
|
|
5362
|
-
/*utils CLIENT library associated with aotra version : «1_29072022-2359 (
|
5262
|
+
/*utils CLIENT library associated with aotra version : «1_29072022-2359 (02/09/2024-03:11:33)»*/
|
5363
5263
|
/*-----------------------------------------------------------------------------*/
|
5364
5264
|
/* ## Utility global methods in a browser (htmljs) client environment.
|
5365
5265
|
*
|
@@ -13574,7 +13474,7 @@ createOritaMicroClient=function(url, port, isNode=false, staticMicroClientIdPara
|
|
13574
13474
|
|
13575
13475
|
|
13576
13476
|
|
13577
|
-
/*utils GEOMETRY library associated with aotra version : «1_29072022-2359 (
|
13477
|
+
/*utils GEOMETRY library associated with aotra version : «1_29072022-2359 (02/09/2024-03:11:33)»*/
|
13578
13478
|
/*-----------------------------------------------------------------------------*/
|
13579
13479
|
|
13580
13480
|
|
@@ -14813,7 +14713,151 @@ function rayVsUnitSphereClosestPoint(p, r) {
|
|
14813
14713
|
// MUST REMAIN AT THE END OF THIS LIBRARY FILE !
|
14814
14714
|
|
14815
14715
|
AOTRAUTILS_GEOMETRY_LIB_IS_LOADED=true;
|
14816
|
-
/*utils
|
14716
|
+
/*utils AI library associated with aotra version : «1_29072022-2359 (02/09/2024-03:11:33)»*/
|
14717
|
+
/*-----------------------------------------------------------------------------*/
|
14718
|
+
|
14719
|
+
|
14720
|
+
/* ## Utility AI methods in a javascript, console (nodejs) server, or vanilla javascript with no browser environment.
|
14721
|
+
*
|
14722
|
+
* This set of methods gathers utility generic-purpose methods usable in any JS project.
|
14723
|
+
* Several authors of snippets published freely on the Internet contributed to this library.
|
14724
|
+
* Feel free to use/modify-enhance/publish them under the terms of its license.
|
14725
|
+
*
|
14726
|
+
* # Library name : «aotrautils»
|
14727
|
+
* # Library license : HGPL(Help Burma) (see aotra README information for details : https://alqemia.com/aotra.js )
|
14728
|
+
* # Author name : Jérémie Ratomposon (massively helped by his native country free education system)
|
14729
|
+
* # Author email : info@alqemia.com
|
14730
|
+
* # Organization name : Alqemia
|
14731
|
+
* # Organization email : admin@alqemia.com
|
14732
|
+
* # Organization website : https://alqemia.com
|
14733
|
+
*
|
14734
|
+
*
|
14735
|
+
*/
|
14736
|
+
|
14737
|
+
|
14738
|
+
|
14739
|
+
// COMPATIBILITY browser javascript / nodejs environment :
|
14740
|
+
if(typeof(window)==="undefined") window=global;
|
14741
|
+
|
14742
|
+
|
14743
|
+
|
14744
|
+
//=========================================================================
|
14745
|
+
// GLOBAL CONSTANTS :
|
14746
|
+
|
14747
|
+
//=========================================================================
|
14748
|
+
|
14749
|
+
|
14750
|
+
|
14751
|
+
|
14752
|
+
// AI management :
|
14753
|
+
|
14754
|
+
|
14755
|
+
|
14756
|
+
class OpenAIAPIClient{
|
14757
|
+
|
14758
|
+
constructor(modelName, apiURL, agentRole, defaultPrompt){
|
14759
|
+
|
14760
|
+
//DBG
|
14761
|
+
lognow(">>>>>>>>>>>>>>>>!!!!!!apiURL:",apiURL);
|
14762
|
+
|
14763
|
+
// this.apiKey=apiKey;
|
14764
|
+
this.modelName=modelName;
|
14765
|
+
this.apiURL=apiURL;
|
14766
|
+
this.agentRole=agentRole;
|
14767
|
+
this.defaultPrompt=defaultPrompt;
|
14768
|
+
}
|
14769
|
+
|
14770
|
+
async getAnswer(AIAPIKey, additionalPrompt, defaultPromptParameters={}){
|
14771
|
+
|
14772
|
+
const PARAMETERS_DELIMITERS=["<",">"];
|
14773
|
+
|
14774
|
+
let newDefaultPrompt=this.defaultPrompt;
|
14775
|
+
foreach(defaultPromptParameters, (value,key)=>{
|
14776
|
+
const regexp=new RegExp(PARAMETERS_DELIMITERS[0]+key+newDefaultPrompt[1] ,"gim");
|
14777
|
+
newDefaultPrompt=newDefaultPrompt.replace(regexp,value);
|
14778
|
+
});
|
14779
|
+
|
14780
|
+
const self=this;
|
14781
|
+
const messages = [
|
14782
|
+
{ role: "system", content: this.agentRole },
|
14783
|
+
{ role: "user", content: (newDefaultPrompt+ "\n" + additionalPrompt) },
|
14784
|
+
];
|
14785
|
+
|
14786
|
+
//DBG
|
14787
|
+
lognow("------------self.apiURL:",self.apiURL);
|
14788
|
+
|
14789
|
+
const result=await this.launchRequest(AIAPIKey, messages);
|
14790
|
+
|
14791
|
+
// DBG
|
14792
|
+
console.log("! RESULT text :",result);
|
14793
|
+
|
14794
|
+
return result;
|
14795
|
+
}
|
14796
|
+
|
14797
|
+
|
14798
|
+
/*private*/launchRequest(AIAPIKey, messages){
|
14799
|
+
|
14800
|
+
// DBG
|
14801
|
+
lognow("! launchRequest messages :",messages);
|
14802
|
+
|
14803
|
+
|
14804
|
+
const headers={
|
14805
|
+
"Authorization": "Bearer "+AIAPIKey,
|
14806
|
+
"Content-Type": "application/json",
|
14807
|
+
};
|
14808
|
+
const parameters={
|
14809
|
+
model:this.modelName,
|
14810
|
+
messages:messages,
|
14811
|
+
};
|
14812
|
+
|
14813
|
+
return new Promise((resolve,reject)=>{
|
14814
|
+
performHTTPRequest(this.apiURL,"POST",headers,parameters,true).then((responseObj)=>{
|
14815
|
+
const responseData=responseObj.responseData;
|
14816
|
+
const data=responseData;
|
14817
|
+
|
14818
|
+
// DBG
|
14819
|
+
console.log("~~~~~~~~~~~data :",data);
|
14820
|
+
|
14821
|
+
if(data.error){
|
14822
|
+
const error=data.error;
|
14823
|
+
// TRACE
|
14824
|
+
console.error("Error:", error);
|
14825
|
+
reject(new Error(`${error}`));
|
14826
|
+
}
|
14827
|
+
|
14828
|
+
const assistantReply = data.choices[0].message.content;
|
14829
|
+
// DBG
|
14830
|
+
console.log("~~~~~~~~~~~assistantReply :",assistantReply);
|
14831
|
+
|
14832
|
+
resolve(assistantReply);
|
14833
|
+
}).catch(error => {
|
14834
|
+
// TRACE
|
14835
|
+
console.error("Error:", error);
|
14836
|
+
reject(error);
|
14837
|
+
});
|
14838
|
+
});
|
14839
|
+
|
14840
|
+
|
14841
|
+
|
14842
|
+
|
14843
|
+
}
|
14844
|
+
|
14845
|
+
|
14846
|
+
|
14847
|
+
|
14848
|
+
}
|
14849
|
+
|
14850
|
+
|
14851
|
+
// Nodejs compatibility :
|
14852
|
+
getOpenAIAPIClient=(modelName, apiURL, agentRole, defaultPrompt)=>{
|
14853
|
+
return new OpenAIAPIClient(modelName, apiURL, agentRole, defaultPrompt);
|
14854
|
+
};
|
14855
|
+
|
14856
|
+
|
14857
|
+
|
14858
|
+
|
14859
|
+
|
14860
|
+
/*utils SERVER library associated with aotra version : «1_29072022-2359 (02/09/2024-03:11:33)»*/
|
14817
14861
|
/*-----------------------------------------------------------------------------*/
|
14818
14862
|
|
14819
14863
|
|
@@ -16537,8 +16581,8 @@ getListManager=function(config){
|
|
16537
16581
|
};
|
16538
16582
|
|
16539
16583
|
|
16540
|
-
|
16541
|
-
// NO : IN A NODE CONTEXT WITH
|
16584
|
+
// CAUTION ! TODO : FIXME : We replace in response all single quotes with "`" (egrave) in order to avoid errors !
|
16585
|
+
// NO : IN A NODE CONTEXT WITH require("...") WILL RESULT IN AN UNDEFINED FUNCTION ERROR !!!
|
16542
16586
|
// function performHTTPRequest(...){...
|
16543
16587
|
// USE THIS INSTEAD :
|
16544
16588
|
performHTTPRequest=function(completeURL,httpMethod="GET",headers={},requestBodyOrNamedArgs=null,isNodeContext=false,addCORSHeader=ADD_CORS_HEADER){
|
@@ -16640,7 +16684,15 @@ performHTTPRequest=function(completeURL,httpMethod="GET",headers={},requestBodyO
|
|
16640
16684
|
response.on("end", () => {
|
16641
16685
|
|
16642
16686
|
try{
|
16643
|
-
|
16687
|
+
let responseData;
|
16688
|
+
try{
|
16689
|
+
responseData=parseJSON(responseDataStr);
|
16690
|
+
}catch(error){
|
16691
|
+
// CAUTION ! TODO : FIXME : We replace in response all single quotes with "`" (egrave) in order to avoid errors !
|
16692
|
+
// DEBUG
|
16693
|
+
responseDataStr=responseDataStr.replace(/'/gim,"`");
|
16694
|
+
responseData=parseJSON(responseDataStr);
|
16695
|
+
}
|
16644
16696
|
resolve( {responseData:responseData, response:response, responseDataStr:responseDataStr} );
|
16645
16697
|
}catch(error){
|
16646
16698
|
// DBG
|
aotrautils/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "aotrautils",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.1040",
|
4
4
|
"main": "aotrautils.build.js",
|
5
5
|
"description": "A library for vanilla javascript utils (client-side) used in aotra javascript CMS",
|
6
6
|
"author": "Jeremie Ratomposon <info@alqemia.com> (https://alqemia.com)",
|