File size: 2,311 Bytes
9498f26
 
 
 
932f76a
9498f26
 
 
b29a774
9498f26
 
b29a774
9498f26
 
 
 
 
fe123b2
f398823
b29a774
2f14de8
9498f26
 
fe123b2
9498f26
1bbc4ff
9498f26
 
 
 
 
 
 
 
 
 
0f858d6
b78c4fb
f398823
 
 
 
 
 
 
 
fe123b2
a80e192
fe123b2
f398823
 
 
 
 
 
 
 
 
6cea30c
8c89a95
 
 
7b91826
8c89a95
932f76a
b78c4fb
14b3762
b78c4fb
f398823
 
b78c4fb
932f76a
 
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
61
62
63
64
65
66
67
68
69
70
71
72
73
from huggingface_hub import InferenceClient
import gradio as gr
import random
import prompts

client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")

def format_prompt(message, history):

  prompt = "<s>"
  for user_prompt, bot_response in history:
    print (bot_response)
    prompt += f"[INST] {user_prompt} [/INST]"
    prompt += f" {bot_response}</s> "
  prompt += f"[INST] {message} [/INST]"
  return prompt

def generate(prompt,history,max_new_tokens,seed):
    #seed = random.randint(1,9999999999999)
    print(seed)
    system_prompt = prompts.SONG_WRITER.format(history=history)
    generate_kwargs = dict(
        temperature=0.9,
        max_new_tokens=max_new_tokens,
        top_p=0.95,
        repetition_penalty=1.0,
        do_sample=True,
        seed=seed,
    )

    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.Slider(
        label="Max new tokens",
        value=4096,
        minimum=10,
        maximum=1048*10,
        step=64,
        interactive=True,
        info="The maximum numbers of words the chatbot will return",
    ),
    
    gr.Slider(
        label="Seed",
        value=random.randint(1,9999999999999999),
        minimum=0,
        maximum=9999999999999999,
        step=64,
        interactive=True,
        info="Each seed produces a different output to a single prompt",
    ),
]
examples=[["Write a heavy metal rock song about horses (1000 words)"],
          ["Write a really long song about an elephant love story.  The elephants have been together for a long time. (3000 words)"],
          ["Write a slammin rap song about about a gangster fising trip."],
          ["Use the same lyrics as above, but add more words to each verse"],
         ]
chat=gr.ChatInterface(
    fn=generate,
    chatbot=gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, layout="panel"),
    title="Song Writer",
    additional_inputs=additional_inputs,
    examples=examples,
    concurrency_limit=20,
).outpupt([gr.Audio()])
chat.launch(show_api=False)