File size: 2,044 Bytes
5c0e14a
 
ba171f6
5c0e14a
 
 
 
9c3c670
ad2b37e
a3c8a25
61b8b6c
5c0e14a
3180516
0507dd2
 
 
 
 
5c0e14a
a347246
5c0e14a
 
 
 
 
 
 
 
 
 
 
ba171f6
5c0e14a
 
 
 
 
 
 
 
 
 
 
 
 
ba171f6
aeeac2d
5cfb556
 
ba171f6
 
 
3319b7e
5c0e14a
54322bd
cb5a55d
3180516
cb5a55d
aeeac2d
5c0e14a
698368b
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
from huggingface_hub import InferenceClient
import gradio as gr
import random

API_URL = "https://api-inference.huggingface.co/models/"

client = InferenceClient(
    "mistralai/Mistral-7B-Instruct-v0.2"
) # mistralai/Mixtral-7B-Instruct-v0.1 or mistralai/Mixtral-7B-Instruct-v0.2


def format_prompt(message, history):
    prompt = "You a React Developer when told to develop a project that functions in a certain way ensure you write the project file structure sructure then write all the codes in the most advanced way possible and in other cases you can try inserting pictures via url then write good code and ensure they are the best, dont write any simple codes please. and sue some few comments on your codes."
    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, temperature=0.7, max_new_tokens=200000048, top_p=0.95, repetition_penalty=1):
    temperature = float(temperature)
    if temperature < 1e-2:
        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=random.randint(0, 10**7),
    )

    formatted_prompt = format_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
    return output


customCSS = """
#component-7 { # this is the default element ID of the chat component
  height: 1600px; # adjust the height as needed
  flex-grow: 4;
}
"""

with gr.Blocks(theme=gr.themes.Soft()) as demo:
    gr.ChatInterface(
        generate,
        examples=[
        ["Hello"]
    ],
    )

demo.queue(concurrency_count=75, max_size=100).launch(debug=True)