Skip to main content

A framework for turn-taking interactions

Project description

README

A framework for turn-taking interactions.

Example

This is from example.py, using the terminal interface, and demonstrates several things:

  • A plan-based structure that uses graphs to direct content flow

  • Textual variation, including ordered variation in for the pschology questions

  • Writing user input to a database

  • Reading from the database to populate text

  • Error checking through tests that are run on data input, including automatically displaying an error message, if the user gives an invalid input

  • Confirmation of valid user input, which is achieved by specifying a boolean argument when creating the message

  • The use of a generic interface class that is extended to make this interaction display on the terminal

    =====================
    Hola
     0. Hi
    >>> 0
    =====================
    What's your name?
    >>> AJ
    =====================
    'AJ', right?
     0. Yes
     1. No
    >>> 1
    =====================
    What's your name?
    >>> Audrow
    =====================
    'Audrow', right?
     0. Yes
     1. No
    >>> 0
    =====================
    Alright, Audrow, how old are you?
    >>> 1000
    =====================
    Enter a number between 0 and 200
     0. Okay
     1. Oops
    >>> 0
    =====================
    Alright, Audrow, how old are you?
    >>> 27
    =====================
    How are you?
     0. Good
     1. Okay
     2. Bad
    >>> 0
    =====================
    How do you feel about the following statement? 'I am the life of the party'
     0. Strongly agree
     1. Agree
     2. Neutral
     3. disagree
     4. Strongly disagree
    >>> 1
    =====================
    How do you feel about the following statement? 'I am always prepared'
     0. Strongly agree
     1. Agree
     2. Neutral
     3. disagree
     4. Strongly disagree
    >>> 1
    =====================
    How do you feel about the following statement? 'I get stressed out easily'
     0. Strongly agree
     1. Agree
     2. Neutral
     3. disagree
     4. Strongly disagree
    >>> 3
    =====================
    Bye
     0. Bye
     1. See ya!
    >>> 1
    =========================
    Currently in the database
    {'answers': ['Agree',
                 'Agree',
                 'disagree'],
     'question_idx': 3,
     'user_age': 27.0,
     'user_name': 'Audrow'}
    

Setup

Option 1: Clone the repository

Best if you want to modify or view the code - note that you can do the following inside of a virtual environment

git clone https://github.com/robotpt/interaction-engine

An easy way to setup the repository with its dependencies and with your Python path is to use pip.

pip install -e interaction-engine

Tests can be run with the following commands.

cd interaction-engine
python3 -m unittest

Option 2: Use Pip

Best if you just want to use it

python3 -m pip install interaction_engine

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

interaction-engine-0.0.4.tar.gz (13.6 kB view details)

Uploaded Source

File details

Details for the file interaction-engine-0.0.4.tar.gz.

File metadata

  • Download URL: interaction-engine-0.0.4.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for interaction-engine-0.0.4.tar.gz
Algorithm Hash digest
SHA256 c6bf96bdc5fd02d01d3243fd6a456b0dfb4eade285999d7f3b37ebb5ba22dcdc
MD5 ba40928653a2397ebf3cb1b0c02ab374
BLAKE2b-256 5c88340d8b79424ab7071c06c747e0bafcf103b13c40d3032afd99ecac2f0adb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page