ow.ai

$gpt

$gpt(aModel) : $gpt

Creates a GPT AI model of aType (e.g. "openai" or "ollama") with aOptions.

$gpt.close

$gpt.close()

Closes the current GPT model.

$gpt.iniPrompt

$gpt.iniPrompt(aPrompt, aRole, aModel, aTemperature) : String

Tries to prompt aPrompt (a string or an array of strings) and aModel (defaults to the one provided on the constructor) after cleaning the current conversation.

$gpt.prompt

$gpt.prompt(aPrompt, aRole, aModel, aTemperature) : String

Tries to prompt aPrompt (a string or an array of strings) and aModel (defaults to the one provided on the constructor).

$gpt.promptBool

$gpt.promptBool(aPrompt, aRole, aModel, aTemperature) : boolean

Tries to prompt aPrompt (a string or an array of strings) and aModel (defaults to the one provided on the constructor) returning a boolean.

$gpt.promptImage

$gpt.promptImage(aPrompt, aImage, aDetailLevel, aRole, aModel, aTemperature, jsonFlag) : String

Tries to prompt aPrompt (a string or an array of strings) with aImage (a file path or a base64 string representation), aRole (defaults to "user") and aModel (defaults to the one provided on the constructor).

$gpt.promptImgGen

$gpt.promptImgGen(aPrompt, aModel, aPath) : Array

Tries to prompt aPrompt and aModel (defaults to the one provided on the constructor) to generate one or more images and aPath to which the number of the image and ".png" will be saved to. Returns an array of the image files generated.

$gpt.promptJSON

$gpt.promptJSON(aPrompt, aModel, aTemperature)

Tries to prompt aPrompt (a string or an array of strings) and aModel (defaults to the one provided on the constructor) returning a Javascript function.

$gpt.promptMD

$gpt.promptMD(aPrompt, aRole, aModel, aTemperature) : String

Tries to prompt aPrompt (a string or an array of strings) and aModel (defaults to the one provided on the constructor) returning a markdown string.

$gpt.promptPath

$gpt.promptPath(aPrompt, aJSONSchemaDef, aModel, aTemperature)

Tries to prompt aPrompt (a string or an array of strings) and aModel (defaults to the one provided on the constructor) returning a JMESPath query.

$gpt.promptSQL

$gpt.promptSQL(aPrompt, aTableDefs, aDBName, aModel, aTemperature)

Tries to prompt aPrompt (a string or an array of strings) and aModel (defaults to the one provided on the constructor) returning a SQL query.

$gpt.sysPrompt

$gpt.sysPrompt(aPrompt, aModel, aTemperature) : String

Tries to prompt system aPrompt (a string or an array of strings) and aModel (defaults to the one provided on the constructor).

$gpt.withContext

$gpt.withContext(anObject, aContext) : ow.ai.gpt

Adds a context to the current conversation.

$gpt.withJSONAssert

$gpt.withJSONAssert(aPath, anAssert) : ow.ai.gpt

Adds a JSON path aPath to be asserted with anAssert (e.g. isArray or isMap).

$gpt.withSQLTables

$gpt.withSQLTables(aDBName, aTablesDefs) : ow.ai.gpt

Adds aDBName with aTableDefs to be used with promptSQL.

ow.ai.cluster

ow.ai.cluster(args) : Object

Wraps access to clustering of data. The result will be an object with a classify method that will  return the clustering result given the provided data. Args expects different arguments depending on type of  clustering:

   args.type                (String) "kmeans" (default)
   args.numberOfClusters    (Number) number of clusters to use (default to 5)
   classify(normalizedData) (Map)    returns a map of centroids and cluster assignments


ow.ai.decisionTree

ow.ai.decisionTree(aMap) : Object

Provides a wrapper to access the existing decision tree algorithms included:

ID3:
  type              'id3'
  trainingSet       (array of maps)   The training data
  categoryAttr      (key name)        The map key to build the decision tree on
  ignoredAttributes (array of keys)   The list of keys to be ignored in each map

