Я использую модуль вопросов от Тома Боклиша, созданный на основе prompt_toolkit, как часть действия на моем сервере действий. Моя среда dockerized, т.е. я использую отдельные контейнеры для NLU, Core и core_sdk.
Следующий код отлично работает, когда я запускаю базовый код как отдельный скрипт из rasa_core. Однако, когда я помещаю его как действие на сервере действий, на котором запущен core_sdk, он терпит неудачу.
def run (сам, диспетчер, трекер, домен): acc = tracker.get_slot ('account')
dev_key = requests.get('https://xxxx', timeout=5.0)
questions = []
api_url = 'https://xxxx/token/' + dev_key
api_key = requests.get(api_url, timeout=5.0)
field_data_url = 'https://xxxx/fields/' + api_key + '/' + 'Account'
fields = requests.get(field_data_url).json()
field_list = fields['Object']
for flds in field_list:
if flds['IsRequired']:
q_item = {'type': 'text', 'name': flds['FieldName'], 'message': flds['LabelText']}
questions.append(q_item)
answers = qs.prompt(questions)
#SlotSet('account_fields', answers)
return answers
Я предполагаю, что это как-то связано с взаимодействием с приложением CLI через http, но я не уверен, как с этим бороться. Любая помощь будет высоко ценится.
Спасибо