Под данными аналитики я подразумеваю: какие потоки были задействованы больше всего во время звонка, какие потоки пропущены, какие намерения/вопросы задавались чаще всего, где пользователь чаще всего завершал звонок и т. д.
Я попробовал вызвать веб-перехватчик на каждой странице и записать путь пользователя в базу данных. Затем, когда страница загружается, я получаю потоки и страницы диалогового потока cx в Python,
Код: Выделить всё
def get_dialogflow_flows(parent):
try:
print("Flows and Intents called")
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = current_app.config['GOOGLE_APPLICATION_CREDENTIALS']
flow_client = dialogflowcx.FlowsClient()
page_client = dialogflowcx.PagesClient()
start_time = time.time()
flows = flow_client.list_flows(parent=parent)
print("Flows Fetched --- %s seconds ---" % (time.time() - start_time))
flow_data = []
# start_time = time.time()
for flow in flows:
# Fetch pages for each flow using PagesClient
pages = list(page_client.list_pages(parent=flow.name))
flow_pages = []
for page in pages:
# Get full page details including transition routes
page_details = page_client.get_page(name=page.name)
transitions = []
for route in page_details.transition_routes:
transitions.append({
'target_page': route.target_page,
'target_flow': route.target_flow,
'condition': route.condition
})
flow_pages.append({
'page_name': page.display_name,
'page_id': page.name,
'transitions': transitions # Include transition routes
})
flow_data.append({
'flow': flow.display_name,
'flow_id': flow.name,
'pages': flow_pages
})
# print("Second --- %s seconds ---" % (time.time() - start_time))
return make_response(message="Data fetched successfully", success=True, data=flow_data, status=200)
except Exception as e:
current_app.logger.error(e)
return make_response(message=str(e), success=False, data=None, status=500)
Итак, есть ли способ сделать это лучше? Я знаю, что в консоли Dialogflow CX есть страница аналитики. Могу ли я как-нибудь получить эти данные?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ytics-data