peleitor
peleitor

Reputation: 469

Watson Conversation always returning first Variation text

We are using Watson Conversation from Python. Our dialog has responses with variation texts, but we always receive the first one variation -that is the problem. The dialog does work well when you run it from Bluemix Converation Tooling.

def wd_conv_send_message(sTexto):
    # Replace with the context obtained from the initial request
    context = {}

    workspace_id = conv_workspaceid

    response = conversation.message(
        workspace_id=workspace_id,
        message_input={'text': sTexto},
        context=context
    )

    # print(json.dumps(response, indent=2))
    print(response['output']['text'][0])

enter image description here

Upvotes: 0

Views: 57

Answers (2)

peleitor
peleitor

Reputation: 469

It turned out to be a somewhat erratic behaviour from Watson Conversation side, combined with debugging: if you run/debug from Pycharm -either setting Sequential or Random- you get only the very first Variation several times (five or more). But if you run from Python interpreter command line, it seems to work fine. So, I guess -just speculative- it has to do with some timing issue when running from Pycharm.

Upvotes: 0

Simon O'Doherty
Simon O'Doherty

Reputation: 9359

Change:

response = conversation.message(
    workspace_id=workspace_id,
    message_input={'text': sTexto},
    context=context
)

to:

response = conversation.message(
    workspace_id=workspace_id,
    message_input={'text': sTexto},
    context=context
)
context = response['context']

Conversation is stateless. So you need to send back the context you received or it won't know where to continue on from.

Upvotes: 1

Related Questions