Package com.embabel.agent.core.support
Class LlmInteraction
-
- All Implemented Interfaces:
-
com.embabel.agent.core.ToolConsumer,com.embabel.agent.core.ToolGroupConsumer,com.embabel.agent.core.ToolSpec,com.embabel.agent.core.ToolSpecConsumer,com.embabel.agent.core.support.LlmCall,com.embabel.agent.core.support.LlmUse,com.embabel.common.ai.prompt.PromptContributorConsumer
public final class LlmInteraction implements LlmCall
Encapsulates an interaction with an LLM. An LlmInteraction is a specific instance of an LlmCall. The LLM must have been chosen and the call has a unique identifier.
-
-
Field Summary
Fields Modifier and Type Field Description private final Stringnameprivate final InteractionIdidprivate final LlmOptionsllmprivate final Set<ToolGroupRequirement>toolGroupsprivate final List<Tool>toolsprivate final List<PromptContributor>promptContributorsprivate final List<ContextualPromptElement>contextualPromptContributorsprivate final BooleangenerateExamplesprivate final Predicate<String>propertyFilterprivate final Booleanvalidationprivate final BooleanuseEmbabelToolLoopprivate final IntegermaxToolIterationsprivate final List<GuardRail>guardRailsprivate final List<ToolInjectionStrategy>additionalInjectionStrategies
-
Constructor Summary
Constructors Constructor Description LlmInteraction(InteractionId id, LlmOptions llm, Set<ToolGroupRequirement> toolGroups, List<Tool> tools, List<PromptContributor> promptContributors, List<ContextualPromptElement> contextualPromptContributors, Boolean generateExamples, Predicate<String> propertyFilter, Boolean validation, Boolean useEmbabelToolLoop, Integer maxToolIterations, List<GuardRail> guardRails, List<ToolInjectionStrategy> additionalInjectionStrategies)
-
Method Summary
Modifier and Type Method Description StringgetName()final InteractionIdgetId()LlmOptionsgetLlm()Set<ToolGroupRequirement>getToolGroups()Tool groups exposed. List<Tool>getTools()List<PromptContributor>getPromptContributors()List<ContextualPromptElement>getContextualPromptContributors()BooleangetGenerateExamples()Whether to generate examples for the prompt. Predicate<String>getPropertyFilter()Filter that determines which properties to include when creating objects. BooleangetValidation()Whether to validate generated objects. final BooleangetUseEmbabelToolLoop()final IntegergetMaxToolIterations()final List<GuardRail>getGuardRails()final List<ToolInjectionStrategy>getAdditionalInjectionStrategies()final StringgetId()Get the interaction ID as a String. final static LlmInteractionfrom(LlmCall llm, InteractionId id)final static LlmInteractionusing(LlmOptions llm)-
-
Constructor Detail
-
LlmInteraction
LlmInteraction(InteractionId id, LlmOptions llm, Set<ToolGroupRequirement> toolGroups, List<Tool> tools, List<PromptContributor> promptContributors, List<ContextualPromptElement> contextualPromptContributors, Boolean generateExamples, Predicate<String> propertyFilter, Boolean validation, Boolean useEmbabelToolLoop, Integer maxToolIterations, List<GuardRail> guardRails, List<ToolInjectionStrategy> additionalInjectionStrategies)
- Parameters:
id- Unique identifier for the interaction.llm- LLM options to use, specifying model and hyperparameterstools- Tools to use for this interactionpromptContributors- Prompt contributors to use for this interactionuseEmbabelToolLoop- If true, use Embabel's own tool loop instead of Spring AI's.maxToolIterations- Maximum number of tool loop iterations (default 20)
-
-
Method Detail
-
getId
final InteractionId getId()
-
getLlm
LlmOptions getLlm()
-
getToolGroups
Set<ToolGroupRequirement> getToolGroups()
Tool groups exposed. This will include directly registered tool groups and tool groups resolved from ToolGroups.
-
getPromptContributors
List<PromptContributor> getPromptContributors()
-
getContextualPromptContributors
List<ContextualPromptElement> getContextualPromptContributors()
-
getGenerateExamples
Boolean getGenerateExamples()
Whether to generate examples for the prompt. Defaults to unknown: Set to false if generating your own examples.
-
getPropertyFilter
Predicate<String> getPropertyFilter()
Filter that determines which properties to include when creating objects.
-
getValidation
Boolean getValidation()
Whether to validate generated objects. Defaults to
true; set tofalseto skip validation.
-
getUseEmbabelToolLoop
final Boolean getUseEmbabelToolLoop()
-
getMaxToolIterations
final Integer getMaxToolIterations()
-
getGuardRails
final List<GuardRail> getGuardRails()
-
getAdditionalInjectionStrategies
final List<ToolInjectionStrategy> getAdditionalInjectionStrategies()
-
getId
final String getId()
Get the interaction ID as a String. Provided for Java compatibility since value classes don't generate standard getters.
-
from
final static LlmInteraction from(LlmCall llm, InteractionId id)
-
using
final static LlmInteraction using(LlmOptions llm)
-
-
-
-