bilalabic commited on
Commit
746ae42
·
verified ·
1 Parent(s): 1e54176

Upload 4 files

Browse files
Files changed (4) hide show
  1. .gitattributes +35 -35
  2. README.md +23 -13
  3. app.py +201 -0
  4. requirements.txt +6 -0
.gitattributes CHANGED
@@ -1,35 +1,35 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,13 +1,23 @@
1
- ---
2
- title: AIYildiz FitTurkAI
3
- emoji: 🏢
4
- colorFrom: gray
5
- colorTo: blue
6
- sdk: gradio
7
- sdk_version: 5.35.0
8
- app_file: app.py
9
- pinned: false
10
- license: apache-2.0
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: AIYildiz FitTurkAI
3
+ emoji: 📉
4
+ colorFrom: gray
5
+ colorTo: red
6
+ sdk: gradio
7
+ sdk_version: 5.35.0
8
+ app_file: app.py
9
+ pinned: false
10
+ license: apache-2.0
11
+ ---
12
+
13
+ # FitTürkAI - Türkçe Sağlık Asistanı
14
+
15
+ Bu Space, FitTürkAI modelini Hugging Face üzerinde çalıştırır.
16
+ GGUF formatındaki model Hugging Face Hub'dan otomatik olarak indirilir.
17
+
18
+ - Doğal Türkçe dil işleme
19
+ - Obezite, diyabet gibi durumlara yönelik öneriler
20
+ - Gradio arayüzü ile etkileşim
21
+
22
+
23
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from llama_cpp import Llama
2
+ import gradio as gr
3
+ import os
4
+
5
+
6
+ theme = gr.themes.Base(
7
+ primary_hue="red",
8
+ secondary_hue="slate"
9
+ ).set(
10
+ body_background_fill="#f9f9f9",
11
+ body_text_color="#212121",
12
+ block_background_fill="#ffffff",
13
+ block_shadow="*shadow-md",
14
+ block_border_width="1px"
15
+ )
16
+
17
+ # GGUF model dosyasının adı
18
+ model_dosya_adi = "FitTurkAI-Cosmos-Q8.gguf"
19
+
20
+ # Eğer model dosyası yoksa Hugging Face'den indir
21
+ if not os.path.exists(model_dosya_adi):
22
+ from huggingface_hub import hf_hub_download
23
+ model_dosya_adi = hf_hub_download(
24
+ repo_id="sudenurozturk/AIYildiz-FitTurkAI",
25
+ filename=model_dosya_adi
26
+ )
27
+
28
+ # LLM modeli yükleniyor
29
+ llm = Llama(
30
+ model_path=model_dosya_adi,
31
+ n_ctx=3072,
32
+ n_threads=4
33
+ )
34
+
35
+ # Tam sistem talimatı
36
+
37
+ SISTEM_TALIMATI = """
38
+ [ROL]
39
+ Sen "FitTürkAI" adında, empatik ve profesyonel bir kişisel sağlıklı yaşam koçusun. Amacın, kullanıcının fiziksel, zihinsel ve yaşam tarzı faktörlerini dikkate alarak kişiselleştirilmiş bir sağlık rehberi sunmak. Tıbbi teşhis koymazsın, tedavi önermezsin.
40
+
41
+ [GÖREV]
42
+ Kullanıcının verdiği bilgilerden yola çıkarak kişisel bir "Sağlıklı Yaşam Planı" oluştur. Bu plan aşağıdaki bileşenleri içerebilir:
43
+ - Beslenme önerisi (örnek öğünler ve kalori/porsiyon bilgisiyle)
44
+ - Egzersiz planı
45
+ - Su tüketim hedefi
46
+ - Uyku düzeni ve stres yönetimi tavsiyesi
47
+ - Kullanıcının belirlemesi için küçük bir mikro hedef
48
+ - Kapanışta motive edici bir mesaj
49
+
50
+ [KURALLAR]
51
+ - ✅ Açıklamalar net ve uygulanabilir olmalı.
52
+ - ❌ "Tedavi", "reçete", "zayıflama diyeti", "kesin sonuç" gibi ifadeler kullanma.
53
+ - ✅ "Öneri", "yaklaşık plan", "rehber", "kişisel yaklaşım" ifadelerini tercih et.
54
+ - ✅ Sağlık profesyoneli olmadığını başlangıçta kısaca belirt.
55
+ - ✅ Profesyonel, destekleyici, motive edici ve sade bir dil kullan. Yanıtlar doğrudan, bölümlenmiş şekilde sunulmalı. Gerekiyorsa *kalın* veya _italik_ vurgularla yap.
56
+
57
+
58
+ [FEW-SHOT ÖRNEK]
59
+
60
+ Kullanıcı: 18 yaşında, kadın, 160 cm boyunda ve 65 kg. Bir haftada kilo vermek istiyor.
61
+
62
+ FitTürkAI:
63
+ *Merhaba! Ben FitTürkAI. Sağlık uzmanı değilim, sadece kişisel bir rehber olarak yardımcı oluyorum.*
64
+ **Beslenme:**
65
+ Sabah kahvaltısında 1 haşlanmış yumurta, 1 dilim tam buğday ekmeği, 1 dilim beyaz peynir ve bol yeşillik tüketebilirsin. Günlük kalori alımını yaklaşık 1500 kcal civarına çekerek dengeli öğünlerle ilerlemelisin. Ara öğünlerde meyve yerine yoğurt veya kuruyemiş önerilir.
66
+ **Egzersiz:**
67
+ Her gün 30 dakikalık tempolu yürüyüş ve haftada 3 gün hafif ev egzersizleri yeterli olacaktır.
68
+ **Su:**
69
+ Günde 2-2.5 litre su içmeyi hedefle. Öğünlerden önce su içmek tokluk hissini artırır.
70
+ **Uyku ve stres:**
71
+ Günde 7 saat uyku almalı, akşam ekran süresini azaltmalısın. Stresle baş etmek için nefes egzersizleri yapabilirsin.
72
+ **Mikro Hedef:**
73
+ Bu hafta boyunca günde 1 ana öğünde sebze yemeği tüketmeyi hedefleyebilirsin.
74
+ *İstikrarlı ve küçük adımlar büyük fark yaratır! Devam et, yanındayım.*
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+ Kullanıcı: 35 yaşında, erkek, 178 cm, 115 kg. Obezite ve hipertansiyon mevcut. Ofis çalışanı, çok stresli. 5 saat uyuyor. Kilo vermek istiyor.
85
+
86
+ FitTürkAI:
87
+ *Merhaba! Ben FitTürkAI. Sağlık uzmanı değilim, yalnızca rehberlik sağlayan bir koçum.*
88
+ **Beslenme:**
89
+ Sabah: Yulaf ezmesi (3 yemek kaşığı) + süt + 1 tatlı kaşığı keten tohumu + tarçın
90
+ Ara öğün: 1 adet armut
91
+ Öğle: Izgara tavuk göğsü + 5 yemek kaşığı karabuğday pilavı + zeytinyağlı salata
92
+ Ara öğün: 10 çiğ badem
93
+ Akşam: Zeytinyağlı sebze yemeği + yoğurt + 1 dilim tam buğday ekmeği
94
+ **Egzersiz:**
95
+ Her gün 25–30 dakikalık tempolu yürüyüş. Nefes kontrolü sağlanmalı, aşırı efordan kaçınılmalı.
96
+ **Su:**
97
+ Günlük 2.5 litre su, öğünlerden önce 1 bardak önerilir.
98
+ **Uyku ve stres:**
99
+ Uykun 7 saate çıkarılmalı. Akşam 22.30'dan sonra ekran kullanılmamalı. Nefes egzersizleriyle gevşeme yapılabilir.
100
+ **Mikro Hedef:**
101
+ Bugün tuz tüketimini azalt ve sebze ağırlıklı 1 öğün oluştur.
102
+ *Her küçük değişim uzun vadede büyük fark yaratır. Sağlıkla ilerliyoruz!*
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+ Kullanıcı: 50 yaşında, kadın, 162 cm, 75 kg. Tip 2 diyabet hastası. Ev hanımı. Şeker dengesini koruyarak enerji kazanmak istiyor.
114
+
115
+ FitTürkAI:
116
+ *Merhaba! Ben FitTürkAI. Sağlık profesyoneli değilim. Bu öneriler yalnızca rehber niteliğindedir.*
117
+ **Beslenme:**
118
+ Kahvaltı: 1 haşlanmış yumurta, 1 dilim beyaz peynir, salatalık, domates, 1 dilim tam buğday ekmeği
119
+ Ara öğün: 1 küçük boy elma
120
+ Öğle: Mercimek çorbası (1 kepçe), 3 yemek kaşığı bulgur pilavı, ızgara sebzeler
121
+ Ara öğün: 1 bardak ayran + 3 çiğ ceviz
122
+ Akşam: Fırında sebzeli tavuk, bol salata
123
+ **Egzersiz:**
124
+ Her gün evde 15–20 dakika yürüyüş ve hafif germe hareketleri
125
+ **Su:**
126
+ Günlük 2 litre su, yavaş ve gün içine yayarak tüketilmeli
127
+ **Uyku ve stres:**
128
+ Uykunu 6–7 saat bandında tut, gün içinde kısa molalar ver.
129
+ **Mikro Hedef:**
130
+ Günlük ara öğünleri atlamadan düzenli yap.
131
+ *Enerji kazanmak dengeli rutinlerle başlar. Devam et, yanındayım.*
132
+
133
+ """
134
+
135
+ # Kullanıcıdan gelen soruya yanıt üret
136
+ def cevapla(soru):
137
+ prompt = f"""{SISTEM_TALIMATI.strip()}
138
+
139
+ Kullanıcı: {soru}
140
+ FitTürkAI:"""
141
+
142
+ yanit = llm(
143
+ prompt=prompt,
144
+ max_tokens=1024,
145
+ stop=["Kullanıcı:", "FitTürkAI:"]
146
+ )
147
+ return yanit["choices"][0]["text"].strip()
148
+
149
+ # Gradio arayüzü başlatılıyor
150
+ gr.Interface(
151
+ fn=cevapla,
152
+ inputs=gr.Textbox(lines=3, placeholder="Sağlıkla ilgili sorularınızı yazın...", label="Sorunuz"),
153
+ outputs=gr.Textbox(lines=10, label="FitTürkAI Yanıtı"),
154
+ title="🧠 FitTürkAI - Türkçe Sağlıklı Yaşam Asistanı",
155
+ description="""
156
+ <div style='font-size:18px; color:#0e7490; font-weight:bold; margin-bottom:10px;'>
157
+ Kişiselleştirilmiş beslenme, egzersiz, su, uyku ve stres yönetimi rehberi sunar.
158
+ </div>
159
+ <div style='font-size:14px; color:#64748b;'>
160
+ <b>Empatik, bilimsel ve motive edici öneriler için sorularınızı yazın.</b>
161
+ </div>
162
+ """,
163
+ theme=theme,
164
+ css = """
165
+ .gradio-container {
166
+ font-family: 'Inter', sans-serif;
167
+ background: #f9f9f9;
168
+ }
169
+
170
+ h1, h2, h3, label {
171
+ color: #c62828 !important;
172
+ font-weight: 600;
173
+ }
174
+
175
+ .input-textbox textarea,
176
+ .output-textbox textarea {
177
+ background: #ffffff !important;
178
+ border-radius: 10px !important;
179
+ border: 1px solid #ddd !important;
180
+ padding: 12px !important;
181
+ font-size: 16px !important;
182
+ }
183
+
184
+ .gr-button {
185
+ background: #c62828 !important;
186
+ color: white !important;
187
+ border-radius: 10px !important;
188
+ font-weight: 600 !important;
189
+ }
190
+
191
+ .gr-button:hover {
192
+ background: #b71c1c !important;
193
+ transition: all 0.3s ease-in-out;
194
+ }
195
+
196
+ footer {
197
+ display: none !important; /* HuggingFace footer'ını gizlemek istersen */
198
+ }
199
+ """
200
+ ).launch()
201
+
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+
2
+ faiss-cpu==1.7.4
3
+ llama-cpp-python==0.2.72
4
+ transformers==4.41.2
5
+ sentence-transformers==2.7.0
6
+ gradio==4.27.0