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

Compare with Current View Page History

« Previous Version 11 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
MethodDescriptionSyntaxInit scriptProcess script
Initialize Azure
void 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

Template

Prompts

Text Splitter

Text splitterutilities.textSplitter
MethodDescriptionSyntaxInit scriptProcess script
Initialize
void 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