Browse Source

daily commit

master
Richard Shih 6 years ago
parent
commit
d76ba7a736
6 changed files with 43 additions and 42 deletions
  1. 26
      back_end/bot_app/fulfillment/system_pic.py
  2. 9
      back_end/bot_app/fulfillment/utility.py
  3. 50
      back_end/bot_app/fulfillment/whl_report.py
  4. BIN
      resources/assets/intro-to-dialogflowapiai-witai-luisai-41-638.jpg
  5. BIN
      resources/assets/qa88i3t1tj.png
  6. BIN
      resources/assets/qnamaker-luis-architecture.png

26
back_end/bot_app/fulfillment/system_pic.py

@ -1,5 +1,6 @@
import bot_app.fulfillment.utility as util
# 查詢系統pic
def looking_for_pic(fulfillment):
# print(fulfillment)
@ -18,25 +19,23 @@ def looking_for_pic(fulfillment):
where rownum <= 3
'''
with util.get_db_conn() as conn:
res = conn.execute(strsql,sys_code=sys_code)
res = conn.execute(strsql, sys_code=sys_code)
res = res.fetchall()
if len(res) == 0:
strRes = '無法取得指定系統負責人,請重新輸入'
strRes = '無法取得指定系統負責人,請重新輸入'
return util.clear_response(fulfillment, strRes)
else:
strRes = sys_code + '負責人是: '
for row in res:
strRes += row[1]+'('+row[2]+'), '
strRes += ' 請問是否幫您將問題轉給系統負責人?'
return util.simple_response(text_content=strRes)
strRes = sys_code + '負責人是: '
for row in res:
strRes += row[1] + '(' + row[2] + '), '
strRes += ' 請問是否幫您將問題轉給系統負責人?'
return util.simple_response(text_content=strRes)
# 取消問題轉達給pic
def cancel_forward(fulfillment):
util.reset_all_contexts(fulfillmentObj=fulfillment)
return util.simple_response(fulfillmentObj={
'outputContexts': fulfillment.get('queryResult').get('outputContexts')
})
return util.clear_response(fulfillment)
# 確認轉達問題給pic
@ -62,7 +61,8 @@ def forward_issue(fulfillment):
user_name = 'Richard Shih'
strRes = '好的' + user_name + '已將您的問題 "' + issue + '" 轉達給 ' + sys_code + ' 負責人'
return util.simple_response(text_content=strRes)
return util.clear_response(fulfillment, strRes)
def init_app(app):
pass

9
back_end/bot_app/fulfillment/utility.py

@ -37,6 +37,12 @@ def simple_response(text_content='', fulfillmentObj=None):
return jsonify(jsonResp)
def clear_response(fulfillment_obj, text_content) -> dict:
return simple_response(fulfillmentObj={
"fulfillmentText": text_content,
"outputContexts": reset_all_contexts(fulfillmentObj=fulfillment_obj).get('queryResult').get(
'outputContexts')
})
def lookup_context(fulfillment, lookup_pattern):
contexts = fulfillment.get('queryResult').get('outputContexts')
@ -44,9 +50,8 @@ def lookup_context(fulfillment, lookup_pattern):
return next((x for x in contexts if x['name'] == search_key), None)
# 清除所有的Output Contexts
def reset_all_contexts(fulfillmentObj=None,context_list=[]):
def reset_all_contexts(fulfillmentObj=None, context_list=[]) -> dict:
if 'queryResult' in fulfillmentObj.keys():
contexts = fulfillmentObj.get('queryResult').get('outputContexts')
else:

50
back_end/bot_app/fulfillment/whl_report.py

@ -1,9 +1,11 @@
import bot_app.fulfillment.utility as util
def init_app(app):
pass
#表列rs
# 表列rs
def list_rs(fulfillment):
office_code = fulfillment.get('queryResult').get('parameters').get('office_code')
@ -15,65 +17,59 @@ def list_rs(fulfillment):
where a.office_code = :office_code
and a.rs_id = b.rs_id
'''
with util.get_db_conn() as conn:
res = conn.execute(strsql,office_code=office_code)
res = conn.execute(strsql, office_code=office_code)
res = res.fetchall()
if len(res) == 0:
strRes = '無法取得Office: ' + office_code + 'Report Server資訊,請重新查詢!'
return reset_context(fulfillmentObj=fulfillment,text_content=strRes)
strRes = '無法取得Office: ' + office_code + 'Report Server資訊,請重新查詢!'
return util.clear_response(fulfillment, strRes)
else:
strRes = 'Office: ' + office_code + " Report Server資訊如下:\n" + ', '.join(row[0] for row in res)
strRes = 'Office: ' + office_code + " Report Server資訊如下:\n" + ', '.join(row[0] for row in res)
return util.simple_response(text_content=strRes)
#取得rs資訊
# 取得rs資訊
def get_rs_info(fulfillment):
office_code = fulfillment.get('queryResult').get('parameters').get('office_code')
rs_code = fulfillment.get('queryResult').get('parameters').get('rs_code')
rs_url = rs_code.upper() + '.WANHAI.COM:80%'
strsql='''select a.office_code,a.rs_url,a.is_internet,decode(b.is_active,0,'Active','InActive') as status from was5005 a,was5011 b
strsql = '''select a.office_code,a.rs_url,a.is_internet,decode(b.is_active,0,'Active','InActive') as status from was5005 a,was5011 b
where a.rs_id=b.rs_id and upper(a.rs_url) like :rs_url and office_code like :office_code
'''
'''
if office_code:
office_code +='%'
office_code += '%'
else:
office_code='%'
office_code = '%'
with util.get_db_conn() as conn:
res = conn.execute(strsql,rs_url=rs_url,office_code=office_code)
res = conn.execute(strsql, rs_url=rs_url, office_code=office_code)
res = res.fetchall()
if len(res) == 0:
strRes = '無法取得' + rs_code + '資訊,請重新查詢!'
return reset_context(fulfillmentObj=fulfillment,text_content=strRes)
return util.clear_response(fulfillment, strRes)
else:
strRes = rs_code +'資訊如下:\n'
strRes = rs_code + '資訊如下:\n'
for row in res:
strRes += row[1]+'(office: ' + row[0] + ', isInternet: '+row[2]+', Status: ' + row[3] + ') '
strRes += row[1] + '(office: ' + row[0] + ', isInternet: ' + row[2] + ', Status: ' + row[3] + ') '
return util.simple_response(text_content=strRes)
#開啟/關閉rs
# 開啟/關閉rs
def switch_on_off(fulfillment):
office_code = fulfillment.get('queryResult').get('parameters').get('office_code')
switch_action = fulfillment.get('queryResult').get('parameters').get('switch_action')
rs_code = fulfillment.get('queryResult').get('parameters').get('rs_code')
rs_url = rs_code.upper() + '.WANHAI.COM:80'
action_code = '0' if switch_action=='on' else '1'
action_code = '0' if switch_action == 'on' else '1'
strsql = '''update was5011 set is_active=:action_code where rs_id in (select rs_id from was5005 where office_code=:office_code and upper(rs_url)=:rs_url)'''
with util.get_db_conn() as conn:
res = conn.execute(strsql,action_code=action_code,office_code=office_code,rs_url=rs_url)
res = conn.execute(strsql, action_code=action_code, office_code=office_code, rs_url=rs_url)
print(res)
strRes = rs_code + '' + ('開啟' if switch_action=='on' else '關閉')
strRes = rs_code + '' + ('開啟' if switch_action == 'on' else '關閉')
return util.simple_response(text_content=strRes)
def reset_context(fulfillmentObj,text_content):
return util.simple_response(fulfillmentObj={
"fulfillmentText": text_content,
"outputContexts":util.reset_all_contexts(fulfillmentObj=fulfillmentObj).get('queryResult').get('outputContexts')
})

BIN
resources/assets/intro-to-dialogflowapiai-witai-luisai-41-638.jpg

Before After
Width: 638  |  Height: 451  |  Size: 41 KiB

BIN
resources/assets/qa88i3t1tj.png

Before After
Width: 4095  |  Height: 2316  |  Size: 528 KiB

BIN
resources/assets/qnamaker-luis-architecture.png

Before After
Width: 440  |  Height: 431  |  Size: 27 KiB
Loading…
Cancel
Save