iai-group / dialoguekit Goto Github PK
View Code? Open in Web Editor NEWDialogueKit
Home Page: https://iai-group.github.io/DialogueKit/main/
License: Apache License 2.0
DialogueKit
Home Page: https://iai-group.github.io/DialogueKit/main/
License: Apache License 2.0
Create a function that can export/save the dialogue history to a yml file.
The common format should be the same as the one used from moviebot, a sample can be seen here.
To comply with the agent-based simulator, we need to design the preference model.
It should be able to:
Some classes would be much easier to use if they had comparison functions.
Classes of primary interest:
Some default behaviours are different between macOS and Windows, such as open().
We have to make sure our functionality works across platforms.
Specifically for open(), we need to specify the encoding ex. open(filepath, encoding="uff-8").
Optionally provide an Ontology for the Item constructor; if given, only properties that are present in the ontology would be allowed.
Likely do the same in ItemCollection.
Some strings such as "USER" and "EXIT" are used as constants but not defined in that way.
Find a good location for them.
It's needed for
When developing with a package it is quite frustrating if the developing experience is unnecessarily tedious. Two examples: Firstly, when debugging it is quite frustrating to just see a scrambled mess off a hash with the corresponding class name for an object and it is not immediately clear what the content is. Secondly, the same problem occurs when printing an object.
Lost of data object functionality hinges on comparisons and hashing. Thus our classes can be easily used, by us and others alike.
Examples of something that we want to work, that do not work currently.
Comparison
A = Intent(text="HELLO")
B = Intent(text="HELLO")
# This will not work
A == B
Hashing
A = Intent(text="HELLO")
B = {}
# This will not work
B[A] = "somevalue"
Our core classes would be much easier to use if they implemented some of the python class special name methods. The most useful special methods are listed below with link to python docs.
To make it simple to test DialogueKit add documentation on how to use the User.
With the User we can talk to an Agent using the terminal.
Figure out how to change dialogue_manager
to dialogue_manager: DialogueManager
in register_dialogue_manager()
without triggering circular imports error.
The test of Rasa annotation converter need to validated the generated yml files. Especially the one that gets fed to the training of Rasa models.
Create AnnotatedUtterance and replace Utterance with that wherever appropriate (incl. build_template_from_instances())
Todays Utterance functionality should be kept in the AnnotatedUtterance, while the Utterance class should only contain the uttered text.
Use the types Utterance and Intent to build the NLG template.
The current NLG template does not use the core classes.
This makes future improvements to the core classes irrelevant to the template. As this is a mayor drawback of the current implementation which uses strings for the template.
Rework the template structure to use the core classes.
Important to maintain the same functionality as the current solution.
Currently, it's hard-coded in the dialogue manager on "bye".
Instead, this should be part of the Agent's functionality.
The default Rasa nlu pipeline performs well, try to implemented it.
Parroting agents are not necessarily the best agents too test with as the poses no logic.
A better solution should be created. So development with UserSimCRS can progress.
A simple mathematics agent will suffice to develop UserSimCRS further.
Agent conversation flow.
Change UserPreferences to be in [-1,1]
This will group the same functionality in the Participant class
The cosine and Rasa intent classification models should support being saved and loaded.
The Rasa parrot agent should communicate with the rasa-parrot with localhost requests.
Create an abstract class for annotation converters, and also implement a converter from dialoguekit/moviebot data to rasa specific format. In addition create files that may be useful as entity type to entity examples, etc.
The way the Platform and DM (Dialogue Manager) interact as of now, has made the scope of what the DM does too large and tied to DialogueKit. Restricting communication of participants to native to DialogueKit implementations. Much off what the current DM does should be handled by different implementations of the Platform.
Platform
The Platform should be the way the participants communicate. This can either be native to DialogueKit, or other means such as REST APIs etc.
Dialogue Manager
The DM should only orchestrate the communication, and request the Platform to communicate to the participants.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.