AsposeLlmModel

Inheritance: java.lang.Object, com.aspose.words.AiModel

public class AsposeLlmModel extends AiModel

Provides AI-powered document processing backed by Aspose.LLM - an on-premise LLM inference engine that runs entirely inside the current process, so document content never leaves the machine.

Remarks:

Unlike OpenAiModel / GoogleAiModel / the Anthropic models, this class never performs an HTTP request.

Aspose.LLM is not a dependency of Aspose.Words. To use this class, install the Aspose.LLM package (version 26.6.0 or higher) into your project, so that Aspose.LLM.dll is placed next to Aspose.Words.dll. If it cannot be loaded, the first call to the model throws java.lang.IllegalStateException.

Aspose.LLM has its own license, separate from the Aspose.Words license. You should set it directly, the same way as for any other Aspose product, for example:


 new Aspose.LLM.License().SetLicense("Aspose.Total.lic");
 

This class does not manage that license itself.

The native runtime and the model weights are downloaded by Aspose.LLM on the first request.

Every request is sent in its own chat session, so requests do not affect each other.

Constructors

ConstructorDescription
AsposeLlmModel(String presetName)Initializes a new instance of the AsposeLlmModel class for a specified Aspose.LLM preset.

Methods

MethodDescription
checkGrammar(Document sourceDocument, CheckGrammarOptions options)Checks grammar of the provided document.
create(int modelType)
dispose()Releases the underlying Aspose.LLM model and its native resources.
getTimeout()Gets the number of milliseconds to wait before the request to AI model times out.
getUrl()Not used: AsposeLlmModel runs inference in-process against a local model, so there is no remote endpoint to address.
setTimeout(int value)Sets the number of milliseconds to wait before the request to AI model times out.
setUrl(String value)Not used: AsposeLlmModel runs inference in-process against a local model, so there is no remote endpoint to address.
summarize(Document sourceDocument)
summarize(Document sourceDocument, SummarizeOptions options)Generates a summary of the specified document, with options to adjust the length of the summary.
summarize(Document[] sourceDocuments)
summarize(Document[] sourceDocuments, SummarizeOptions options)Generates a summary for an array of documents, with options to adjust the length of the summary.
translate(Document sourceDocument, int targetLanguage)
withApiKey(String apiKey)Sets a specified API key to the model.

AsposeLlmModel(String presetName)

public AsposeLlmModel(String presetName)

Initializes a new instance of the AsposeLlmModel class for a specified Aspose.LLM preset.

Examples:

Shows how to summarize documents with a local model, so the content never leaves the machine.


 // Aspose.LLM is a separate package with its own license, for example:
 // new Aspose.LLM.License().SetLicense("Aspose.Total.lic");
 Document firstDoc = new Document(getMyDir() + "Big document.docx");
 Document secondDoc = new Document(getMyDir() + "Document.docx");

 // Disposing the model releases the local model and its native resources.
 AsposeLlmModel model = new AsposeLlmModel("Qwen25_3BPresetCpu");
 SummarizeOptions summarizeOptions = new SummarizeOptions();

 summarizeOptions.setSummaryLength(SummaryLength.SHORT);
 Document summary = model.summarize(firstDoc, summarizeOptions);
 summary.save(getArtifactsDir() + "AI.AsposeLlmSummarize.One.docx");

 summarizeOptions.setSummaryLength(SummaryLength.MEDIUM);
 Document combinedSummary = model.summarize(new Document[] { firstDoc, secondDoc }, summarizeOptions);
 combinedSummary.save(getArtifactsDir() + "AI.AsposeLlmSummarize.Multiple.docx");
 

Parameters:

ParameterTypeDescription
presetNamejava.lang.StringThe name of the Aspose.LLM preset class that selects the local model family and its runtime, for example “Qwen25Preset”. Nothing is loaded or downloaded when this constructor runs.

checkGrammar(Document sourceDocument, CheckGrammarOptions options)

public Document checkGrammar(Document sourceDocument, CheckGrammarOptions options)

Checks grammar of the provided document. This operation leverages the connected AI model for checking grammar of document.

Examples:

