美文网首页
WatsonAPI之Conversation(使用Flask调用

WatsonAPI之Conversation(使用Flask调用

作者: teitiyuu | 来源:发表于2017-07-29 17:06 被阅读0次

    使用Flask和Conversation 做一个小的对话程序

    使用Flask做一个对话程序

    事前准备
    • 做成一个conversation的workspace
    示例代码
    • 1 初始化conversation对象

    username和password是api的用户名密码,version是api的版本号

        def __init__(self):
            self.cvsn = ConversationV1(
              username=CVSN.USERNAME,
              password=CVSN.PASSWORD,
              version='2017-05-26'
            )
    
    • 2 封装一个对话方法

    text是对话文本,context是上下文。返回值是conversation的回答文本
    注意如果想进行连续的对话,则需要把前次对话取得的response中的context作为参数传入本次对话中,如果context为空,则视为一个新的对话开始。

        def message(self,text,context):
            response = self.cvsn.message(workspace_id=CVSN.WORKSPACE, message_input={
                'text': text},context=context)
            self.infos = json.dumps(response,ensure_ascii=False, indent=2)
            self.context = response['context']
            return response['output']['text'][0]
    
    • 3 画面入口方法

    作为入口,在用户使用之前先调用一次conversation取得context
    将context放入session中。
    这里需要注意一点,想使用session 需要在flask对象中注册secret_key

    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'atp_secret_key'
    
    @app.route('/', methods=['GET'])
    def conversation():
        #初始页面
        question = ''
        answer = cvsn.message(question, None)
        debugInfo = cvsn.debugInfo()
        session['cvsn_context'] = cvsn.context
        return render_template('cvsn.html',question = question, answer = answer, debugInfo = debugInfo)
    
    效果图
    • 4 对话方法

    将画面上输入的问题发送给conversation

    @app.route('/question', methods=['GET'])
    def question():
        #从画面获取文本信息
        question = request.args.get('qTxt', '')
        context = session['cvsn_context']
        answer = cvsn.message(question, context)
        
        session['cvsn_context'] = cvsn.context
        debugInfo = cvsn.debugInfo()
        
        question = ''
        return render_template('cvsn.html',question = question, answer = answer, debugInfo = debugInfo)
    
    效果图

    相关文章

      网友评论

          本文标题:WatsonAPI之Conversation(使用Flask调用

          本文链接:https://www.haomeiwen.com/subject/chdclxtx.html