Spaces:
Runtime error
Runtime error
Upload folder using huggingface_hub
Browse files- README.md +3 -3
- __pycache__/app.cpython-311.pyc +0 -0
- app.py +1 -1
- requirements.txt +1 -1
- src/backend/gradio_gptchatbot/gptchatbot.py +9 -3
- src/backend/gradio_gptchatbot/gptchatbot.pyi +9 -3
- src/backend/gradio_gptchatbot/templates/component/index.js +0 -0
- src/backend/gradio_gptchatbot/templates/component/style.css +0 -0
- src/demo/app.py +1 -1
- src/frontend/Index.svelte +4 -0
- src/frontend/shared/ChatBot.svelte +22 -7
- src/pyproject.toml +2 -2
README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
| 1 |
|
| 2 |
---
|
| 3 |
tags: [gradio-custom-component,gradio-template-Chatbot]
|
| 4 |
-
title: gradio_gptchatbot V0.0.
|
| 5 |
-
colorFrom:
|
| 6 |
-
colorTo:
|
| 7 |
sdk: docker
|
| 8 |
pinned: false
|
| 9 |
license: apache-2.0
|
|
|
|
| 1 |
|
| 2 |
---
|
| 3 |
tags: [gradio-custom-component,gradio-template-Chatbot]
|
| 4 |
+
title: gradio_gptchatbot V0.0.2
|
| 5 |
+
colorFrom: red
|
| 6 |
+
colorTo: red
|
| 7 |
sdk: docker
|
| 8 |
pinned: false
|
| 9 |
license: apache-2.0
|
__pycache__/app.cpython-311.pyc
CHANGED
|
Binary files a/__pycache__/app.cpython-311.pyc and b/__pycache__/app.cpython-311.pyc differ
|
|
|
app.py
CHANGED
|
@@ -10,7 +10,7 @@ example = [
|
|
| 10 |
|
| 11 |
with gr.Blocks() as demo:
|
| 12 |
with gr.Row():
|
| 13 |
-
GPTChatbot(label="Blank"), # blank component
|
| 14 |
GPTChatbot(value=example, label="Populated", layout="panel"), # populated component
|
| 15 |
|
| 16 |
|
|
|
|
| 10 |
|
| 11 |
with gr.Blocks() as demo:
|
| 12 |
with gr.Row():
|
| 13 |
+
GPTChatbot(label="Blank", placeholder_title="GradioGPT", placeholder_image="https://i.ibb.co/H2kSY2R/Gradio-component-1.png"), # blank component
|
| 14 |
GPTChatbot(value=example, label="Populated", layout="panel"), # populated component
|
| 15 |
|
| 16 |
|
requirements.txt
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
gradio_gptchatbot-0.0.
|
|
|
|
| 1 |
+
gradio_gptchatbot-0.0.2-py3-none-any.whl
|
src/backend/gradio_gptchatbot/gptchatbot.py
CHANGED
|
@@ -68,6 +68,8 @@ class GPTChatbot(Component):
|
|
| 68 |
line_breaks: bool = True,
|
| 69 |
likeable: bool = False,
|
| 70 |
layout: Literal["panel", "bubble"] | None = None,
|
|
|
|
|
|
|
| 71 |
):
|
| 72 |
"""
|
| 73 |
Parameters:
|
|
@@ -126,13 +128,17 @@ class GPTChatbot(Component):
|
|
| 126 |
value=value,
|
| 127 |
)
|
| 128 |
self.avatar_images: list[str | None] = [None, None]
|
| 129 |
-
if avatar_images is None:
|
| 130 |
-
pass
|
| 131 |
-
else:
|
| 132 |
self.avatar_images = [
|
| 133 |
processing_utils.move_resource_to_block_cache(avatar_images[0], self),
|
| 134 |
processing_utils.move_resource_to_block_cache(avatar_images[1], self),
|
| 135 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 136 |
|
| 137 |
def _preprocess_chat_messages(
|
| 138 |
self, chat_message: str | FileMessage | None
|
|
|
|
| 68 |
line_breaks: bool = True,
|
| 69 |
likeable: bool = False,
|
| 70 |
layout: Literal["panel", "bubble"] | None = None,
|
| 71 |
+
placeholder_image: str | Path | None = None,
|
| 72 |
+
placeholder_title: str | None = None,
|
| 73 |
):
|
| 74 |
"""
|
| 75 |
Parameters:
|
|
|
|
| 128 |
value=value,
|
| 129 |
)
|
| 130 |
self.avatar_images: list[str | None] = [None, None]
|
| 131 |
+
if avatar_images is not None:
|
|
|
|
|
|
|
| 132 |
self.avatar_images = [
|
| 133 |
processing_utils.move_resource_to_block_cache(avatar_images[0], self),
|
| 134 |
processing_utils.move_resource_to_block_cache(avatar_images[1], self),
|
| 135 |
]
|
| 136 |
+
self.placeholder_image = None
|
| 137 |
+
if placeholder_image is not None:
|
| 138 |
+
self.placeholder_image = processing_utils.move_resource_to_block_cache(
|
| 139 |
+
placeholder_image, self
|
| 140 |
+
)
|
| 141 |
+
self.placeholder_title = placeholder_title
|
| 142 |
|
| 143 |
def _preprocess_chat_messages(
|
| 144 |
self, chat_message: str | FileMessage | None
|
src/backend/gradio_gptchatbot/gptchatbot.pyi
CHANGED
|
@@ -76,6 +76,8 @@ class GPTChatbot(Component):
|
|
| 76 |
line_breaks: bool = True,
|
| 77 |
likeable: bool = False,
|
| 78 |
layout: Literal["panel", "bubble"] | None = None,
|
|
|
|
|
|
|
| 79 |
):
|
| 80 |
"""
|
| 81 |
Parameters:
|
|
@@ -134,13 +136,17 @@ class GPTChatbot(Component):
|
|
| 134 |
value=value,
|
| 135 |
)
|
| 136 |
self.avatar_images: list[str | None] = [None, None]
|
| 137 |
-
if avatar_images is None:
|
| 138 |
-
pass
|
| 139 |
-
else:
|
| 140 |
self.avatar_images = [
|
| 141 |
processing_utils.move_resource_to_block_cache(avatar_images[0], self),
|
| 142 |
processing_utils.move_resource_to_block_cache(avatar_images[1], self),
|
| 143 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 144 |
|
| 145 |
def _preprocess_chat_messages(
|
| 146 |
self, chat_message: str | FileMessage | None
|
|
|
|
| 76 |
line_breaks: bool = True,
|
| 77 |
likeable: bool = False,
|
| 78 |
layout: Literal["panel", "bubble"] | None = None,
|
| 79 |
+
placeholder_image: str | Path | None = None,
|
| 80 |
+
placeholder_title: str | None = None,
|
| 81 |
):
|
| 82 |
"""
|
| 83 |
Parameters:
|
|
|
|
| 136 |
value=value,
|
| 137 |
)
|
| 138 |
self.avatar_images: list[str | None] = [None, None]
|
| 139 |
+
if avatar_images is not None:
|
|
|
|
|
|
|
| 140 |
self.avatar_images = [
|
| 141 |
processing_utils.move_resource_to_block_cache(avatar_images[0], self),
|
| 142 |
processing_utils.move_resource_to_block_cache(avatar_images[1], self),
|
| 143 |
]
|
| 144 |
+
self.placeholder_image = None
|
| 145 |
+
if placeholder_image is not None:
|
| 146 |
+
self.placeholder_image = processing_utils.move_resource_to_block_cache(
|
| 147 |
+
placeholder_image, self
|
| 148 |
+
)
|
| 149 |
+
self.placeholder_title = placeholder_title
|
| 150 |
|
| 151 |
def _preprocess_chat_messages(
|
| 152 |
self, chat_message: str | FileMessage | None
|
src/backend/gradio_gptchatbot/templates/component/index.js
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
src/backend/gradio_gptchatbot/templates/component/style.css
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
src/demo/app.py
CHANGED
|
@@ -10,7 +10,7 @@ example = [
|
|
| 10 |
|
| 11 |
with gr.Blocks() as demo:
|
| 12 |
with gr.Row():
|
| 13 |
-
GPTChatbot(label="Blank"), # blank component
|
| 14 |
GPTChatbot(value=example, label="Populated", layout="panel"), # populated component
|
| 15 |
|
| 16 |
|
|
|
|
| 10 |
|
| 11 |
with gr.Blocks() as demo:
|
| 12 |
with gr.Row():
|
| 13 |
+
GPTChatbot(label="Blank", placeholder_title="GradioGPT", placeholder_image="https://i.ibb.co/H2kSY2R/Gradio-component-1.png"), # blank component
|
| 14 |
GPTChatbot(value=example, label="Populated", layout="panel"), # populated component
|
| 15 |
|
| 16 |
|
src/frontend/Index.svelte
CHANGED
|
@@ -48,6 +48,8 @@
|
|
| 48 |
like: LikeData;
|
| 49 |
}>;
|
| 50 |
export let avatar_images: [string | null, string | null] = [null, null];
|
|
|
|
|
|
|
| 51 |
|
| 52 |
let _value: [
|
| 53 |
string | { file: FileData; alt_text: string | null } | null,
|
|
@@ -136,6 +138,8 @@
|
|
| 136 |
{layout}
|
| 137 |
{proxy_url}
|
| 138 |
{root}
|
|
|
|
|
|
|
| 139 |
/>
|
| 140 |
</div>
|
| 141 |
</Block>
|
|
|
|
| 48 |
like: LikeData;
|
| 49 |
}>;
|
| 50 |
export let avatar_images: [string | null, string | null] = [null, null];
|
| 51 |
+
export let placeholder_image: string | null = null;
|
| 52 |
+
export let placeholder_title: string | null = null;
|
| 53 |
|
| 54 |
let _value: [
|
| 55 |
string | { file: FileData; alt_text: string | null } | null,
|
|
|
|
| 138 |
{layout}
|
| 139 |
{proxy_url}
|
| 140 |
{root}
|
| 141 |
+
{placeholder_image}
|
| 142 |
+
{placeholder_title}
|
| 143 |
/>
|
| 144 |
</div>
|
| 145 |
</Block>
|
src/frontend/shared/ChatBot.svelte
CHANGED
|
@@ -45,6 +45,8 @@
|
|
| 45 |
export let proxy_url: null | string;
|
| 46 |
export let i18n: I18nFormatter;
|
| 47 |
export let layout: "bubble" | "panel" = "bubble";
|
|
|
|
|
|
|
| 48 |
|
| 49 |
let div: HTMLDivElement;
|
| 50 |
let autoscroll: boolean;
|
|
@@ -136,19 +138,31 @@
|
|
| 136 |
aria-label="chatbot conversation"
|
| 137 |
aria-live="polite"
|
| 138 |
>
|
| 139 |
-
|
| 140 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
</div>
|
| 142 |
-
|
|
|
|
|
|
|
|
|
|
| 143 |
<div class="message-wrap" class:bubble-gap={layout === "bubble"} use:copy>
|
| 144 |
<!-- Existing message elements -->
|
| 145 |
</div>
|
| 146 |
-
<div class="buttons-container">
|
| 147 |
<button class="action-button">Plan a trip</button>
|
| 148 |
<button class="action-button">Brainstorm names</button>
|
| 149 |
<button class="action-button">Write a spreadsheet formula</button>
|
| 150 |
<button class="action-button">Create a charter</button>
|
| 151 |
-
</div>
|
| 152 |
</div>
|
| 153 |
|
| 154 |
{:else}
|
|
@@ -580,14 +594,15 @@
|
|
| 580 |
}
|
| 581 |
|
| 582 |
.centered-logo {
|
| 583 |
-
max-width:
|
| 584 |
margin: 0 auto;
|
| 585 |
}
|
| 586 |
|
| 587 |
.placeholder-text {
|
| 588 |
text-align: center;
|
| 589 |
-
color:
|
| 590 |
font-size: large;
|
|
|
|
| 591 |
margin-bottom: 20px;
|
| 592 |
}
|
| 593 |
|
|
|
|
| 45 |
export let proxy_url: null | string;
|
| 46 |
export let i18n: I18nFormatter;
|
| 47 |
export let layout: "bubble" | "panel" = "bubble";
|
| 48 |
+
export let placeholder_image: string | null = null;
|
| 49 |
+
export let placeholder_title: string | null = null;
|
| 50 |
|
| 51 |
let div: HTMLDivElement;
|
| 52 |
let autoscroll: boolean;
|
|
|
|
| 138 |
aria-label="chatbot conversation"
|
| 139 |
aria-live="polite"
|
| 140 |
>
|
| 141 |
+
{#if placeholder_image}
|
| 142 |
+
<div class="logo-container">
|
| 143 |
+
<img
|
| 144 |
+
class="centered-logo"
|
| 145 |
+
src={get_fetchable_url_or_file(
|
| 146 |
+
placeholder_image,
|
| 147 |
+
root,
|
| 148 |
+
proxy_url
|
| 149 |
+
)}
|
| 150 |
+
alt="logo"
|
| 151 |
+
/>
|
| 152 |
</div>
|
| 153 |
+
{/if}
|
| 154 |
+
{#if placeholder_title}
|
| 155 |
+
<p class="placeholder-text">{placeholder_title}</p>
|
| 156 |
+
{/if}
|
| 157 |
<div class="message-wrap" class:bubble-gap={layout === "bubble"} use:copy>
|
| 158 |
<!-- Existing message elements -->
|
| 159 |
</div>
|
| 160 |
+
<!-- <div class="buttons-container">
|
| 161 |
<button class="action-button">Plan a trip</button>
|
| 162 |
<button class="action-button">Brainstorm names</button>
|
| 163 |
<button class="action-button">Write a spreadsheet formula</button>
|
| 164 |
<button class="action-button">Create a charter</button>
|
| 165 |
+
</div> -->
|
| 166 |
</div>
|
| 167 |
|
| 168 |
{:else}
|
|
|
|
| 594 |
}
|
| 595 |
|
| 596 |
.centered-logo {
|
| 597 |
+
max-width: 100px !important;
|
| 598 |
margin: 0 auto;
|
| 599 |
}
|
| 600 |
|
| 601 |
.placeholder-text {
|
| 602 |
text-align: center;
|
| 603 |
+
color: black; /* Placeholder text color */
|
| 604 |
font-size: large;
|
| 605 |
+
font-weight: bold;
|
| 606 |
margin-bottom: 20px;
|
| 607 |
}
|
| 608 |
|
src/pyproject.toml
CHANGED
|
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
|
|
| 8 |
|
| 9 |
[project]
|
| 10 |
name = "gradio_gptchatbot"
|
| 11 |
-
version = "0.0.
|
| 12 |
description = "Python library for easily interacting with trained machine learning models"
|
| 13 |
readme = "README.md"
|
| 14 |
license = "Apache-2.0"
|
|
@@ -39,7 +39,7 @@ classifiers = [
|
|
| 39 |
dev = ["build", "twine"]
|
| 40 |
|
| 41 |
[tool.hatch.build]
|
| 42 |
-
artifacts = ["/backend/gradio_gptchatbot/templates", "*.pyi", "backend/gradio_gptchatbot/templates"]
|
| 43 |
|
| 44 |
[tool.hatch.build.targets.wheel]
|
| 45 |
packages = ["/backend/gradio_gptchatbot"]
|
|
|
|
| 8 |
|
| 9 |
[project]
|
| 10 |
name = "gradio_gptchatbot"
|
| 11 |
+
version = "0.0.2"
|
| 12 |
description = "Python library for easily interacting with trained machine learning models"
|
| 13 |
readme = "README.md"
|
| 14 |
license = "Apache-2.0"
|
|
|
|
| 39 |
dev = ["build", "twine"]
|
| 40 |
|
| 41 |
[tool.hatch.build]
|
| 42 |
+
artifacts = ["/backend/gradio_gptchatbot/templates", "*.pyi", "backend/gradio_gptchatbot/templates", "backend/gradio_gptchatbot/templates"]
|
| 43 |
|
| 44 |
[tool.hatch.build.targets.wheel]
|
| 45 |
packages = ["/backend/gradio_gptchatbot"]
|