Shows how to check the grammar of a document.


 Document doc = new Document(getMyDir() + "Big document.docx");

 String apiKey = System.getenv("API_KEY");
 // Use OpenAI generative language models.
 AiModel model = AiModel.create(AiModelType.GPT_4_O_MINI).withApiKey(apiKey);

 CheckGrammarOptions grammarOptions = new CheckGrammarOptions();
 grammarOptions.setImproveStylistics(true);

 Document proofedDoc = model.checkGrammar(doc, grammarOptions);
 proofedDoc.save(getArtifactsDir() + "AI.AiGrammar.docx");
 

Parameters:

ParameterTypeDescription
sourceDocumentDocumentThe document being checked for grammar.
optionsCheckGrammarOptionsOptional settings to control how grammar will be checked.

Returns: Document - A new Document with checked grammar.

create(int modelType)

public static AiModel create(int modelType)

Parameters:

ParameterTypeDescription
modelTypeint

Returns: AiModel

dispose()

public void dispose()

Releases the underlying Aspose.LLM model and its native resources.

Examples:

Shows how to summarize documents with a local model, so the content never leaves the machine.


 // Aspose.LLM is a separate package with its own license, for example:
 // new Aspose.LLM.License().SetLicense("Aspose.Total.lic");
 Document firstDoc = new Document(getMyDir() + "Big document.docx");
 Document secondDoc = new Document(getMyDir() + "Document.docx");

 // Disposing the model releases the local model and its native resources.
 AsposeLlmModel model = new AsposeLlmModel("Qwen25_3BPresetCpu");
 SummarizeOptions summarizeOptions = new SummarizeOptions();

 summarizeOptions.setSummaryLength(SummaryLength.SHORT);
 Document summary = model.summarize(firstDoc, summarizeOptions);
 summary.save(getArtifactsDir() + "AI.AsposeLlmSummarize.One.docx");

 summarizeOptions.setSummaryLength(SummaryLength.MEDIUM);
 Document combinedSummary = model.summarize(new Document[] { firstDoc, secondDoc }, summarizeOptions);
 combinedSummary.save(getArtifactsDir() + "AI.AsposeLlmSummarize.Multiple.docx");
 

getTimeout()

public int getTimeout()

Gets the number of milliseconds to wait before the request to AI model times out. The default value is 100,000 milliseconds (100 seconds).

Examples:

Shows how to change model default timeout.


 String apiKey = System.getenv("API_KEY");
 AiModel model = AiModel.create(AiModelType.GPT_4_O_MINI).withApiKey(apiKey);
 // Default value 100000ms.
 model.setTimeout(250000);
 

Returns: int - The number of milliseconds to wait before the request to AI model times out.

getUrl()

public String getUrl()

Not used: AsposeLlmModel runs inference in-process against a local model, so there is no remote endpoint to address. Present only to satisfy the AiModel contract.

Returns: java.lang.String - The corresponding java.lang.String value.

setTimeout(int value)

public void setTimeout(int value)

Sets the number of milliseconds to wait before the request to AI model times out. The default value is 100,000 milliseconds (100 seconds).

Examples:

Shows how to change model default timeout.


 String apiKey = System.getenv("API_KEY");
 AiModel model = AiModel.create(AiModelType.GPT_4_O_MINI).withApiKey(apiKey);
 // Default value 100000ms.
 model.setTimeout(250000);
 

Parameters:

ParameterTypeDescription
valueintThe number of milliseconds to wait before the request to AI model times out.

setUrl(String value)

public void setUrl(String value)

Not used: AsposeLlmModel runs inference in-process against a local model, so there is no remote endpoint to address. Present only to satisfy the AiModel contract.

Parameters:

ParameterTypeDescription
valuejava.lang.StringThe corresponding java.lang.String value.

summarize(Document sourceDocument)

public Document summarize(Document sourceDocument)

Parameters:

ParameterTypeDescription
sourceDocumentDocument

Returns: Document

summarize(Document sourceDocument, SummarizeOptions options)

public Document summarize(Document sourceDocument, SummarizeOptions options)

Generates a summary of the specified document, with options to adjust the length of the summary.

Examples:

Shows how to summarize documents with a local model, so the content never leaves the machine.


 // Aspose.LLM is a separate package with its own license, for example:
 // new Aspose.LLM.License().SetLicense("Aspose.Total.lic");
 Document firstDoc = new Document(getMyDir() + "Big document.docx");
 Document secondDoc = new Document(getMyDir() + "Document.docx");

 // Disposing the model releases the local model and its native resources.
 AsposeLlmModel model = new AsposeLlmModel("Qwen25_3BPresetCpu");
 SummarizeOptions summarizeOptions = new SummarizeOptions();

 summarizeOptions.setSummaryLength(SummaryLength.SHORT);
 Document summary = model.summarize(firstDoc, summarizeOptions);
 summary.save(getArtifactsDir() + "AI.AsposeLlmSummarize.One.docx");

 summarizeOptions.setSummaryLength(SummaryLength.MEDIUM);
 Document combinedSummary = model.summarize(new Document[] { firstDoc, secondDoc }, summarizeOptions);
 combinedSummary.save(getArtifactsDir() + "AI.AsposeLlmSummarize.Multiple.docx");
 

Parameters:

ParameterTypeDescription
sourceDocumentDocument
optionsSummarizeOptions

Returns: Document

summarize(Document[] sourceDocuments)

public Document summarize(Document[] sourceDocuments)

Parameters:

ParameterTypeDescription
sourceDocumentsDocument[]

Returns: Document

summarize(Document[] sourceDocuments, SummarizeOptions options)

public Document summarize(Document[] sourceDocuments, SummarizeOptions options)

Generates a summary for an array of documents, with options to adjust the length of the summary.

Examples:

Shows how to summarize documents with a local model, so the content never leaves the machine.


 // Aspose.LLM is a separate package with its own license, for example:
 // new Aspose.LLM.License().SetLicense("Aspose.Total.lic");
 Document firstDoc = new Document(getMyDir() + "Big document.docx");
 Document secondDoc = new Document(getMyDir() + "Document.docx");

 // Disposing the model releases the local model and its native resources.
 AsposeLlmModel model = new AsposeLlmModel("Qwen25_3BPresetCpu");
 SummarizeOptions summarizeOptions = new SummarizeOptions();

 summarizeOptions.setSummaryLength(SummaryLength.SHORT);
 Document summary = model.summarize(firstDoc, summarizeOptions);
 summary.save(getArtifactsDir() + "AI.AsposeLlmSummarize.One.docx");

 summarizeOptions.setSummaryLength(SummaryLength.MEDIUM);
 Document combinedSummary = model.summarize(new Document[] { firstDoc, secondDoc }, summarizeOptions);
 combinedSummary.save(getArtifactsDir() + "AI.AsposeLlmSummarize.Multiple.docx");
 

Parameters:

ParameterTypeDescription
sourceDocumentsDocument[]
optionsSummarizeOptions

Returns: Document

translate(Document sourceDocument, int targetLanguage)

public Document translate(Document sourceDocument, int targetLanguage)

Parameters:

ParameterTypeDescription
sourceDocumentDocument
targetLanguageint

Returns: Document

withApiKey(String apiKey)

public AiModel withApiKey(String apiKey)

Sets a specified API key to the model.

Examples:

Shows how to summarize text using OpenAI and Google models.


 Document firstDoc = new Document(getMyDir() + "Big document.docx");
 Document secondDoc = new Document(getMyDir() + "Document.docx");

 String apiKey = System.getenv("API_KEY");
 // Use OpenAI or Google generative language models.
 AiModel model = ((OpenAiModel)AiModel.create(AiModelType.GPT_4_O_MINI).withApiKey(apiKey)).withOrganization("Organization").withProject("Project");

 SummarizeOptions options = new SummarizeOptions();

 options.setSummaryLength(SummaryLength.SHORT);
 Document oneDocumentSummary = model.summarize(firstDoc, options);
 oneDocumentSummary.save(getArtifactsDir() + "AI.AiSummarize.One.docx");

 options.setSummaryLength(SummaryLength.LONG);
 Document multiDocumentSummary = model.summarize(new Document[] { firstDoc, secondDoc }, options);
 multiDocumentSummary.save(getArtifactsDir() + "AI.AiSummarize.Multi.docx");
 

Parameters:

ParameterTypeDescription
apiKeyjava.lang.String

Returns: AiModel