1

在 Django admin 中,使用执行训练后,聊天机器人转换表为空

python manage.py train

上面的代码使用基于 yml 文件的训练数据填充语句和响应表。这可以。

但是,在测试期间,发布到聊天机器人的语句和响应应该进入空对话表,不应添加到训练后的语句和响应数据表中。

4

1 回答 1

1

当您启动对话界面时,机器人将开始将您的所有对话记录到数据库中。

如果您查看chatterbot 的源代码,如果对话存在于数据库中,那么对话将附加到现有对话中,否则它将创建一个新的标识符

    conversation.id = request.session.get('conversation_id', 0)
    existing_conversation = False
    try:
        Conversation.objects.get(id=conversation.id)
        existing_conversation = True

    except Conversation.DoesNotExist:
        conversation_id = self.chatterbot.storage.create_conversation()
        request.session['conversation_id'] = conversation_id
        conversation.id = conversation_id

    if existing_conversation:
        responses = Response.objects.filter(
            conversations__id=conversation.id
        )

        for response in responses:
            conversation.statements.append(response.statement.serialize())
            conversation.statements.append(response.response.serialize())

    return conversation

一个示例 Django chatterbot ADMIN 对话页面

在此处输入图像描述

如果您需要任何进一步的帮助,请告诉我。

于 2017-08-29T10:07:32.023 回答