You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »


Binding variables


Name in scriptDescriptionAspire typeInit scriptProcess script
docCrawled documentAspireObjectfalsetrue
componentAspire workflow component running Groovy scriptsComponentImpltruetrue
connection.clientREST client component for making AI callsGenAIRestRequestertruetrue

utilities.azure.embeddings

utilities.google.embeddings

Methods related to "embeddings" processingEmbeddingstruetrue

job

Job containing the crawled documentJobfalsetrue

secrets

Map of secrets provided in UIMap<String,String>truetrue

template

Map of selected script template variablesMap<String,String>truetrue

utilities.azure.prompts

utilities.google.prompts

Methods related to "prompts" processingPromptstruetrue

utilities.textSplitter

Method related to text splittingTextSplitterComponenttruetrue

variables

Map of variables provided in initialize scriptMap<String,Object>truefalse

utilities

Various helper methodsUtilstruetrue

Document

Component

Connection

Embeddings

utilities.azure.embeddings, utilities.google.embeddings
MethodSyntaxInit scriptProcess script
Initialize Azurevoid utilities.azure.initialize(AspireObject config)truefalse

config:

NameDescriptionDefault
endpoint

model

apiVersion

apiKey



Initialize Google Palm

void utilities.google.initialize(AspireObject config)

truefalse

config:

NameDescriptionDefault
endpoint

model

apiVersion

apiKey




Process

VectorEmbeddingResult utilities.azure.embeddings.process(List<String> splitText)

VectorEmbeddingResult utilities.google.embeddings.process(List<String> splitText)

VectorEmbeddingResult:

TODO

splitText:

TODO

falsetrue
Convert response

VectorEmbeddingsResult utilities.azure.embeddings.convertResponse(String text,  AspireObjectResponse response)

VectorEmbeddingsResult utilities.google.embeddings.convertResponse(String text,  AspireObjectResponse response)

VectorEmbeddingsResult:

TODO

response:

TODO



Create POST body

AspireObject utilities.azure.embeddings.createPostBody(String text)



Create Sub document

AspireObject utilities.azure.embeddings.createSubDoc(VectorEmbeddingsResult vectorEmbeddingsResult, AspireObject doc, int chunkCount)



Example init script:

import com.accenture.aspire.services.AspireObject;

utilities.textSplitter.initialize(getTextSplitterConfig("sentence"))
utilities.azure.embeddings.initialize(getEmbeddingsConfig())

def getEmbeddingsConfig() {
    AspireObject returnValue = new AspireObject("config");
    returnValue.add("endpoint", "${template.endpoint}");
    returnValue.add("model", "${template.model}");
    returnValue.add("apiVersion", "${template.apiVersion}");
    returnValue.add("apiKey", "${secrets.apiKey}");
    return returnValue;
}

def getTextSplitterConfig(String splitType) {
  .....
}

Example script:

def sentences = utilities.textSplitter.process(doc);
embeddings = utilities.azure.embeddings.process(sentences);
doc.add(embeddings.toAspireObject());

Example script:

import com.accenture.aspire.services.AspireException

// split field "content" and create "sentences"
def sentences = utilities.textSplitter.process(doc);

// url
endpointEmbeddings = "${template.endpoint}/openai/deployments/${template.model}/embeddings?api-version=${template.apiVersion}"

// generate and publish embeddings
sentences.eachWithIndex {currentSentence, sentencesCount ->
  embeddingVector = getEmbeddingsFromSentence(endpointEmbeddings, currentSentence)
  subJobAO = utilities.azure.embeddings.createSubDoc(embeddingVector, doc, sentencesCount);
  utilities.createSubJob(job, subJobAO)
}

def getEmbeddingsFromSentence(endpointEmbeddings, sentence) {
  response = connection.client.executePost(endpointEmbeddings, utilities.azure.embeddings.createPostBody(sentence));
  def embeddings = utilities.azure.embeddings.convertResponse(sentence, response)
  return embeddings
}


Job

Secrets

Secrets defined in UI can be accessed in scripts:

client.addHeader("api-key", "${secrets.apiKey}");


Template

If in UI a template script with properties has been selected we can access those properties in the script:

def getEmbeddingsConfig() {
    AspireObject returnValue = new AspireObject("config");
    returnValue.add("endpoint", "${template.endpoint}");
    ....
}
// url
endpointEmbeddings = "${template.endpoint}/openai/deployments/${template.model}/embeddings?api-version=${template.apiVersion}"


Prompts

Text Splitter

Text splitterutilities.textSplitter
MethodSyntaxInit scriptProcess script
Initializevoid utilities.textSplitter.initialize(AspireObject config)truefalse

config:

NameDescriptionDefault
splitType

fieldsToSplit

customSplitRegex

characterThreshold



Process

List<String> utilities.textSplitter.process(AspireObject doc)

List<String>:

TODO

doc:

TODO

falsetrue

Example init script:

import com.accenture.aspire.services.AspireObject;

utilities.textSplitter.initialize(getTextSplitterConfig("sentence"))

def getTextSplitterConfig(String splitType) {
    AspireObject returnValue = new AspireObject("config");
    returnValue.add("splitType", splitType);
    returnValue.add("fieldsToSplit", "content");
    returnValue.add("customSplitRegex", "\\|+");
    returnValue.add("characterThreshold", 4);
    return returnValue;
}

Example script:

def sentences = utilities.textSplitter.process(doc);


Variables

Utilities

REST connection 


Authentication

Request

Response

Throttling, 429 Policy

  • No labels