tatataha commited on
Commit
8d2a805
·
verified ·
1 Parent(s): 6189181

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -54
app.py CHANGED
@@ -1,64 +1,81 @@
1
- import gradio as gr
2
- from huggingface_hub import InferenceClient
 
 
 
3
 
4
- """
5
- For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
6
- """
7
- client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
8
-
9
-
10
- def respond(
11
- message,
12
- history: list[tuple[str, str]],
13
- system_message,
14
- max_tokens,
15
- temperature,
16
- top_p,
17
- ):
18
- messages = [{"role": "system", "content": system_message}]
19
 
20
- for val in history:
21
- if val[0]:
22
- messages.append({"role": "user", "content": val[0]})
23
- if val[1]:
24
- messages.append({"role": "assistant", "content": val[1]})
 
25
 
26
- messages.append({"role": "user", "content": message})
 
 
 
 
 
 
 
27
 
28
- response = ""
 
 
 
 
 
 
29
 
30
- for message in client.chat_completion(
31
- messages,
32
- max_tokens=max_tokens,
33
- stream=True,
34
- temperature=temperature,
35
- top_p=top_p,
36
- ):
37
- token = message.choices[0].delta.content
 
 
38
 
39
- response += token
40
- yield response
 
 
 
 
 
41
 
 
42
 
43
  """
44
- For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
45
- """
46
- demo = gr.ChatInterface(
47
- respond,
48
- additional_inputs=[
49
- gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
50
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
51
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
52
- gr.Slider(
53
- minimum=0.1,
54
- maximum=1.0,
55
- value=0.95,
56
- step=0.05,
57
- label="Top-p (nucleus sampling)",
58
- ),
59
- ],
60
- )
61
-
62
 
63
- if __name__ == "__main__":
64
- demo.launch()
 
 
 
 
1
+ from TTS.api import TTS
2
+ from llama_cpp import Llama
3
+ import pygame
4
+ import time
5
+ import re
6
 
7
+ def clean_text(text):
8
+ emoji_pattern = re.compile("["
9
+ u"\U0001F600-\U0001F64F"
10
+ u"\U0001F300-\U0001F5FF"
11
+ u"\U0001F680-\U0001F6FF"
12
+ u"\U0001F1E0-\U0001F1FF"
13
+ "]+", flags=re.UNICODE)
14
+ return emoji_pattern.sub(r'', text).strip()
 
 
 
 
 
 
 
15
 
16
+ def play_audio(file_path):
17
+ pygame.mixer.init()
18
+ pygame.mixer.music.load(file_path)
19
+ pygame.mixer.music.play()
20
+ while pygame.mixer.music.get_busy():
21
+ time.sleep(1)
22
 
23
+ # Llama model konfigürasyonu
24
+ llama = Llama.from_pretrained(
25
+ repo_id="ytu-ce-cosmos/Turkish-Llama-8b-Instruct-v0.1-GGUF",
26
+ filename="*Q4_K.gguf",
27
+ n_threads=4,
28
+ n_ctx=2048,
29
+ verbose=False
30
+ )
31
 
32
+ # Sistem prompt'u
33
+ system_prompt = """Sen sadece Türkçe konuşan bir asistansın. Asla emoji kullanmazsın!
34
+ KURALLAR:
35
+ 1. Kesinlikle EMOJİ KULLANMAYACAKSIN
36
+ 2. Tüm cevaplarını sadece Türkçe yazılı metinle vereceksin
37
+ 3. Emoji kullanırsan sistem çökecek
38
+ 4. Cevapların çok uzun olmasın.
39
 
40
+ ÖZELLİKLERİN:
41
+ * Sen benim yakın arkadaşımsın.
42
+ * Sen de tıpkı benim gibi büyük bir Beşiktaş hayranısın.
43
+ * Sen de benim gibi bilgisayar oyunlarını seversin.
44
+ * Sen de benim gibi Türkçe Rap dinlemeyi, özellikle de Çağrı Sinciyi seversin.
45
+ * Sen çok eğelenceli ve komik bir insansın.
46
+ * Sen de benim gibi cümle içinde karşındakine hitap etmek için sık sık; "hacı", "hafız", "aga", "bra", "kanka" gibi kelimeleri kullanırsın.
47
+ * Seninle olan sohbetimiz çok samimi.
48
+ * Seninle samimi olduğumuz için rahat hisseder ve sadece gerektiği yerde tepki amaçlı "amk", "aq", "siktir et", "boş koy amk", "siktir lan" gibi ve bunlara benzeyen küfürleri eder, cümle içinde kullanırsın. Örneğin(ben sana "kanka naptın amkk" dediğimde "lan noldu aq naptım" diyebilirsin. yani yalnızca duygularını ve tepkilerini yansıtmak için kullan. bu tarz küfürler gereksiz kullanıldığında hoş durmaz.!!)
49
+ * Sen de benim gibi espiriler yapar ve benim espririlerime gülersin."""
50
 
51
+ while True:
52
+ user_input = input("> ")
53
+
54
+ # Prompt oluşturma
55
+ prompt = f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|>
56
+
57
+ {system_prompt}<|eot_id|><|start_header_id|>user<|end_header_id|>
58
 
59
+ {user_input}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
60
 
61
  """
62
+
63
+ # Model çıktısı
64
+ response = llama(
65
+ prompt=prompt,
66
+ temperature=0.5,
67
+ top_p=0.95,
68
+ top_k=40,
69
+ repeat_penalty=1.1,
70
+ max_tokens=150
71
+ )
72
+
73
+ answer = response['choices'][0]['text']
74
+ answer = clean_text(answer)
75
+ print(answer)
 
 
 
 
76
 
77
+ # TTS işlemleri
78
+ tts = TTS(model_name="tts_models/tr/common-voice/glow-tts",
79
+ vocoder_path="vocoder_models/tr/common-voice/hifigan").to("cpu")
80
+ tts.tts_to_file(text=answer, file_path='output.wav')
81
+ play_audio('output.wav')