Example #1
0
class BotActions(object):
    """
    An object of a veganBuddy bot.
    """
    def __init__(self, access_token, general_configurations):
        self.general_configurations = general_configurations
        self.access_token = access_token
        self.actions = {
            'send': self.send,
            'get_nutrition_value': NutritionValues.get_nutrition_value,
        }
        self.client = Wit(access_token=self.access_token, actions=self.actions)
        self.client.interactive()

    @staticmethod
    def send(request, response):
        print response['text']

    @staticmethod
    def first_entity_value(entities, entity):
        if entity not in entities:
            return None
        val = entities[entity][0]['value']
        if not val:
            return None
        return val['value'] if isinstance(val, dict) else val
Example #2
0
def main():
    db.setup()
    client = Wit(TOKEN, URL)
    last_update_id = None
    while True:
        updates = get_updates(last_update_id)
        if len(updates["result"]) > 0:
            last_update_id = get_last_update_id(updates) + 1
            handle_updates(updates)
        time.sleep(0.5)
    client.interactive()
Example #3
0
def main():
    if len(sys.argv) != 2:
        print('usage: python ' + sys.argv[0] + ' <wit-token>')
        exit(1)
    access_token = sys.argv[1]

    def send(request, response):
        print(response['text'])

    actions = {
        'send': send,
    }

    client = Wit(access_token=access_token, actions=actions)
    client.interactive()
Example #4
0
File: step1.py Project: edvm/talks
from wit import Wit

def send(request, response):
    print('Bot responde: {}'.format(response['text']))

actions = {
    'send': send,
}

ACCESS_TOKEN = 'BYP2LLV64PDAUH2KPNRHN2T7ICZUGDHV' 
client = Wit(access_token=ACCESS_TOKEN, actions=actions)
client.interactive()
    celebrity = first_entity_value(entities, 'notable_person')
    if celebrity:
        # We can call the wikidata API using the wikidata ID for more info
        return wikidata_description(celebrity)
    elif greetings:
        return 'Hi! You can say something like "Tell me about Beyonce"'
    else:
        return "Um. I don't recognize that name. " \
                "Which celebrity do you want to learn about?"


def wikidata_description(celebrity):
    try:
        wikidata_id = celebrity['external']['wikidata']
    except KeyError:
        return 'I recognize %s' % celebrity['name']
    rsp = get(
        'https://www.wikidata.org/w/api.php', {
            'ids': wikidata_id,
            'action': 'wbgetentities',
            'props': 'descriptions',
            'format': 'json',
            'languages': 'en'
        }).json()
    description = rsp['entities'][wikidata_id]['descriptions']['en']['value']
    return 'ooo yes I know %s -- %s' % (celebrity['name'], description)


client = Wit(access_token=access_token)
client.interactive(handle_message=handle_message)
Example #6
0
    def wit_interactive(self):

        client = Wit(access_token=self.WIT_TOKEN)
        client.interactive()
Example #7
0
from wit import Wit
import os

client = Wit(os.environ.get('WITAI_ACCESS_TOKEN'))
client.interactive()
Example #8
0
File: joke.py Project: wit-ai/pywit
    if not val:
        return None
    return val['value'] if isinstance(val, dict) else val


def select_joke(category):
    jokes = all_jokes[category or 'default']
    shuffle(jokes)
    return jokes[0]


def handle_message(response):
    entities = response['entities']
    get_joke = first_entity_value(entities, 'getJoke')
    greetings = first_entity_value(entities, 'greetings')
    category = first_entity_value(entities, 'category')
    sentiment = first_entity_value(entities, 'sentiment')

    if get_joke:
        return select_joke(category)
    elif sentiment:
        return 'Glad you liked it.' if sentiment == 'positive' else 'Hmm.'
    elif greetings:
        return 'Hey this is joke bot :)'
    else:
        return 'I can tell jokes! Say "tell me a joke about tech"!'


client = Wit(access_token=access_token)
client.interactive(handle_message=handle_message)
Example #9
0
    elif (entity_contains(entities, "judge")):
        context = judge(request)

    elif (entity_contains(entities, "sentence_type")
          or entity_contains(entities, "get_info")):
        context = get_info(request)

    elif (entity_contains(entities, "want_more_info")):
        context = more_info(request)

    elif (entity_contains(entities, "exit_greeting")):
        judge(request)
        context['response_text'] = data["states"]["JUDGE"]["exit"]
        if verbose: print(data["states"]["JUDGE"]["exit"])
        sys.exit()

    #print("## RSP:")
    #print(context['response_text'])

    return context['response_text']


###################################################################

# client = Wit(access_token=access_token, actions=actions)
client = Wit(access_token=access_token)

client.interactive(handleMessage)
#client.interactive()