Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Easy Heading Free
navigationTitleOn this Page
wrapNavigationTexttrue
navigationExpandOptionexpand-all-by-default

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
Method
Description
SyntaxInit 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:

Code Block
languagegroovy
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:

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

Example script:

Code Block
languagegroovy
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

Template

Prompts

Text Splitter

Text splitterutilities.textSplitter
MethodDescriptionSyntaxInit 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:

Code Block
languagegroovy
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:

Code Block
languagegroovy
def sentences = utilities.textSplitter.process(doc);


Variables

Utilities

REST connection 


Authentication

Request

Response

Throttling, 429 Policy