pikto's picture
Duplicate from ysharma/ChatGPT-Plugins-in-Gradio
fb597a7
---
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 `<function_name>_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!!**