|
--- |
|
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!!** |