You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.7 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. import os
  2. import bot_app.fulfillment.utility as util
  3. import bot_app.fulfillment.buying_drink as buying_drink
  4. import bot_app.fulfillment.system_pic as system_pic
  5. import bot_app.fulfillment.whl_family as whl_family
  6. from flask import Blueprint, Flask, jsonify, request, json
  7. import threading
  8. import time
  9. import requests
  10. from queue import Queue
  11. # app = Flask(__name__)
  12. fulfillment = Blueprint('fulfillment', __name__, url_prefix='/qa_bot/fulfillment')
  13. result = None
  14. @fulfillment.route('', methods=['GET', 'POST'])
  15. def index():
  16. jsonObj = request.get_json()
  17. try:
  18. handleName = jsonObj.get('queryResult').get('intent')['displayName']
  19. print('Handler:', handleName)
  20. return eval(handleName + '(jsonObj)')
  21. except Exception as e:
  22. print(str(e))
  23. return util.simple_response(str(e))
  24. @fulfillment.route("/short_call", methods=['GET', 'POST'])
  25. def five_secend_call():
  26. global result
  27. result = None
  28. curr = time.time()
  29. thread = threading.Thread(target=fetch_url, name='query_qa_thread')
  30. thread.start()
  31. while (curr + 4.5) > time.time():
  32. if not result == None:
  33. return jsonify(result.json())
  34. else:
  35. time.sleep(0.3)
  36. return jsonify({"respone": "None"})
  37. def fetch_url():
  38. global result
  39. my_headers = {'Authorization': 'EndpointKey 365cdd9c-7af2-48bd-9dfe-031986319115',
  40. 'Content-Type': 'application/json'}
  41. res = requests.post(
  42. 'https://whlqakb.azurewebsites.net/qnamaker/knowledgebases/f15e1174-339e-4a81-a95e-747143f77b02/generateAnswer'
  43. , headers=my_headers
  44. , json={"question": "outlook有問題可以找誰?"})
  45. print(res.json())
  46. result = res
  47. return res