File size: 1,967 Bytes
84a6ebb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from transformers import pipeline

# โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”
# 1. ุชุญู…ูŠู„ ูˆุงุนุฏุงุฏ ุงู„ู†ู…ูˆุฐุฌ
# โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”

# ู‡ู†ุณุชุฎุฏู… ู†ู…ูˆุฐุฌ "google/flan-t5-base" ูƒู…ุซุงู„ ุฎููŠู ู†ุณุจูŠู‹ุง
# ุชุฃูƒุฏ ุฅู†ูƒ ู…ุซุจุช ู…ูƒุชุจุฉ 'transformers' ูˆ 'torch' ู‚ุจู„ ุงู„ุชุดุบูŠู„
chatbot = pipeline(
    task="text2text-generation",
    model="google/flan-t5-base",
    device=0   # ู„ูˆ ุนู†ุฏูƒ GPU. ู„ูˆ ู…ุด ุนู†ุฏูƒ GPUุŒ ุฎู„ู‘ูŠู‡ -1 ุฃูˆ ุงุญุฐูู‡ ุฎุงู„ุต.
)

# โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”
# 2. ุฏุงู„ุฉ ุงู„ุฑุฏ ุนู„ู‰ ุงู„ู…ุณุชุฎุฏู…
# โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”
def get_response(user_input):
    # ู‡ู†ู…ุฑุฑ ุงู„ู†ุต ู„ู„ู†ู…ูˆุฐุฌ ุนู„ุดุงู† ูŠูˆู„ุฏ ุฑุฏ
    result = chatbot(
        user_input,
        max_length=200,   # ุฃู‚ุตู‰ ุทูˆู„ ู„ู„ุฑุฏ
        do_sample=True,   # ุชูุนูŠู„ ุงู„ุนุดูˆุงุฆูŠุฉ ุจุดูƒู„ ุจุณูŠุท
        top_p=0.9,        # ู†ุณุจุฉ ุงู„ู€ nucleus sampling
        temperature=0.7   # ุชุญูƒู… ููŠ ุงู„ุชู†ูˆุน ุฅูŠู‡ ู‚ุฏ ููŠ ุงู„ุฑุฏูˆุฏ
    )
    # ุจู†ุฑุฌู‘ุน ู†ุตู‘ ุงู„ุฑุฏ ุงู„ู…ูˆู„ู‘ุฏ
    return result[0]["generated_text"]

# โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”
# 3. ุฅู†ุดุงุก ูˆุงุฌู‡ุฉ Gradio
# โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”
iface = gr.Interface(
    fn=get_response,
    inputs=gr.Textbox(
        lines=2,
        placeholder="ุงูƒุชุจ ุณุคุงู„ูƒ ุฃูˆ ุฑุณุงู„ุชูƒ ู‡ู†ุง..."
    ),
    outputs="text",
    title="๐Ÿค– ุดุงุช ุจูˆุช AI ุญู‚ูŠู‚ูŠ - FLAN-T5",
    description="ุงูƒุชุจ ุฃูŠ ุณุคุงู„ ุฃูˆ ูƒู„ุงู…ุŒ ูˆุงู„ู†ู…ูˆุฐุฌ ู‡ูŠุฑุฏ ุนู„ูŠูƒ ุจุทุฑูŠู‚ุฉ ุฐูƒูŠุฉ. ุจุณ ุงูุชูƒุฑ ุฅู† ุงู„ู†ู…ูˆุฐุฌ ู…ุด ู…ุซุงู„ูŠ 100%ุŒ ูˆู…ู…ูƒู† ูŠุทู„ุน ุฑุฏูˆุฏ ุบุฑูŠุจุฉ ุฃุญูŠุงู†ู‹ุง. ๐Ÿ˜‰"
)

# โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”
# 4. ุชุดุบูŠู„ ุงู„ุชุทุจูŠู‚
# โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”
if __name__ == "__main__":
    iface.launch(share=False)  # ู„ูˆ ุนุงูŠุฒ ุชู†ุดุฑู‡ ุนู„ู‰ ุงู„ู†ุช ุงุณุชุฎุฏู… share=True