Search code examples
pythondeeppavlov

DeepPavlov FAQ Bot is returning a 'collections.OrderedDict' object is not callable error


I'm trying to use collab to build a bot for FAQ with DeepPavlov and I modified a tutorial notebook that DeepPavlov has on their site, the only thing I change is using my sample dataset yet I get the 'collections.OrderedDict' object is not callable error when calling on

answer=model_config(["help"])
answer

The full code for this (seperated in cells) is

!pip install -q deeppavlov

from deeppavlov import configs
from deeppavlov.core.common.file import read_json
from deeppavlov.core.commands.infer import build_model
from deeppavlov import configs, train_model

model_config = read_json(configs.faq.tfidf_logreg_en_faq)

model_config["dataset_reader"]["data_path"] = None
model_config["dataset_reader"]["data_url"] = "https://docs.google.com/spreadsheets/d/e/2PACX-1vSUFqHL9u_KkSCfw03bYCIuzfCzfOwXlvsQeTb8tMVaSDYohcHbfL8jNtV24AZiSLNnJJQs58dIsO8A/pub?gid=788315638&single=true&output=csv"
model_config

answer=model_config(["help"])
answer

Anyone know the fix to help my bot run with the sample dataset url I provided in my code? I'm new to bots, deeppavlov, and collab so I'm having a steep learning curve here.


Solution

  • Your code is missing the model training part - you are trying to call the config object instead of actually training and using a model for prediction on your data.

    However, this is not the only problem here. Firstly, you might want to change the data_path variable to a string object, otherwise you will face problems here (you may try it yourself to check). Secondly, while trying to run your code with my corrections I have faced a csv-parsing error - please check your csv file again and make sure to get rid of empty rows in it. After you do that, this code should work correctly.

    model_config = read_json(configs.faq.tfidf_logreg_en_faq)
    model_config["dataset_reader"]["data_path"] = ''
    model_config["dataset_reader"]["data_url"] = "your-dataset-link"
    
    faq = train_model(model_config)
    answer = faq(["help"])
    answer