File size: 3,157 Bytes
d31c634
4c9f38f
86218e7
 
 
 
 
 
 
 
 
 
 
31e5c35
86218e7
 
 
 
 
 
 
 
 
 
 
 
 
d31c634
b900928
 
 
c53fa23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4c9f38f
 
c53fa23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
afad1bb
86218e7
afad1bb
362eed9
afad1bb
 
 
 
 
 
 
 
 
 
 
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import gradio as gr
# from humanize import paraphrase_text
from gradio_client import Client
from ai_generate import generate

client = Client("polygraf-ai/Humanizer")
def humanize(
    text, 
    model, 
    temperature=1.2, 
    repetition_penalty=1,
    top_k=50,
    length_penalty=1,
):
    ai_text = generate(f"Write an article about the topic: {text}")
    print(f"AI Generated: {ai_text}")
    ai_text = ai_text["choices"][0]["message"]["content"]
    result = client.predict(
    		text=text,
    		model_name=model,
    		temperature=temperature,
    		repetition_penalty=repetition_penalty,
    		top_k=top_k,
    		length_penalty=length_penalty,
    		api_name="/paraphrase_text"
    )
    return result

with gr.Blocks() as demo:
    gr.Markdown("# Polygraf Writer")
    with gr.Row():
        with gr.Column(scale=0.7):
            gr.Markdown("## Enter a topic to write an article about:")
            input_topic = gr.Textbox(label="Topic")
            model_dropdown = gr.Radio(
                choices=[
                    "Base Model",
                    "Large Model",
                    "XL Model",
                    "XL Law Model",
                    "XL Marketing Model",
                    "XL Child Style Model",
                ],
                value="Large Model",
                label="Select Model Version",
            )
            process_button = gr.Button("Humanize Text")
            gr.Markdown("### Humanized article:")
            output_label = gr.HTML(label="Output")

        with gr.Column(scale=0.3):
                temperature_slider = gr.Slider(minimum=0.5, maximum=2.0, step=0.1, value=1.2, label="Temperature")
                gr.Markdown("Controls the randomness of the paraphrase. Higher values generate more varied text.")
                top_k_slider = gr.Slider(
                    minimum=0,
                    maximum=300,
                    step=25,
                    value=50,
                    label="Top k",
                )
                gr.Markdown("Limits the number of top tokens considered during generation.")
                repetition_penalty_slider = gr.Slider(
                    minimum=1.0,
                    maximum=2.0,
                    step=0.1,
                    value=1,
                    label="Repetition Penalty",
                )
                gr.Markdown("Penalizes repeated words to encourage diverse language use")
                length_penalty_slider = gr.Slider(
                    minimum=0.0,
                    maximum=2.0,
                    step=0.1,
                    value=1.0,
                    label="Length Penalty",
                )
                gr.Markdown("Penalizes shorter outputs.")
    
        process_button.click(
            fn=humanize,
            inputs=[
                input_topic,
                model_dropdown,
                temperature_slider,
                repetition_penalty_slider,
                top_k_slider,
                length_penalty_slider,
            ],
            outputs=output_label,
        )

if __name__ == "__main__":
    demo.launch(demo.launch(server_name="0.0.0.0"))