RandomForest:
  type              'randomforest'
  trainingSet       (array of maps)   The training data
  categoryAttr      (key name)        The map key to build the decision tree on
  ignoredAttributes (array of keys)   The list of keys to be ignored in each map
  treesNumber       (number)          The number of decision trees to use

C45:
  type              'c45'
  data              (array of arrays) The training data
  features          (arrays of keys)  The keys name by order of each array data value
  featureTypes      (arrays of types) Categorization of each attribute between 'category' and 'number'
  target            (key)             The target key name (the last of each array data value)

ow.ai.gpt

ow.ai.gpt(aType, aOptions) : ow.ai.gpt

Creates a GPT AI model of aType (e.g. "openai" or "ollama") with aOptions.

ow.ai.gpt.addPrompt

ow.ai.gpt.addPrompt(aPrompt, aRole) : ow.ai.gpt

Adds aPrompt (a string or an array of strings) with aRole (defaults to "user") to the current conversation.

ow.ai.gpt.addSystemPrompt

ow.ai.gpt.addSystemPrompt(aPrompt) : ow.ai.gpt

Adds aPrompt (a string or an array of strings) with aRole (defaults to "user") to the current conversation.

ow.ai.gpt.addUserPrompt

ow.ai.gpt.addUserPrompt(aPrompt) : ow.ai.gpt

Adds aPrompt (a string or an array of strings) with aRole (defaults to "user") to the current conversation.

ow.ai.gpt.booleanPrompt

ow.ai.gpt.booleanPrompt(aPrompt, aModel, aTemperature) : boolean

Tries to prompt aPrompt (a string or an array of strings) with aRole (defaults to "user") and aModel (defaults to the one provided on the constructor).

ow.ai.gpt.cleanPrompt

ow.ai.gpt.cleanPrompt() : ow.ai.gpt

Cleans the current conversation.

ow.ai.gpt.codePrompt

ow.ai.gpt.codePrompt(aPrompt, aModel, aTemperature, aCommentChars) : String

Tries to prompt aPrompt (a string or an array of strings) with aRole (defaults to "user") and aModel (defaults to the one provided on the constructor).

ow.ai.gpt.getConversation

ow.ai.gpt.getConversation() : Array

Returns the current conversation.

ow.ai.gpt.jsonPrompt

ow.ai.gpt.jsonPrompt(aPrompt, aModel, aTemperature) : Object

Tries to prompt aPrompt (a string or an array of strings) with aRole (defaults to "user") and aModel (defaults to the one provided on the constructor).

ow.ai.gpt.parseCode

ow.ai.gpt.parseCode(anAnswer) : String

