deeppavlov.core.agent¶
Basic classes for building DeepPavlov agents.
-
class
deeppavlov.core.agent.agent.
Agent
(skills: List[deeppavlov.core.skill.skill.Skill])[source]¶ Abstract class for agents.
Agent is an entity which receives inputs from the outer word, processes them and returns response to each input. Usually agent implements real-life task, business or user case. Agent encapsulates skills instances, management of skills inference and skills inference results processing. Also agent provides management both for history and state for each utterance and uses only incoming utterances IDs to distinguish them.
Parameters: skills – List of initiated agent skills instances. -
skills
¶ List of initiated agent skills instances.
-
history
¶ Histories for each each dialog with agent indexed by dialog ID. Each history is represented by list of incoming and outcoming replicas of the dialog and updated automatically.
-
states
¶ States for each skill with agent indexed by dialog ID. Each state updated automatically after each wrapped skill inference. So we highly recommend use this attribute only for reading and not to use it for your custom skills management.
-
wrapped_skills
¶ Skills wrapped to SkillWrapper objects. SkillWrapper object gives to Skill __call__ signature of Agent __call__ and handles automatic state management for skill. All skills are wrapped to SkillsWrapper automatically during agent initialisation. We highly recommend to use wrapped skills for skills inference.
-
dialog_logger
¶ DeepPavlov dialog logging facility.
-
-
class
deeppavlov.core.agent.agent.
SkillWrapper
(skill: deeppavlov.core.skill.skill.Skill, skill_id: int, agent: deeppavlov.core.agent.agent.Agent)[source]¶ Skill instances wrapper for internal use in Agent.
SkillWrapper gives to skill interface of Agent and handles automatic state management for skill.
Parameters: - skill – Wrapped skill.
- skill_id – Skill index in Agent.skills list.
- agent – Agent instance.
-
skill
¶ Wrapped skill.
-
skill_id
¶ Skill index in Agent.skills list.
-
agent
¶ Agent instance.
-
class
deeppavlov.core.agent.dialog_logger.
DialogLogger
(enabled: bool = False, agent_name: Optional[str] = None)[source]¶ DeepPavlov dialog logging facility.
DialogLogger is an entity which provides tools for dialogs logging.
Parameters: - enabled – DialogLogger on/off flag.
- agent_name – Agent name which is used for organising log files.
-
agent_name
¶ Agent name which is used for organising log files.
-
log_max_size
¶ Maximum size of log file, kb.
-
self.
log_file
¶ Current log file object.
-
class
deeppavlov.core.agent.filter.
Filter
[source]¶ Abstract class for filters. Filter is a DeepPavlov component, which is used in Agent to select utterances from incoming batch to be processed for each Agent skill.
-
class
deeppavlov.core.agent.processor.
Processor
[source]¶ Abstract class for processors. Processor is a DeepPavlov component, which is used in Agent to process skills responses and give one final response for each utterance.
-
class
deeppavlov.core.agent.rich_content.
RichControl
(control_type: str)[source]¶ Base class for rich controls.
Rich control can be a button, buttons box, plain text, image, etc. All rich control classes should be derived from RichControl.
Parameters: control_type – Name of the rich control type. -
control_type
¶ Name of the rich control type.
-
content
¶ Arbitrary used control content holder.
-
control_json
¶ Control json representation template, which contains control type and content fields.
-
-
class
deeppavlov.core.agent.rich_content.
RichItem
[source]¶ Base class for rich content elements.
Every rich content element is presumed to return its state (including state of nested controls) at least in json format (mandatory) as well as in the formats compatible with other channels.
-
json
() → Union[list, dict][source]¶ Returns json compatible state of the control instance including its nested controls.
Returns: Json representation of control state. Return type: control
-
-
class
deeppavlov.core.agent.rich_content.
RichMessage
[source]¶ Container for rich controls.
All rich content elements returned by agent as a result of single inference should be embedded into RichMessage instance in the order these elements should be displayed.
-
controls
¶ Container for RichControl instances.
-
add_control
(control: deeppavlov.core.agent.rich_content.RichControl)[source]¶ Adds RichControl instance to RichMessage.
Parameters: control – RichControl instance.
-
json
() → list[source]¶ Returns list of json compatible states of the RichMessage instance nested controls.
Returns: - Json representation of RichMessage instance
- nested controls.
Return type: json_controls
-