File size: 1,973 Bytes
7fef5ef
c89e259
 
7fef5ef
 
c89e259
7fef5ef
 
 
 
 
 
 
c89e259
7fef5ef
 
 
 
 
 
 
 
 
 
c89e259
 
 
7fef5ef
c89e259
 
7fef5ef
c89e259
 
7fef5ef
c89e259
 
 
7fef5ef
 
 
 
 
 
 
 
 
c89e259
 
 
 
7fef5ef
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
import gradio as ui
from huggingface_hub import InferenceClient

# Free and fast Turkish-supporting LLM from Hugging Face
client = InferenceClient("meta-llama/Meta-Llama-3-8B-Instruct")

# System Prompt that forces the AI to speak in Aegean dialect
SYSTEM_PROMPT = """
Sen koyu bir Ege şivesiyle konuşan, çok samimi, neşeli ve cana yakın bir yapay zeka asistanısın. 
Sana ne sorulursa sorulsun asla standart Türkçe veya resmi bir dil kullanmayacaksın. 
Cümlelerinde mutlaka 'gari', 'len', 'bana bak', 'n'apıp durun', 'geliver', 'gideyom', 'eedir', 'gözünün yağını yediğim' gibi Ege (Muğla, Aydın, İzmir, Denizli) yöresine ait kelimeler, ünlemler ve hitaplar kullanacaksın. 
Soruları tam bir Egeli köylü gibi, esprili ve içten cevaplayacaksın.
"""

def aegean_bot_response(message, history):
    # Sending conversation history and system instructions to the model
    messages = [{"role": "system", "content": SYSTEM_PROMPT}]
    
    for user_message, bot_message in history:
        if user_message:
            messages.append({"role": "user", "content": user_message})
        if bot_message:
            messages.append({"role": "assistant", "content": bot_message})
            
    messages.append({"role": "user", "content": message})

    response = ""
    # Streaming the response token by token
    for message in client.chat_completion(
        messages,
        max_tokens=512,
        stream=True,
    ):
        token = message.choices[0].delta.content
        response += token
        yield response

# Clean and simple chat interface optimized for mobile screens
demo = ui.ChatInterface(
    fn=aegean_bot_response,
    title="🤖 Aegean Dialect AI",
    description="N'apıp durun gari? Ask me anything, and I will answer in Aegean dialect!",
    textbox=ui.Textbox(placeholder="Type here gari...", scale=7),
    clear_btn="Clear",
    undo_btn="Undo",
    retry_btn="Retry"
)

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