예제 #1
0
def test_analyze():
    old_get = requests.get
    try:
        def mock_get(url, params):
            global req_url, req_params
            req_url = url
            req_params = params
            return MockResponse(resp_json, url)
        requests.get = mock_get

        resp_json = {u('query'): None, u('intents'): [], u('entities'): []}
        l = luis.Luis(url='http://null/?x=1&q=')
        r = l.analyze('')

        assert req_url == 'http://null/?x=1'
        assert req_params == {'q': ''}
        assert len(r.intents) == 0
        assert len(r.entities) == 0
        assert r.best_intent() is None

        resp_json = {
            u('query'): u('set an alarm for tuesday'),
            u('intents'): [{
                u('intent'): u('builtin.intent.alarm.set_alarm'),
                u('score'): 1.0
            }],
            u('entities'): [{
                u('resolution'): {
                    u('date'): u('XXXX-WXX-2'),
                    u('resolution_type'): u('builtin.datetime.date')
                },
                u('type'): u('builtin.alarm.start_date'),
                u('entity'): u('tuesday')
            }
            ]
        }
        l = luis.Luis(url='http://null/?x=1')
        r = l.analyze('set an alarm for tuesday')

        assert req_url == 'http://null/?x=1'
        assert req_params == {'q': 'set an alarm for tuesday'}
        assert (r.intents[0].intent ==
                'builtin.intent.alarm.set_alarm')
        assert r.intents[0].score == 1.0
        assert (r.best_intent().intent ==
                'builtin.intent.alarm.set_alarm')
    finally:
        requests.get = old_get
예제 #2
0
def message_response(message):
    s = luis.Luis(
        "https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/c88fd2ed-73f8-4255-ae7f-7c07824252f6?subscription-key=b5a6e33be4244c189920b61a0249eefd&timezoneOffset=0&verbose=true&q="
    )
    text = "你好"
    text = s.analyze(message)
    print(text.entities)
    print(text.best_intent())
    intent = ""
    answer = ""
    count = 0
    for intent in text.entities:
        if intent.type in weather_list:
            count += 1
    if count < 3:
        for i, j in enumerate(text.intent()):
            if i == count:
                break
            if j.intent == 'AskTemperature':
                answer += AskTemperature()
                answer += '\n'
            if j.intent == "AskHumidity":
                answer += AskHumidity()
                answer += '\n'
            if j.intent == "AskUV":
                answer += AskUV()
                answer += '\n'
    else:
        if j.intent == 'Weather':
            answer += AskHumidity()
        else:
            return "抱歉,我聽不懂你在說什麼"

    return answer
예제 #3
0
def structure_for_raw_text(text):
    l = luis.Luis(url=os.environ.get("LUIS_URL"))
    r = l.analyze(text)
    b = r.best_intent()
    if b.score > 0.5:
        return (b, r.entities)
    else:
        return None
예제 #4
0
def analyze_text(query):
    l = luis.Luis(
        url='https://eastus.api.cognitive.microsoft.com/luis/v2.0/apps/' +
        str(app_key) + '?subscription-key=' + str(sub_key) +
        '&verbose=true&timezoneOffset=0&q=')

    user_request = query  #input("What do you want to do? ")
    r = l.analyze(user_request)

    return r
예제 #5
0
    def _process(self, message, userinfo=None):
        """
        Query LUIS. Return a Luis object with intents, entities, and the best intent.

        :param message: str: Message string.
        :rtype: luis.Luis()
        """
        luis_object = luis.Luis(url=self.get_app_url())
        prediction = luis_object.analyze(message)
        return prediction
예제 #6
0
def Analyze_User_Intent_LUIS(userText):
    l = luis.Luis(
        url=
        '	https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/d570cd5b-363f-4d0d-a1f0-9beddf2a8f5a?subscription-key=1a306c39a0af4a2d8692835e3b487dc5&verbose=true&timezoneOffset=0&q='
    )
    #    r = l.analyze('Can I get the menu for today')
    r = l.analyze(userText)
    print(r.intents)
    best = r.best_intent()
    print(best.intent)
    return best.intent
예제 #7
0
def luiscall(message_text):

    # Use the URL LUIS gives you when you publish your app.
    l = luis.Luis(
        url=
        'https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/adec8107-fabf-4224-8c4b-a8d1d8be1edb?subscription-key=53178a34ff3841b8a2320609a22a9f93&verbose=true&timezoneOffset=0&q= '
    )

    # Send text to be analyzed:
    r = l.analyze(message_text)

    print(r.best_intent())
    print(r.entities)
예제 #8
0
def test_message_response(message):
    s = luis.Luis(
        "https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/c88fd2ed-73f8-4255-ae7f-7c07824252f6?subscription-key=b5a6e33be4244c189920b61a0249eefd&timezoneOffset=0&verbose=true&q="
    )
    text = "你好"
    text = s.analyze(message)
    print(text.entities)
    count = 0
    for entity in text.entities:
        print(entity.type)
        if entity.type in weather_list:
            count += 1
    print(text.best_intent())
    print(text.intents)
