GradioChatBot / app copy.py
AmadouDiaV
message
8a64278
raw
history blame
5.15 kB
# # Mount Google Drive
# from google.colab import drive
# drive.mount('/content/drive')
import gradio as gr
from transformers import AutoModel, TFAutoModel
# Modèle Hugging Face à partir de l'identifiant du modèle
model_name = "gpt2"
huggingface_model = AutoModel.from_pretrained(model_name)
# Spécifiez l'identifiant de référentiel correct sans informations supplémentaires
repo_name = "motofanacc/monModel"
# Chemin vers les poids de votre modèle dans votre référentiel
model_checkpoint = "main"
# Charger le modèle à partir de Hugging Face Hub
model = TFAutoModel.from_pretrained(repo_name, from_pt=True, model_checkpoint=model_checkpoint)
#a
# # Charger les poids TensorFlow
# tensorflow_weights_path = "motofanacc/GradioChatBot/tree/main/Checkpoints"
# tensorflow_model = TFAutoModel.from_pretrained(tensorflow_weights_path)
def generate_text(model, input_text, max_length=50):
return model.generate(input_text, max_length=max_length)
# preprocessor = keras_nlp.models.GPT2CausalLMPreprocessor.from_preset(
# "gpt2_base_en",
# sequence_length=128,
# )
# gpt2_lm = keras_nlp.models.GPT2CausalLM.from_preset(
# "gpt2_base_en",
# preprocessor=preprocessor,
# )
# gpt2_lm.load_weights('/content/drive/MyDrive/Checkpoints/weights')
# Gradio app
# <a href="https://www.freepik.com/icon/user_456212#fromView=search&term=avatar&track=ais&page=1&position=22&uuid=48125587-eeb5-4fe3-9eb2-f9fe7330f4fe">Icon by Freepik</a>
# <a href="https://www.freepik.com/icon/ai_2814666#fromView=search&term=robot&track=ais&page=1&position=20&uuid=58780fb9-dab6-4fb1-9928-479b2926a242">Icon by Freepik</a>
theme = gr.themes.Soft().set(
background_fill_primary='white',
background_fill_primary_dark='white',
)
with gr.Blocks(theme=theme,css="""
.gradio-container {
background-color: white;
width: 70vw;
}
#chatbot{
background-image: url("https://png.pngtree.com/thumb_back/fh260/background/20201014/pngtree-breast-cancer-awareness-pink-ribbons-background-design-image_417234.jpg");
}
#chatbot .bubble-wrap::-webkit-scrollbar {
width: 20px;
}
#chatbot .bubble-wrap::-webkit-scrollbar-thumb {
background-color: whitesmoke;
border-radius: 20px;
border: 6px solid transparent;
background-clip: content-box;
}
#chatbot .bubble-wrap::-webkit-scrollbar-thumb:hover {
background-color: grey;
}
#chatbot .bubble-wrap::-webkit-scrollbar-track {
background-color: transparent;
}
#chatbot .message p{
text-align: start;
color: white;
}
h1, p {
text-align: center;
color: black;
}
body #footer_note {
text-align: center;
font-size: x-small;
font-weight:bold;
}
.label {
display:none;
}
textarea, .gallery-item, .gallery-item:hover {
color: black;
border: 1px black solid;
background-color: white;
}
.user {
background-color: #374151;
}
.user {
background-color: #111827;
}
.gallery-item:hover {
color: white;
border: 1px black solid;
background-color: black;
}
body gradio-app {
background-color: white;
}
""") as demo:
gr.HTML(f"""
<html>
<body>
<h1>Welcome, I'm CancerBot 🤖</h1>
<p>Here you can ask all questions about cancer</p>
</body>
</html>
""")
def return_message(message, history, model=huggingface_model, max_length=128):
if len(message) <= 1:
gr.Warning('Please enter a message with more than one character.')
elif len(message) > max_length:
gr.Warning(f"Input should not exceed {max_length} characters.")
else:
cancer_answer = generate_text(model, message)
message = "**You**\n" + message
history.append([message, f"**CancerBot**\n{cancer_answer}"])
return "", history
chatbot = gr.Chatbot(
height="60vh",
bubble_full_width=True,
avatar_images=(["/content/drive/MyDrive/Data/avatar.png", "/content/drive/MyDrive/Data/robot.png"]),
show_copy_button=True,
likeable=True,
layout='bubble',
elem_id='chatbot',
show_label=False,
)
with gr.Row():
input_box = gr.Textbox(placeholder="Message CancerBot...", container=False, scale=9)
submit_btn = gr.Button(value="⬆", scale=1)
submit_btn.click(return_message, [input_box, chatbot],[input_box, chatbot])
examples = gr.Examples(examples=["What is a thyroid cancer ?", "How can I know that I have a lung cancer ?",
"How many types of cancer ?"], inputs=[input_box], label="")
input_box.submit(return_message, [input_box, chatbot],[input_box, chatbot])
gr.HTML(f"""
<html>
<body>
<p id="footer_note">CancerBot is based on cancer documents. Consider checking important information.</p>
</body>
</html>
""")
demo.queue(default_concurrency_limit=34) # 32 students, 2 teachers
demo.launch(share=True)