File size: 2,134 Bytes
ec11884
 
 
8abd7cb
 
ec11884
 
8abd7cb
 
549f4f9
 
 
 
ec11884
549f4f9
8abd7cb
549f4f9
8abd7cb
ec11884
549f4f9
8abd7cb
549f4f9
 
 
 
ec11884
549f4f9
ec11884
549f4f9
ec11884
549f4f9
 
 
ec11884
 
8abd7cb
ec11884
549f4f9
ec11884
 
549f4f9
ec11884
 
 
549f4f9
 
 
 
ec11884
549f4f9
 
 
 
 
 
 
 
ec11884
 
 
8abd7cb
549f4f9
8bd3a9c
 
 
 
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
import gradio as gr
from huggingface_hub import InferenceClient

# Use Arabic-optimized model
client = InferenceClient("aubmindlab/aragpt2-base")

def respond(
    message: str,
    history: list[list[str]],  # Updated format
    system_message="أنت مساعد مفيد يتحدث العربية",
    max_tokens=512,
    temperature=0.7,
    top_p=0.95,
):
    # Force Arabic responses
    prompt = f"باللغة العربية: {message}"
    
    # Format history in messages format
    messages = [{"role": "system", "content": system_message}]
    
    for user_msg, bot_msg in history:
        if user_msg:
            messages.append({"role": "user", "content": user_msg})
        if bot_msg:
            messages.append({"role": "assistant", "content": bot_msg})

    messages.append({"role": "user", "content": prompt})

    # Generate Arabic response
    response = ""
    for chunk in client.text_generation(
        prompt=prompt,
        max_new_tokens=max_tokens,
        stream=True,
        temperature=temperature,
        repetition_penalty=1.2,
    ):
        response += chunk
        yield response

# Mobile-optimized Arabic interface
demo = gr.ChatInterface(
    respond,
    additional_inputs=[
        gr.Textbox(value="أنت مساعد عربي مفيد", label="الرسالة النظام"),
        gr.Slider(minimum=1, maximum=512, value=256, label="الحد الأقصى للكلمات"),
        gr.Slider(minimum=0.1, maximum=1.0, value=0.5, label="الابتكار"),
        gr.Slider(minimum=0.1, maximum=1.0, value=0.9, label="الدقة"),
    ],
    css="""
    .gradio-container {direction: rtl;}
    textarea {font-family: 'Amiri', serif;}
    """,
    examples=[
        ["ما هو أفضل حل للزراعة في السودان؟"],  # Sudan example
        ["كيف يمكن تطوير الذكاء الاصطناعي في السعودية؟"]  # KSA example
    ]
)

if __name__ == "__main__":
    # Correct launch parameters
    demo.launch(
    share=True,  # Enable shareable link
    server_name="0.0.0.0",  # Allow external access
    server_port=7860  # Default Gradio port
)