예제 #9
0
    def ventana_hija(self, num):

        if num == 1:  # Alfredo Santos
            var1 = alfredo.Alfredo()
            var1.mostrar('Programa por Alfredo Santos')
        elif num == 2:  # Brandon Esquivel
            var2 = brandon.Brandon()
            var2.funcion('Programa por Brandon Esquivel')
        elif num == 3:  # Cassandra González
            var3 = cassandra.Cassandra()
            var3.mostrar('Programa por Cassandra Gónzalez')
        elif num == 4:  # Cynthia Lizeth
            var4 = cynthiaLizeth.CynthiaLizeth()
            var4.funcion('Programa por Cynthia Lizeth Barron Morales')
        elif num == 5:  # David Martinez
            var5 = david.David()
            var5.mostrar('Programa por David Martinez')
        elif num == 6:  # Eduardo Leal
            var6 = eduardoLeal.EduardoLeal()
            var6.poligono('Programa por Eduardo Leal')
        elif num == 7:  # Erick Alexis Gallegos Ruiz
            var7 = erickAlexis.ErickAlexis()
            var7.mostrar('Programa por Erick Alexis Gallegos Ruiz')
        elif num == 8:  # Francisco Javier Muñoz Rios
            var8 = franciscoJavier.FranciscoJavier()
            var8.funcion('Programa por Francisco Javier Muñoz Rios')
        elif num == 9:  # Jesus De La Cruz
            var9 = jesus.Jesus()
            var9.mostrar('Programa por Jesus De La Cruz')
        elif num == 10:  # Kenneth Mtz
            var10 = kenneth.Kenneth()
            var10.funcion('Programa por Kenneth Mtz')
        elif num == 11:  # Luis Molina
            var11 = luis.Luis()
            var11.funcion('Programa por Luis Molina')
        elif num == 12:  # Nicole Rodríguez González
            var12 = nicole.Nicole()
            var12.funcion('Programa por Nicole Rodríguez González')
        elif num == 13:  # Víctor Hugo Vázquez Gómez
            var13 = victorHugo.VictorHugo()
            var13.ventana_hija('Programa por Víctor Hugo Vázquez Gómez')
예제 #10
0
#!/usr/bin/env python
import luis

LUIS_ENDPOINT = ""  # Coloque aqui a URL do seu endpoint

LUIS = luis.Luis(url=LUIS_ENDPOINT)


class Main(object):
    """Baseado na pergunta do usuário, mostra a resposta mais adequada"""

    ANSWERS = {
        "BEST_LANGUAGE":
        "Sem sombra de dúvidas, a melhor linguagem de programação é Python.",
        "WORST_LANGUAGE":
        "Não sei, mas com a mais absoluta certeza, não é Python.",
        "ABOUT_PYTHON": "Python é a melhor linguagem de programação do mundo.",
        "WELCOME": "Oi amigo! Faça sua pergunta...",
        "GOODBYE": "Tchauzinho! :)",
        "SENTIDO_VIDA": "O sentido da vida é programar em Python.",
        "None":
        "Desculpe, não entendi. Por favor, tente escrever de outra forma."
    }

    def replies(self, text):
        """Baseado na pergunta do usuário, identifica qual a sua intenção"""
        intent = LUIS.analyze(text).best_intent().intent
        answer = self.ANSWERS[intent]
        return answer

    def start(self):
예제 #11
0
# coding: utf-8

# In[3]:

questions_when = []
answers_when = []
questions_where = []
answers_where = []

# In[8]:

import luis

l = luis.Luis(
    url=
    'https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/6dc24e47-4be6-4a17-bad5-11cf23a1f1b0?subscription-key=2c52009f6dfc4ef4af55e12fb680b68f&timezoneOffset=0&verbose=true&q='
)
question = input()
r = l.analyze(question)
best = r.best_intent()
print(best.intent)
quest = ''

for i in range(0, len(r.entities)):
    quest = quest + ' ' + r.entities[i][0]
print(quest)

if best.intent == 'When':
    if len(answers_when) == 0 and len(questions_when) == 0:
        answer = input()
        answers_when.append(answer)
예제 #12
0
파일: app.py 프로젝트: heoegema/Tonzo
import urllib2
import urllib
import requests
from random import randint
from flask import Flask, request
from googleplaces import GooglePlaces, types, lang

# Azure portal URL.
base_url = 'https://westus.api.cognitive.microsoft.com/'
# Your account key goes here. (used for cognitive services)
account_key = ''
google_places_key = ''

headers = {'Content-Type':'application/json', 'Ocp-Apim-Subscription-Key':account_key}

