from response_generation import ResponseGenerator import gradio as gr DEFAULT_MODEL = "shaneweisz/DialoGPT-finetuned-multiCONAN" DECODING_CONFIG = {"max_new_tokens": 100, "no_repeat_ngram_size": 3, "num_beams": 10} TITLE = "AutoCounterspeech" DESCRIPTION = """ Built by [Shane Weisz](https://shaneweisz.com) for my MPhil project on _Automating Counterspeech in Dialogue Systems_ at Cambridge University.

The project is supervised by [Dr Marcus Tomalin](https://www.crassh.cam.ac.uk/about/people/marcus-tomalin/) and forms part of the [Giving Voice to Digital Democracies](https://www.crassh.cam.ac.uk/research/projects-centres/giving-voice-to-digital-democracies/) project on the _The Social Impact of Artificially Intelligent Communications Technology_.

The system is built by fine-tuning [DialoGPT](https://huggingface.co/microsoft/DialoGPT-medium#:~:text=DialoGPT%20is%20a%20SOTA%20large,single%2Dturn%20conversation%20Turing%20test) on the [MultiCONAN](https://github.com/marcoguerini/CONAN#Multitarget-CONAN) dataset, a dataset comprising a set of hate speech inputs and appropriate counterspeech responses produced under the supervision of trained NGO operators from [Stop Hate UK](https://www.stophateuk.org/).

Try it out: **Enter some hate speech and see if the system generates an appropriate counterspeech response.**""" ARTICLE = f""" **Model:** {DEFAULT_MODEL}
**Decoding parameters:** {DECODING_CONFIG} """ model = ResponseGenerator(DEFAULT_MODEL, DECODING_CONFIG) def respond(input): return model.respond(input) demo = gr.Interface(fn=respond, inputs="text", outputs="text", title = TITLE, description = DESCRIPTION, article = ARTICLE) demo.launch()