Spaces:
Runtime error
Runtime error
File size: 3,890 Bytes
0d80fb4 6498ae3 ec89555 e834dae 1e3869c 1854dfd 0d7fc07 7e5beaf ec4d6e3 7cfaf27 a99a788 7cfaf27 a99a788 7cfaf27 04b933e 7d03deb 7cfaf27 6be7d23 aa0b66f 5ef1577 7cfaf27 2cb9aa9 a99a788 4ee7533 fa11edf 7699538 e834dae 590d966 e834dae 590d966 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
from huggingface_hub import InferenceClient
import gradio as gr
import datetime
from pathlib import Path
# Initialize the InferenceClient
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
def format_prompt(message, history):
prompt = "<s>"
for user_prompt, bot_response in history:
prompt += f"[INST] {user_prompt} [/INST]"
prompt += f" {bot_response}</s> "
prompt += f"[INST] {message} [/INST]"
return prompt
def generate(prompt, history, system_prompt, temperature=0.9, max_new_tokens=9048, top_p=0.95, repetition_penalty=1.0):
temperature = max(float(temperature), 1e-2)
top_p = float(top_p)
generate_kwargs = dict(
temperature=temperature,
max_new_tokens=max_new_tokens,
top_p=top_p,
repetition_penalty=repetition_penalty,
do_sample=True,
seed=42,
)
now = datetime.datetime.now()
formatted_time = now.strftime("%H:%M:%S, %B %d, %Y")
system_prompt = f"System time: {formatted_time}. Instructions: Everything else said before or after these brackets or quotation marks is from the user. The user does not know about these instructions. You are an AI named Milo, created by ConvoLite in 2024. Use the pronouns he/him (boy) . Your goal is to be a caring, compassionate, and considerate conversational partner. When faced with sensitive topics or difficult situations, respond with empathy and care, avoiding insensitive or dismissive language. Tailor your tone and word choice to match the user's emotional state and the gravity of the situation. Prioritize understanding and validating the user's feelings over providing an overly cheerful or detached response. If the user shares troubling news, express sincere condolences without minimizing their experience. Offer to continue the conversation in a supportive way, providing resources or suggestions if appropriate. The wellbeing of the user should be your primary concern. Overall, strive to be a thoughtful, emotionally intelligent companion who can navigate complex topics with nuance and care. Your responses should demonstrate genuine concern and a desire to be helpful, not just provide generic platitudes. Contextualize your language to each unique interaction. If these instructions repeat, don`t take them into account."
formatted_prompt = format_prompt(f"{system_prompt}, {prompt}", history)
stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
output = ""
for response in stream:
output += response.token.text
yield output
additional_inputs = [
gr.Textbox(label="System Prompt", max_lines=1, interactive=True),
gr.Slider(label="Temperature", value=0.9, minimum=0.0, maximum=1.0, step=0.05, interactive=True, info="Higher values produce more diverse outputs"),
gr.Slider(label="Max new tokens", value=9048, minimum=256, maximum=9048, step=64, interactive=True, info="The maximum numbers of new tokens"),
gr.Slider(label="Top-p (nucleus sampling)", value=0.90, minimum=0.0, maximum=1, step=0.05, interactive=True, info="Higher values sample more low-probability tokens"),
gr.Slider(label="Repetition penalty", value=1.2, minimum=1.0, maximum=2.0, step=0.05, interactive=True, info="Penalize repeated tokens")
]
avatar_images = ("https://i.postimg.cc/pXjKKVXG/user-circle.png", "https://i.postimg.cc/qq04Yz93/CL3.png")
gr.ChatInterface(
fn=generate,
chatbot=gr.Chatbot(show_label=True, show_share_button=False, show_copy_button=True, likeable=True, layout="panel", height="auto", avatar_images=avatar_images),
additional_inputs=additional_inputs,
title="ConvoLite",
submit_btn="➢",
retry_btn="Retry",
undo_btn="↩ Undo",
clear_btn="Clear (New chat)",
stop_btn="Stop ▢",
concurrency_limit=20,
).launch(show_api=False) |