Tries to parse anAnswer and return the code between \``` and \```.

ow.ai.gpt.pathPrompt

ow.ai.gpt.pathPrompt(aPrompt, aJSONSchemaDef, aModel, aTemperature) : String

Tries to prompt aPrompt (a string or an array of strings) with aRole (defaults to "user") and aModel (defaults to the one provided on the constructor).

ow.ai.gpt.prompt

ow.ai.gpt.prompt(aPrompt, aRole, aModel, aTemperature, aJsonFlag) : String

Tries to prompt aPrompt (a string or an array of strings) with aRole (defaults to "user") and aModel (defaults to the one provided on the constructor).

ow.ai.gpt.promptImage

ow.ai.gpt.promptImage(aPrompt, aImage, aDetailLevel, aRole, aModel, aTemperature, jsonFlag) : String

Tries to prompt aPrompt (a string or an array of strings) with aImage (a file path or a base64 string representation), aRole (defaults to "user") and aModel (defaults to the one provided on the constructor).

ow.ai.gpt.promptImgGen

ow.ai.gpt.promptImgGen(aPrompt, aModel, anOutputPathPrefix) : Array

Tries to prompt aPrompt (a string or an array of strings), aModel (defaults to the one provided on the constructor) to generate one or more images and anOutputPathPrefix to which the number of the image and ".png" will be appended. Returns an array of the files generated.

ow.ai.gpt.prototype.getModels

ow.ai.gpt.prototype.getModels() : Array

Returns the available models from the GPT AI service.

ow.ai.gpt.rawImgGen

ow.ai.gpt.rawImgGen(aPrompt, aModel) : Map

Tries to generate an image based on aPrompt (a string or an array of strings) with aModel (defaults to the one provided on the constructor). Returns the raw result.

ow.ai.gpt.rawPrompt

ow.ai.gpt.rawPrompt(aPrompt, aRole, aModel, aTemperature, aJsonFlag) : String

Tries to prompt aPrompt (a string or an array of strings) with aRole (defaults to "user") and aModel (defaults to the one provided on the constructor).

ow.ai.gpt.setConversation

ow.ai.gpt.setConversation(aConversation) : ow.ai.gpt

Sets the current conversation to aConversation.

ow.ai.gpt.setInstructions

ow.ai.gpt.setInstructions(aType) : ow.ai.gpt

Sets the instructions for the current conversation. aType can be a string (e.g. json, boolean, sql, js and path) or an array of strings.

ow.ai.gpt.sqlPrompt

ow.ai.gpt.sqlPrompt(aPrompt, aTableDefs, aDBName, aModel, aTemperature) : String

Tries to prompt aPrompt (a string or an array of strings) with aRole (defaults to "user") and aModel (defaults to the one provided on the constructor).

ow.ai.network

ow.ai.network(aMap) : ow.ai.network

Creates a neural network given the parameters in aMap. aMap should contain a "type" parameter to indicate the type of network (synaptic: perceptron, lstm, liquid or hopfield; brainjs: neuralnetwork, rnntimestep, lstmtimestep, grutimestep, rnn, lstm or gru).  Then aMap should contain a "args" parameter to provide each network inialization parameters. Please see "help ow.ai.network.[type of network]" for more details about each one.

ow.ai.network.feedfoward

ow.ai.network.feedfoward(args) : ow.ai.network

Examples: https://github.com/BrainJS/brain.js?tab=readme-ov-file#examples Data format: https://github.com/BrainJS/brain.js?tab=readme-ov-file#neural-network-types Train: https://github.com/BrainJS/brain.js?tab=readme-ov-file#training-options

ow.ai.network.forecast

ow.ai.network.forecast(aInput, aCount) : Array


ow.ai.network.fromJson

ow.ai.network.fromJson(aMap)

Tries to rebuild the network from aMap returned previously by a toJson function.

ow.ai.network.get

ow.ai.network.get(inputArray) : Array

Given an inputArray of decimal values, normalize between 0 and 1, will activate the current network and  return an output array of decimal values between 0 and 1.

ow.ai.network.getBrainJSObject

ow.ai.network.getBrainJSObject() : Object

Returns the current BrainJS object.

ow.ai.network.getSynapticObject

ow.ai.network.getSynapticObject() : Object

Returns the current Synaptic object.

ow.ai.network.gru

ow.ai.network.gru(args) : ow.ai.network

Examples: https://github.com/BrainJS/brain.js?tab=readme-ov-file#examples Data format: https://github.com/BrainJS/brain.js?tab=readme-ov-file#for-training-with-rnn-lstm-and-gru Train: https://github.com/BrainJS/brain.js?tab=readme-ov-file#training-options

ow.ai.network.grutimestep

ow.ai.network.grutimestep(args) : ow.ai.network

Examples: https://github.com/BrainJS/brain.js?tab=readme-ov-file#examples Data format: https://github.com/BrainJS/brain.js?tab=readme-ov-file#for-training-with-rnntimestep-lstmtimestep-and-grutimestep Train: https://github.com/BrainJS/brain.js?tab=readme-ov-file#training-options

ow.ai.network.hopfield

ow.ai.network.hopfield(args) : ow.ai.network

Hopfield serves as a content-addressable memory remembering patterns and when feed with new patterns the network returns the most similar one from the patterns it was trained to remember. You need to provide then number of input patterns args = [ 10 ].

ow.ai.network.liquid

ow.ai.network.liquid(args) : ow.ai.network

Liquid state machines are neural networks where neurons are randomly connected to each other. The recurrent nature of the connections turns the time varying input into a spatio-temporal pattern of activations in the network nodes. You need to provide args = [number of inputs, size of pool of neurons, number of outputs, number of random connections, number of random gates] (e.g. 2, 20, 1, 30, 10).

ow.ai.network.lstm

ow.ai.network.lstm(args) : ow.ai.network

LSTM (Long short-term memory) are well-suited to learn from experience to classify, process and predict time series when there are very long time lags of unknown size between important events. There is a minimum of 3 layers (input, memory block (input, memory cell, forget gate, output gate), output). args = [2, 6, 1] means 2 input, 6 memory blocks, 1 output; args = [2, 4, 4, 4, 1] means 2 input neurons, 3 memory blocks and 1 output.

ow.ai.network.lstmtimestep

ow.ai.network.lstmtimestep(args) : ow.ai.network

Examples: https://github.com/BrainJS/brain.js?tab=readme-ov-file#examples Data format: https://github.com/BrainJS/brain.js?tab=readme-ov-file#for-training-with-rnntimestep-lstmtimestep-and-grutimestep Train: https://github.com/BrainJS/brain.js?tab=readme-ov-file#training-options

ow.ai.network.neuralnetwork

ow.ai.network.neuralnetwork(args) : ow.ai.network

Examples: https://github.com/BrainJS/brain.js?tab=readme-ov-file#examples Data format: https://github.com/BrainJS/brain.js?tab=readme-ov-file#for-training-with-neuralnetwork Train: https://github.com/BrainJS/brain.js?tab=readme-ov-file#training-options

ow.ai.network.perceptron

ow.ai.network.perceptron(args) : ow.ai.network

Perceptron or feed-forward neural networks. There is a minimum of 3 layers (input, hidden and output) and a any nmumber of hidden layers. args = [2, 3, 1] means 2 input neurons, 3 hidden neurons and 1 output neuron; args = [2, 10, 10, 10, 10, 1] means 2 input neurons, 4 layers of 10 neurons and 1 output neuron.

ow.ai.network.put

ow.ai.network.put(inputArray, outputArray, learningRate)

Given an inputArray of decimal values, normalize between 0 and 1, will activate the current network and then the outputArray of decimal values, normalize between 0 and 1, with an optionial learningRate (defaults to 0.3).

ow.ai.network.readFile

ow.ai.network.readFile(aFile)

Rebuilds a network from a map stored in aFile previously with ow.ai.network.writeFile.

ow.ai.network.recurrent

ow.ai.network.recurrent(args) : ow.ai.network

Examples: https://github.com/BrainJS/brain.js?tab=readme-ov-file#examples Data format: https://github.com/BrainJS/brain.js?tab=readme-ov-file#neural-network-types Train: https://github.com/BrainJS/brain.js?tab=readme-ov-file#training-options

ow.ai.network.rnn

ow.ai.network.rnn(args) : ow.ai.network

Examples: https://github.com/BrainJS/brain.js?tab=readme-ov-file#examples Data format: https://github.com/BrainJS/brain.js?tab=readme-ov-file#for-training-with-rnn-lstm-and-gru Train: https://github.com/BrainJS/brain.js?tab=readme-ov-file#training-options

ow.ai.network.rnntimestep

ow.ai.network.rnntimestep(args) : ow.ai.network

Examples: https://github.com/BrainJS/brain.js?tab=readme-ov-file#examples Data format: https://github.com/BrainJS/brain.js?tab=readme-ov-file#for-training-with-rnntimestep-lstmtimestep-and-grutimestep Train: https://github.com/BrainJS/brain.js?tab=readme-ov-file#training-options

ow.ai.network.toJson

ow.ai.network.toJson() : Map

Returns a map representation of the current network to be later rebuilt with the fromJson function.

ow.ai.network.train

ow.ai.network.train(trainingData, trainArgs)

Trains the current network with the trainingData provided. trainingData should be an array of maps. Each  map entry should have a input and output keys. Each input and output entries should be an array for the  entry values and output values normalized to a decimal number between 0 and 1. Example:
[{input: [0,0], output: [0]}, {input: [0,1], output: [1]}, {input: [1,0], output: [1]}, {input: [1,1], output :[0]}]\. 

ow.ai.network.writeFile

ow.ai.network.writeFile(aFile)

Writes a compressed file with the map representation of the current network.

ow.ai.normalize.denormalizeWithSchema

ow.ai.normalize.denormalizeWithSchema(aMapOfNormalizedData, aMapSchema, convertBools) : Map

Tries to denormalize aMapOfNormalizedData (result from ow.ai.normalize.withSchema) according with aMapSchema provided.

ow.ai.normalize.intArray

ow.ai.normalize.intArray(anArray) : Array

Returns anArray where all numbers have been rounded to an integer value.

ow.ai.normalize.quantitize

ow.ai.normalize.quantitize(anArray, aLevels) : Array

Given anArray of numbers tries to quantitize returning an array of values between 0 and aLevels. If aLevels is not provided it will default to 10.

ow.ai.normalize.scaleArray

ow.ai.normalize.scaleArray(anArray, aMax, aMin) : Array

Given anArray of numbers tries to normalize returning an array of values between 0 and 1. If aMax or aMin are not provided they will be infered from the provided anArray.

ow.ai.normalize.softMax

ow.ai.normalize.softMax(anArray, aTemperature) : Array

Given anArray of numbers tries to apply a Softmax function returning an array of values between 0 and 1. If aTemperature is provided it will be used to control the smoothness of the output.

ow.ai.normalize.toFeaturesArray

ow.ai.normalize.toFeaturesArray(anArrayOfObjects, ignoredAttrs) : Map

Tries to convert anArrayOfObjects into an array of array of values where each value is positioned in the resulting array by the corresponding key sorted. The result will be a map with the resulting array in 'data' (with the features values ignoring any key on ignoredAttrs), the 'ignoredAttrs' and keys with all the 'keys' identified.

ow.ai.normalize.withSchema

ow.ai.normalize.withSchema(aSimpleMapOfData, aMapSchema, convertBools) : Array

Tries to normalize and return aSimpleMapOfData normalized according with aMapSchema provided. Each element of aMapSchema should be a map describing how to normalize aSimpleMapOfData. Example:

var ar = [
   {name:'workout', duration:'120', enjoy: true, time:1455063275, tags:['gym', 'weights'], crucial: false },
   {name:'lunch', duration:'45', enjoy: false, time:1455063275, tags:['salad', 'wine'], crucial: true },
   {name:'sleep', duration:'420', enjoy: true, time:1455063275, tags:['bed', 'romance'], crucial: true}
];

var sar = {
   name    : { col: 0, oneOf: [ 'workout', 'lunch', 'sleep' ] },
   duration: { col: 1, min: 0, max: 1000 },
   enjoy   : { col: 2 },
   tags    : { col: 3, anyOf: [ 'gym', 'weights', 'salad', 'wine', 'bed', 'romance' ] },
   crucial : { col: 4, scaleOf: [
     { val: true,  weight: 0.85 },
     { val: false, weight: 0.15 }
   ]},
};

$from(ar).sort("time").select((r) => { return normalize(r, sar); });


ow.ai.regression

ow.ai.regression() : Regression

Returns a Regression with the following functions:

   linear(data, options) : Map
   power(data, options) : Map
   exponential(data, options) : Map
   logarithmic(data, options) : Map
   polynomial(data, options) : Map

   data - an array of arrays of x, y values ([[0,1],[1,3],[2,5]])
   options - map to determine the order and precision ({ order: 2, precision: 5})