--- title: ChatGPT Plugins In Gradio emoji: 💻 colorFrom: green colorTo: gray sdk: gradio sdk_version: 3.35.2 app_file: app.py pinned: true license: mit duplicated_from: ysharma/ChatGPT-Plugins-in-Gradio --- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference ## Steps to add new Plugins to your Gradio ChatGPT Chatbot 1. **Acquire the API Endpoint** - You need an API which you can query, and for this example let's consider using a text-to-speech demo hosted on Huggingface Spaces. - **API Endpoint**: [https://gradio-neon-tts-plugin-coqui.hf.space/](https://gradio-neon-tts-plugin-coqui.hf.space/) 2. **Create a Function to Query the API** - You can access any Gradio demo as an API via the Gradio Python Client. ```python from gradio.client import Client def texttospeech(input_text): client = Client("https://gradio-neon-tts-plugin-coqui.hf.space/") result = client.predict( input_text, # str in 'Input' Textbox component "en", # str in 'Language' Radio component api_name="/predict" ) return result ``` 3. **Describe the Function to GPT-3.5** - You need to describe your function to GPT3.5/4. This function definition will get passed to gpt and will suck up your token. GPT may or may not use this function based on user inputs later on. - You can either use the Gradio demo for converting any given function to the required JSON format for GPT-3.5. - Demo: [Function to JSON](https://huggingface.co/spaces/ysharma/function-to-JSON) - Or, you can create the dictionary object on your own. Note that, the correct format is super important here. - MAke sure to name your JSON object description as `_func`. ```python texttospeech_func = { "name": "texttospeech", "description": "generate speech from the given input text", "parameters": { "type": "object", "properties": { "input_text": { "type": "string", "description": "text that will be used to generate speech" } }, "required": [ "input_text" ] } } ``` 4. **Add Function and JSON Object Details** - Add the function definition and description to the `gpt_function_definitions.py` file (simply copy and paste). - `dict_plugin_functions` is a dictionary of all available plugins. Add your plugin information to this dictionary in the required format. ```python 'texttospeech_func': { 'dict': texttospeech_func, 'func': texttospeech } ``` 5. **Update the Chatbot Layout** - Go to the Blocks Chatbot layout and add a new checkbox for your plugin as: ```python texttospeech = gr.Checkbox(label="📝🗣️Text-To-Speech", value=False) ``` - Add the new checkbox component to your submit and click events for your chatbot and to the predict function accordingly. - And also to the `plugins` list in `predict` ```python plugins = [music_gen, stable_diff, image_cap, top_news, texttospeech] ``` **Thats it! you are have added your own brand new CHATGPT Plugin for yourself. Go PLAY!!**