{"id":13935781,"url":"https://github.com/SwapneelM/Protobot","last_synced_at":"2025-07-19T21:30:39.897Z","repository":{"id":38801961,"uuid":"155395828","full_name":"SwapneelM/Protobot","owner":"SwapneelM","description":"Prototyping a Chatbot using Jack the Reader","archived":false,"fork":false,"pushed_at":"2022-12-08T01:15:58.000Z","size":85847,"stargazers_count":6,"open_issues_count":14,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-27T03:34:36.054Z","etag":null,"topics":["chatbot","machine-comprehension","natural-language-processing","webapp"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SwapneelM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-30T14:06:16.000Z","updated_at":"2024-02-13T12:28:34.000Z","dependencies_parsed_at":"2023-01-25T02:31:00.442Z","dependency_job_id":null,"html_url":"https://github.com/SwapneelM/Protobot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SwapneelM/Protobot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwapneelM%2FProtobot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwapneelM%2FProtobot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwapneelM%2FProtobot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwapneelM%2FProtobot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SwapneelM","download_url":"https://codeload.github.com/SwapneelM/Protobot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwapneelM%2FProtobot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266019657,"owners_count":23864916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatbot","machine-comprehension","natural-language-processing","webapp"],"created_at":"2024-08-07T23:02:05.586Z","updated_at":"2025-07-19T21:30:39.891Z","avatar_url":"https://github.com/SwapneelM.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Prototyping a Chatbot\n\nConversational AI Systems have seen a meteoric rise in the past few years as Deep Learning Techniques offered increasingly accurate solutions for problems relating to language understanding. We present a model for prototyping chatbots developed using state-of-the-art technology in an attempt to offer a simple, clean interface for researchers developing solutions in this domain.\n\n## Example: Context-based Question-Answering System\n\nIn this end-to-end pipeline we demonstrate how to build a context-based question answering system using [Jack the Reader](https://github.com/uclmr/jack/). Note that you can switch your model from FastQA (used here) to others trained on different datasets and plug it into the [Django View](qa/views.py) to change the use-case/model which will accordingly modify your chatbot. \n\n\n## Installation\n\n* Clone this repository\n\t\n\t\t$ git clone https://github.com/SwapneelM/Protobot.git\n\n* Create a Python3 virtual environment (we've named it 'venv' here)\n\n\t\t$ virtualenv -p python3 venv\n\t\t$ source venv/bin/activate  # or activate.csh depending on your platform\n\n* Install the requirements\n\n\t\t$ pip3 install -r requirements.txt\n\n* Download some data (here, we use the Stanford QA and GloVe datasets)\n\n\t\t$ cd Protobot/\n\t\t$ ./data/SQuAD/download.sh\n\t\t$ ./data/GloVe/download.sh\n\n* To play around, download the pretrained models\n\n\t\t$ wget -O fastqa.zip https://www.dropbox.com/s/qb796uljoqj0lvo/fastqa.zip?dl=1\n\t\t$ unzip fastqa.zip \u0026\u0026 mv fastqa fastqa_reader\n\n* Run the migrations for creating the database for the django webapp\n\n        $ python manage.py makemigrations\n        $ python manage.py migrate\n\n* Run the server and visit `localhost:8000` on your browser to see the result\n\n        $ python manage.py runserver\n\n* Of course, you can always train your own model(s)\n\n\t\t$ python3 bin/jack-train.py with train='data/SQuAD/train-v1.1.json' dev='data/SQuAD/dev-v1.1.json' reader='fastqa_reader' \\\n\t\t\u003e repr_dim=300 dropout=0.5 batch_size=64 seed=1337 loader='squad' save_dir='./fastqa_reader' epochs=20 \\\n\t\t\u003e with_char_embeddings=True embedding_format='memory_map_dir' embedding_file='data/GloVe/glove.840B.300d.memory_map_dir' vocab_from_embeddings=True\n\nor using a pre-defined configuration\n\n\t\t$ python3 bin/jack-train.py with config='./conf/qa/squad/fastqa.yaml'\n\n* Refer to the documentation for [Jack the Reader](JACK-README.md) for more information on playing around with the models.\n\n\n## Usage\n\n#### Provide the Context Paragraph to the System\n* You can also provide a document instead of plaintext as context, check out [custom_test.py](custom_test.py) for reference on how to read from a document.\n\n![Provide the Context to the System](img/context.png)\n\n#### Ask Away!\n![Ask your Question](img/question.png)\n\n\n## References\n\nThis app draws mainly from two sources used as building blocks for the context-based question answering system:\n\n1. [Jack the Reader: A Machine Reading Comprehension framework by Dirk Weissenborn et. al](https://github.com/uclmr/jack)\n\n2. [Chat with Iron Man, by Kurt Lopez](https://codepen.io/kurtlopez/full/gevzRW)\n\n### Developed By [CC Developers](http://www.ccdev.in)\n\n* [Rudresh Panchal](https://github.com/rpanchal1996)\n* [Avais Pagarkar](https://github.com/avaisp)\n* [Swapneel Mehta](https://github.com/swapneelm)\n\n**Shameless Plug:** Check out our student community and their projects, [DJ Unicode](https://github.com/djunicode)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSwapneelM%2FProtobot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSwapneelM%2FProtobot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSwapneelM%2FProtobot/lists"}