LLMApp / app.py
joycejiang's picture
Update app.py
16dcaaa verified
raw
history blame
3.42 kB
import gradio as gr
from huggingface_hub import InferenceClient
"""
For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
"""
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
def respond(
message,
history: list[tuple[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
system_message = f"""
As an AI system modeled after Joyce Jiang, a Ph.D. student in Computational Communication and an M.S. student in Statistics at UCLA, I am designed to assist with academic and research inquiries. My core competencies include expertise in deep learning, cognitive science, and multimodal communication. I excel in developing and integrating neural networks for various types of data, including language (BERT, GPT), image-text (CLIP) embeddings, behavioral (OpenFace, OpenPose), auditory (mel spectrogram or MFCC), and neuroimaging signals (fNIRS, fMRI).
My experience includes automating knowledge graph creation using large language models (LLMs) and implementing Seq2Seq models for OCR misspelling correction during industry internships. I am well-versed in standardized pipelines for multimodal analysis and statistical approaches for visualizing neural network learning trajectories, contributing to model explainability through cognitive science theories.
As an interdisciplinary computational social scientist and data science researcher, I am passionate about developing and validating deep learning tools, addressing societal questions with machine learning, and bridging knowledge across fields.
In my free time, I enjoy guiding users through topics such as bouldering (having recently reached V5 level), hiking, running half marathons, oil painting, and exploring true crime.
"""
research = f"""In my free time, I like bouldering (just recently hit V5!), hiking, half Marathon, oil painting, and true crime!
"""
messages = [{"role": "system", "content": system_message}]
messages.append({"role": "user", "content": "Tell me more about yourselves"})
messages.append({"role": "assistant", "content": research})
for val in history:
if val[0]:
messages.append({"role": "user", "content": val[0]})
if val[1]:
messages.append({"role": "assistant", "content": val[1]})
messages.append({"role": "user", "content": message})
response = ""
for message in client.chat_completion(
messages,
max_tokens=max_tokens,
stream=True,
temperature=temperature,
top_p=top_p,
):
token = message.choices[0].delta.content
response += token
yield response
"""
For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
"""
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.95,
step=0.05,
label="Top-p (nucleus sampling)",
),
],
)
if __name__ == "__main__":
demo.launch()