AgAsk: A Conversational Search Agent for Answering Agricultural Questions
Macaw is running with Python 3.8, so make sure you have it installed. If you don’t have
sudo pip3 install setuptools. The mentioned installation commands can be executed on Ubuntu. You can use the same or similar commands on other Linux distribution.
Step 1: Installing MongoDB Server
Macaw uses MongoDB for storing and retrieving user interactions (conversations). To install MongoDB server, run the following command:
sudo apt-get install mongodb-server-core
Step 2: Installing Pyserini
Pyserini is an open-source search engine for information retrieval research, we replaced the original Indri retrieval engine with Pyserini for easier development.
To install Pyserini:
pip3 install pyserini==0.14.0
Install pytorch and transformers:
pip3 install torch==1.6.0+cpu torchvision==0.7.0+cpu transformers==4.21.1
Step 3: Installing Macaw
First, clone the Macaw fork from our github repo:
git clone https://github.com/ielab/macaw.git cd macaw sudo pip3 install -r requirements.txt sudo python3 setup.py install
Step 4: Create Telegram bot
We refer the readers to How to Create a Telegram Bot page for detailed instructions.
Step 5: Change the Configurations
We need to make some changes to the configs to run our version of Macaw:
cd macaw/macaw/ sudo vim live_main.py
In this file, you need to modify the
bot_token in the
interface_params, which you need to get by creating a bot in Telegram (Step 4). In
retrieval_params you need to change the
pyserini_index parameter to point to the location that stores your pyserini index file. and same for
retrieval_requested, you can change them depend on your needs.
We run our version of Macaw as in live version, first of all, we need to start the MongoDB server:
Note that this command uses the default database directory (
/data/db) for storing the data. You may need to create
this directory if you haven’t. You can also use other locations using the
Run the above command to start the Macaw server.
To use the retrieval mode, issue your question with
Search: as a prepend, if want to use QA mode, issue your question with
QA: as a prepend. If no prepend found, Macaw will run in QA mode in default.
In retrieval mode, Macaw will reply with a list of retrieved passages, in QA mode, Macaw will generate a specific answer to the question asked.