Spaces:
Running
on
Zero
Running
on
Zero
import logging | |
import os | |
from typing import List, Tuple | |
import gradio as gr | |
from eagle_vl.serve.utils import convert_asis, convert_mdtext, detect_converted_mark | |
ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) | |
small_and_beautiful_theme = gr.themes.Soft( | |
primary_hue=gr.themes.Color( | |
name="nvidia-green", | |
c50="#F3FAE6", | |
c100="#E3F3C2", | |
c200="#C9E98D", | |
c300="#AFDD59", | |
c400="#95D124", | |
c500="#76B900", # NVIDIA green | |
c600="#6AA600", | |
c700="#5C9300", | |
c800="#4F8000", | |
c900="#426D00", | |
c950="#2E5500", | |
), | |
secondary_hue=gr.themes.Color( | |
c50="#d3e3d3", | |
c100="#bfd6bf", | |
c200="#a9c7a9", | |
c300="#93b893", | |
c400="#7da97d", | |
c500="#689A68", | |
c600="#538B53", | |
c700="#3E7C3E", | |
c800="#296D29", | |
c900="#145E14", | |
c950="#0A4A0A", | |
), | |
neutral_hue=gr.themes.Color( | |
name="gray", | |
c50="#f6f7f8", | |
c100="#F2F2F2", | |
c200="#e5e7eb", | |
c300="#d1d5db", | |
c400="#B2B2B2", | |
c500="#808080", | |
c600="#636363", | |
c700="#515151", | |
c800="#393939", | |
c900="#2B2B2B", | |
c950="#171717", | |
), | |
radius_size=gr.themes.sizes.radius_sm, | |
).set( | |
button_primary_background_fill_dark="*primary_600", | |
button_primary_border_color_dark="*primary_600", | |
button_primary_text_color="white", | |
button_primary_text_color_dark="white", | |
button_secondary_background_fill="*neutral_100", | |
button_secondary_background_fill_hover="*neutral_50", | |
button_secondary_background_fill_dark="*neutral_900", | |
button_secondary_text_color="*neutral_800", | |
button_secondary_text_color_dark="white", | |
block_title_background_fill_dark="*primary_900", | |
block_label_background_fill_dark="*primary_900", | |
input_background_fill="#F6F6F6", | |
) | |
def compact_text_chunks(self, prompt, text_chunks: List[str]) -> List[str]: | |
logging.debug("Compacting text chunks...πππ") | |
combined_str = [c.strip() for c in text_chunks if c.strip()] | |
combined_str = [f"[{index+1}] {c}" for index, c in enumerate(combined_str)] | |
combined_str = "\n\n".join(combined_str) | |
# resplit based on self.max_chunk_overlap | |
text_splitter = self.get_text_splitter_given_prompt(prompt, 1, padding=1) | |
return text_splitter.split_text(combined_str) | |
def postprocess(y: List[Tuple[str | None, str | None]]) -> List[Tuple[str | None, str | None]]: | |
""" | |
Parameters: | |
y: List of tuples representing the message and response pairs. Each message and response should be a string, which may be in Markdown format. | |
Returns: | |
List of tuples representing the message and response. Each message and response will be a string of HTML. | |
""" | |
if y is None or y == []: | |
return [] | |
temp = [] | |
for x in y: | |
user, bot = x | |
if not detect_converted_mark(user): | |
user = convert_asis(user) | |
if not detect_converted_mark(bot): | |
bot = convert_mdtext(bot) | |
temp.append((user, bot)) | |
return temp | |
custom_js_path = os.path.join(ROOT_PATH, "assets/custom.js") | |
kelpy_codos_path = os.path.join(ROOT_PATH, "assets/Kelpy-Codos.js") | |
with ( | |
open(custom_js_path, "r", encoding="utf-8") as f, | |
open(kelpy_codos_path, "r", encoding="utf-8") as f2, | |
): | |
customJS = f.read() | |
kelpyCodos = f2.read() | |
def reload_javascript(): | |
print("Reloading javascript...") | |
js = f"<script>{customJS}</script><script>{kelpyCodos}</script>" | |
def template_response(*args, **kwargs): | |
res = GradioTemplateResponseOriginal(*args, **kwargs) | |
res.body = res.body.replace(b"</html>", f"{js}</html>".encode("utf8")) | |
res.init_headers() | |
return res | |
gr.routes.templates.TemplateResponse = template_response | |
GradioTemplateResponseOriginal = gr.routes.templates.TemplateResponse | |