File size: 2,336 Bytes
826e275
 
7a75a15
 
826e275
 
 
d73a8e9
826e275
7a75a15
7b34e37
826e275
e0bb50d
 
b598d9f
 
826e275
 
 
 
7a75a15
0b321da
 
826e275
 
 
0b321da
826e275
 
 
 
 
 
 
b1dd47e
826e275
0e07a66
 
 
d73a8e9
826e275
 
0499581
 
 
 
 
 
826e275
 
 
b1dd47e
826e275
 
 
b1dd47e
0499581
 
 
 
 
 
d73a8e9
 
 
b1dd47e
d73a8e9
9c8dd72
 
 
 
 
0a5446c
 
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
74
75
"""
The Streamlit app for the project demo.
In the demo, the user can write a prompt
 and the model will generate a response using the grouped sampling algorithm.
"""

import streamlit as st
from torch.cuda import CudaError

from hanlde_form_submit import on_form_submit
from on_server_start import main as on_server_start_main

on_server_start_main()

st.title("Grouped Sampling Demo")

with st.form("request_form"):
    selected_model_name: str = st.text_input(
        label="Model name",
        value="gpt2",
        help=f"The name of the model to use."
             f"Supported models are all the models in:"
             f" https://huggingface.co/models?pipeline_tag=text-generation&library=pytorch",
    )

    output_length: int = st.number_input(
        label="Number of word pieces in the generated text, 1-4096 (default: 100)",
        min_value=1,
        max_value=4096,
        value=100,
        help="The length of the output text in tokens (word pieces)."
    )

    submitted_prompt: str = st.text_area(
        label="Input for the model, It is highly recommended to write an English prompt.",
        help="Enter the prompt for the model. The model will generate a response based on this prompt.",
        value="Instruction: Answer in yes or no.\n"
              "Question: Is this a prompt?\n"
              "Answer: ",
        max_chars=2048,
    )

    web_search: bool = st.checkbox(
        label="Web search",
        value=True,
        help="If checked, the model will get your prompt as well as some web search results."
    )

    submitted: bool = st.form_submit_button(
        label="Generate",
        help="Generate the output text.",
        disabled=False,
    )

    if submitted:
        try:
            output = on_form_submit(
                selected_model_name,
                output_length,
                submitted_prompt,
                web_search,
            )
        except CudaError as e:
            st.error("Out of memory. Please try a smaller model, shorter prompt, or a smaller output length.")
        except (ValueError, TypeError, RuntimeError) as e:
            st.error(e)
        st.write(f"Generated text: {output}")


with open("user_instructions_hebrew.md", "r") as fh:
    long_description = fh.read()
st.markdown(long_description)

await on_server_start_main()