luis_url = luis_url = luis.Luis('')
google_places = GooglePlaces(google_places_key)

app = Flask(__name__)


@app.route('/', methods=['GET'])
def verify():
    # when the endpoint is registered as a webhook, it must echo back
    # the 'hub.challenge' value it receives in the query arguments
    if request.args.get("hub.mode") == "subscribe" and request.args.get("hub.challenge"):
        if not request.args.get("hub.verify_token") == os.environ["VERIFY_TOKEN"]:
            return "Verification token mismatch", 403
        return request.args["hub.challenge"], 200

    return "Hello world", 200
예제 #13
0
    new_corpus = []
    new_corpus.append(new_complaint)
    new_comp = cv.transform(new_corpus).toarray()
    new_prediction = classifier.predict(new_comp)

    dept = lb_make.inverse_transform(new_prediction)

    return (dept[0])


##################### CHATBOT CODE #####################
import luis

# Use the URL LUIS gives you when you publish your app.
l = luis.Luis(
    url=
    'https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/235f96f0-c3a8-4dda-99a7-d78cfd3f198a?subscription-key=83bdfb8db88a4b1d950097fa842529a5&verbose=true&timezoneOffset=330&q= '
)

# Send text to be analyzed:
ticket_no = 0
while (1):
    r = input("Enter text to bot: ")
    if r == 'exit':
        break
    res = l.analyze(r)

    if res.best_intent().intent == "Intro":
        response = 'Yo! How\'s it going? :)'

    elif res.best_intent().intent == "Goodbye":
        response = 'Happy to help :)'
예제 #14
0
import luis
import sys

LUISURL = "https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/3fbbcb67-2cce-4f93-b3df-a13fdf216f96?staging=true&verbose=true&timezoneOffset=-360&subscription-key=cbd45d3a6e6242099f693af2a6d9e3df&q="
l = luis.Luis(url=LUISURL)

#Testing phrases
testString1 = 'Server Name 11 Oct 19 health check'
testString2 = 'Server Name health check'
testString3 = 'run Server Name health check'
testString4 = 'zippy do dah'


#Gets the LUIS intent from a string and prints to screen
def luisGetIntent(intentString):
    res = l.analyze(intentString)
    print(res.intents)
    print()


#Example of how the workflow for a request
def luisWorkflow(intentString):
    print("Checking server is valid using RAP API")
    print("SERVER VALID")
    print("Running LUIS intent check")
    luisTest = l.analyze(intentString).best_intent().intent
    print("Intent response is '" + luisTest + "'")
    print("Run switch where case = '" + luisTest + "'")
    print("Running RAP API workflow for '" + luisTest + "'")

예제 #15
0
import luis

# Use the URL LUIS gives you when you publish your api
l = luis.Luis(url='https://https://api.projectoxford.ai/luis/...')

# Send text to be analyzed:
r = l.analyze('fly forward 10 feet')
예제 #16
0
import luis as msluis
url = "https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/9f0dd57a-bd9b-48dd-97c9-bea0c9b85ee6?subscription-key=77b349a96e6b4c0ea734e76cdf4dfd0d&verbose=true&timezoneOffset=0&q="
luis = msluis.Luis(url=url)

routes = {'reset-password': '******'}

entity_list = {
    'reset-password': ['portal_id', 'postal_code', 'phone_number', 'city']
}
'''
def getRoute(text):
    result = luis.analyze(text).best_intent()
    intent = result.intent
    entities = luis.analyze(data).entities

    route  = routes.get(intent, None)
    return route
'''


def getRoute(text):
    result = luis.analyze(text)
    intent = result.best_intent().intent
    entites = result.entities
    entites = extractEntities(entites, entity_list.get(intent, None))
    return routes.get(intent, None), entites


def extractEntities(entities, keys):
    if not entities or not keys:
        return None
예제 #17
0
import luis

endpoint = 'https://api.projectoxford.ai/luis/v1/application?id=c413b2ef-382c-45bd-8ff0-f76d60e2a821&subscription-key=fe5ca229c0464f699f8a461c305360c5&q='

l = luis.Luis(
    url=
    'https://api.projectoxford.ai/luis/v1/application?id=c413b2ef-382c-45bd-8ff0-f76d60e2a821&subscription-key=fe5ca229c0464f699f8a461c305360c5&q='
)

result = l.analyze('set the alarm for 12am!')

print result.entities

print result.intents
예제 #18
0
def test_no_url_errors():
    with pytest.raises(luis.Error):
        l = luis.Luis()
예제 #19
0
 def __init__(self, luisurl, debug=False):
     self.luis = luis.Luis(luisurl)
     self.response_dict = {}
     self.stem_dict = pickle.load(open('src/utils/stem_dict.dat', 'rb'))
     self.stemmer = SnowballStemmer("english")
     self.debug = debug