Repository: gradio-app/gradio

Issue:
Add missing classes and functions to docs page
- [x] I have searched to see if a similar issue already exists.


**Is your feature request related to a problem? Please describe.**  
As a gradio user, I can't find all the functionality gradio has to offer documented in the Docs page. 

For example, I can't find `gr.update` (https://github.com/gradio-app/gradio/issues/1647), the different flagging callbacks, and some components like `Interpretation` on the docs page. 

Some of these concepts, like the flagging callbacks, are covered in the guides but I think they should also be in the docs page. This will make it easier for developers and users to find all the public apis in one place as opposed to having to click through different guides and skim through the text to the part they need. 

**Describe the solution you'd like**  
Document all user-facing functionality on the Docs page. We may need to reorganize the Docs page too, like adding more subheadings beyond `Interface` and `Components`. 




Discussion:
Adding the brainstorming tag cause this can definitely be fleshed out more. 

Resolving patch:
diff --git a/gradio/flagging.py b/gradio/flagging.py
--- a/gradio/flagging.py
+++ b/gradio/flagging.py
@@ -10,10 +10,13 @@
 
 import gradio as gr
 from gradio import encryptor, utils
+from gradio.documentation import document, set_documentation_group
 
 if TYPE_CHECKING:
     from gradio.components import Component
 
+set_documentation_group("flagging")
+
 
 class FlaggingCallback(ABC):
     """
@@ -54,12 +57,23 @@ def flag(
         pass
 
 
+@document()
 class SimpleCSVLogger(FlaggingCallback):
     """
-    A simple example implementation of the FlaggingCallback abstract class
-    provided for illustrative purposes.
+    A simplified implementation of the FlaggingCallback abstract class
+    provided for illustrative purposes.  Each flagged sample (both the input and output data)
+    is logged to a CSV file on the machine running the gradio app.
+    Example:
+        import gradio as gr
+        def image_classifier(inp):
+            return {'cat': 0.3, 'dog': 0.7}
+        demo = gr.Interface(fn=image_classifier, inputs="image", outputs="label",
+                            flagging_callback=SimpleCSVLogger())
     """
 
+    def __init__(self):
+        pass
+
     def setup(self, components: List[Component], flagging_dir: str):
         self.components = components
         self.flagging_dir = flagging_dir
@@ -95,12 +109,22 @@ def flag(
         return line_count
 
 
+@document()
 class CSVLogger(FlaggingCallback):
     """
-    The default implementation of the FlaggingCallback abstract class.
-    Logs the input and output data to a CSV file. Supports encryption.
+    The default implementation of the FlaggingCallback abstract class. Each flagged
+    sample (both the input and output data) is logged to a CSV file with headers on the machine running the gradio app.
+    Example:
+        import gradio as gr
+        def image_classifier(inp):
+            return {'cat': 0.3, 'dog': 0.7}
+        demo = gr.Interface(fn=image_classifier, inputs="image", outputs="label",
+                            flagging_callback=CSVLogger())
     """
 
+    def __init__(self):
+        pass
+
     def setup(
         self,
         components: List[Component],
@@ -203,37 +227,38 @@ def replace_flag_at_index(file_content):
         return line_count
 
 
+@document()
 class HuggingFaceDatasetSaver(FlaggingCallback):
     """
-    A FlaggingCallback that saves flagged data to a HuggingFace dataset.
+    A callback that saves each flagged sample (both the input and output data)
+    to a HuggingFace dataset.
+    Example:
+        import gradio as gr
+        hf_writer = gr.HuggingFaceDatasetSaver(HF_API_TOKEN, "image-classification-mistakes")
+        def image_classifier(inp):
+            return {'cat': 0.3, 'dog': 0.7}
+        demo = gr.Interface(fn=image_classifier, inputs="image", outputs="label",
+                            allow_flagging="manual", flagging_callback=hf_writer)
     """
 
     def __init__(
         self,
-        hf_foken: str,
+        hf_token: str,
         dataset_name: str,
         organization: Optional[str] = None,
         private: bool = False,
-        verbose: bool = True,
     ):
         """
-        Params:
-        hf_token (str): The token to use to access the huggingface API.
-        dataset_name (str): The name of the dataset to save the data to, e.g.
-            "image-classifier-1"
-        organization (str): The name of the organization to which to attach
-            the datasets. If None, the dataset attaches to the user only.
-        private (bool): If the dataset does not already exist, whether it
-            should be created as a private dataset or public. Private datasets
-            may require paid huggingface.co accounts
-        verbose (bool): Whether to print out the status of the dataset
-            creation.
+        Parameters:
+            hf_token: The HuggingFace token to use to create (and write the flagged sample to) the HuggingFace dataset.
+            dataset_name: The name of the dataset to save the data to, e.g. "image-classifier-1"
+            organization: The organization to save the dataset under. The hf_token must provide write access to this organization. If not provided, saved under the name of the user corresponding to the hf_token.
+            private: Whether the dataset should be private (defaults to False).
         """
-        self.hf_foken = hf_foken
+        self.hf_token = hf_token
         self.dataset_name = dataset_name
         self.organization_name = organization
         self.dataset_private = private
-        self.verbose = verbose
 
     def setup(self, components: List[Component], flagging_dir: str):
         """
@@ -250,7 +275,7 @@ def setup(self, components: List[Component], flagging_dir: str):
             )
         path_to_dataset_repo = huggingface_hub.create_repo(
             name=self.dataset_name,
-            token=self.hf_foken,
+            token=self.hf_token,
             private=self.dataset_private,
             repo_type="dataset",
             exist_ok=True,
@@ -262,7 +287,7 @@ def setup(self, components: List[Component], flagging_dir: str):
         self.repo = huggingface_hub.Repository(
             local_dir=self.dataset_dir,
             clone_from=path_to_dataset_repo,
-            use_auth_token=self.hf_foken,
+            use_auth_token=self.hf_token,
         )
         self.repo.git_pull()
 
diff --git a/gradio/interface.py b/gradio/interface.py
--- a/gradio/interface.py
+++ b/gradio/interface.py
@@ -45,10 +45,10 @@
 @document("launch", "load", "from_pipeline", "integrate")
 class Interface(Blocks):
     """
-    The Interface class is Gradio's main high-level abstraction, and allows you to create a
-    web-based GUI / demo around a machine learning model (or any Python function). You must specify
-    three parameters: (1) the function to create a GUI for (2) the desired input components and
-    (3) the desired output components. Further parameters can be specified to control the appearance
+    Interface is Gradio's main high-level class, and allows you to create a web-based GUI / demo
+    around a machine learning model (or any Python function) in a few lines of code.
+    You must specify three parameters: (1) the function to create a GUI for (2) the desired input components and
+    (3) the desired output components. Additional parameters can be used to control the appearance
     and behavior of the demo.
 
     Example:


Test patch: