2017-08-28 21 views
1

訓練は上記のコードは基づいてトレーニングデータとステートメント及び応答テーブルを移入空会話ボット会話テーブル

python manage.py train

を使用して実行された後、会話ボット変換テーブルが空でありますymlファイルこれは問題ありません。

ただし、テスト中にチャットボックスとレスポンスに送信された文は空の会話表に移動する必要があり、訓練された文と応答データ表に追加しないでください。

答えて

1

会話インターフェースを起動すると、ボットはすべての会話をDBに記録し始めます。

会話はその後、会話がそうでなければ、新たな識別子

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の会話ボットのADMINページを作成し、既存の会話に追加しますDBに存在している場合は、会話ボットの source codeに見れば

enter image description here

これについてさらにヘルプが必要な場合はお知らせください。

+0

素晴らしい!説明をいただきありがとうございます。必要な唯一の助けはw.r.tです。私の[投稿](https://stackoverflow.com/questions/45910997/bestmatchadapter-confuse-two-different-questions-with-same-response)の別のものへ。親切に、あなたの意見を教えてください。再度、感謝します。 –

+1

私はできるだけ早く行います –

+0

ありがとうございます。それでも、私は重複が起こっていると感じています。将来のchatterbotのリリースがこれを修正することを願っています。会話表には、投稿されたユーザーのステートメントと応答のみが含まれている必要があります。 StatementテーブルとResponseテーブルは、 'python manage train 'を使用して入力された訓練データだけを持つべきであり、ユーザーの入力から何も得られません。 –