veteroner commited on
Commit
805fa80
·
verified ·
1 Parent(s): c856dba

Upload 18 files

Browse files
Files changed (16) hide show
  1. .gitignore +166 -166
  2. CONTRIBUTING.md +285 -285
  3. DEPLOY_REHBERI.md +156 -156
  4. Dockerfile +44 -44
  5. LICENSE +30 -30
  6. MODEL_SETUP.md +77 -77
  7. README.md +289 -289
  8. app.py +359 -359
  9. basit_konsol.py +174 -174
  10. baslat_api.bat +34 -34
  11. baslat_basit_konsol.bat +49 -49
  12. baslat_gradio.bat +50 -50
  13. baslat_konsol.bat +32 -32
  14. gradio_app.py +218 -218
  15. hf_space_app.py +194 -194
  16. requirements.txt +9 -9
.gitignore CHANGED
@@ -1,167 +1,167 @@
1
- # 🚀 Teknova Nova AI - Git Ignore File
2
-
3
- # 🧠 AI Model Files (çok büyük oldukları için)
4
- nova-ai-model/
5
- /nova-ai-model/
6
- ./nova-ai-model/
7
- /content/nova-ai-model/
8
- /data/nova-ai-model/
9
-
10
- # 🐍 Python
11
- __pycache__/
12
- *.py[cod]
13
- *$py.class
14
- *.so
15
- .Python
16
- build/
17
- develop-eggs/
18
- dist/
19
- downloads/
20
- eggs/
21
- .eggs/
22
- lib/
23
- lib64/
24
- parts/
25
- sdist/
26
- var/
27
- wheels/
28
- pip-wheel-metadata/
29
- share/python-wheels/
30
- *.egg-info/
31
- .installed.cfg
32
- *.egg
33
- MANIFEST
34
-
35
- # 🧪 Testing
36
- .pytest_cache/
37
- .coverage
38
- htmlcov/
39
- .tox/
40
- .nox/
41
- .coverage.*
42
- .cache
43
- nosetests.xml
44
- coverage.xml
45
- *.cover
46
- *.py,cover
47
- .hypothesis/
48
-
49
- # 🌐 Web
50
- .env
51
- .venv
52
- env/
53
- venv/
54
- ENV/
55
- env.bak/
56
- venv.bak/
57
-
58
- # 📓 Jupyter Notebook
59
- .ipynb_checkpoints
60
- */.ipynb_checkpoints/*
61
-
62
- # 🔧 IDEs
63
- .vscode/
64
- .idea/
65
- *.swp
66
- *.swo
67
- *~
68
-
69
- # 🏠 OS
70
- .DS_Store
71
- .DS_Store?
72
- ._*
73
- .Spotlight-V100
74
- .Trashes
75
- ehthumbs.db
76
- Thumbs.db
77
-
78
- # 📊 Logs
79
- *.log
80
- logs/
81
- *.out
82
-
83
- # 🤗 Hugging Face
84
- .huggingface/
85
- huggingface_hub/
86
-
87
- # 🐳 Docker
88
- .dockerignore
89
-
90
- # 📦 Node.js (eğer varsa)
91
- node_modules/
92
- npm-debug.log*
93
- yarn-debug.log*
94
- yarn-error.log*
95
-
96
- # 🔐 Secrets
97
- .env.local
98
- .env.production
99
- .env.staging
100
- config.json
101
- secrets.json
102
-
103
- # 📊 Model Artifacts
104
- *.bin
105
- *.safetensors
106
- *.pt
107
- *.pth
108
- model.bin
109
- pytorch_model.bin
110
- tf_model.h5
111
-
112
- # 🚀 Gradio
113
- gradio_cached_examples/
114
- flagged/
115
-
116
- # 🧠 AI/ML temporary files
117
- wandb/
118
- mlruns/
119
- .tensorboard/
120
-
121
- # Virtual Environment
122
- venv/
123
- venv311/
124
- env/
125
- ENV/
126
- env.bak/
127
- venv.bak/
128
-
129
- # IDE
130
- .vscode/
131
- .idea/
132
- *.swp
133
- *.swo
134
- *~
135
-
136
- # OS
137
- .DS_Store
138
- .DS_Store?
139
- ._*
140
- .Spotlight-V100
141
- .Trashes
142
- ehthumbs.db
143
- Thumbs.db
144
-
145
- # Nova AI Model Files (Entire folder - too large for GitHub)
146
- mistral-7b/
147
-
148
- # Logs
149
- *.log
150
- logs/
151
-
152
- # Environment variables
153
- .env
154
- .env.local
155
-
156
- # Gradio temporary files
157
- gradio_cached_examples/
158
- flagged/
159
-
160
- # FastAPI
161
- .pytest_cache/
162
-
163
- # Temporary files
164
- *.tmp
165
- *.temp
166
- temp/
167
  tmp/
 
1
+ # 🚀 Teknova Nova AI - Git Ignore File
2
+
3
+ # 🧠 AI Model Files (çok büyük oldukları için)
4
+ nova-ai-model/
5
+ /nova-ai-model/
6
+ ./nova-ai-model/
7
+ /content/nova-ai-model/
8
+ /data/nova-ai-model/
9
+
10
+ # 🐍 Python
11
+ __pycache__/
12
+ *.py[cod]
13
+ *$py.class
14
+ *.so
15
+ .Python
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ downloads/
20
+ eggs/
21
+ .eggs/
22
+ lib/
23
+ lib64/
24
+ parts/
25
+ sdist/
26
+ var/
27
+ wheels/
28
+ pip-wheel-metadata/
29
+ share/python-wheels/
30
+ *.egg-info/
31
+ .installed.cfg
32
+ *.egg
33
+ MANIFEST
34
+
35
+ # 🧪 Testing
36
+ .pytest_cache/
37
+ .coverage
38
+ htmlcov/
39
+ .tox/
40
+ .nox/
41
+ .coverage.*
42
+ .cache
43
+ nosetests.xml
44
+ coverage.xml
45
+ *.cover
46
+ *.py,cover
47
+ .hypothesis/
48
+
49
+ # 🌐 Web
50
+ .env
51
+ .venv
52
+ env/
53
+ venv/
54
+ ENV/
55
+ env.bak/
56
+ venv.bak/
57
+
58
+ # 📓 Jupyter Notebook
59
+ .ipynb_checkpoints
60
+ */.ipynb_checkpoints/*
61
+
62
+ # 🔧 IDEs
63
+ .vscode/
64
+ .idea/
65
+ *.swp
66
+ *.swo
67
+ *~
68
+
69
+ # 🏠 OS
70
+ .DS_Store
71
+ .DS_Store?
72
+ ._*
73
+ .Spotlight-V100
74
+ .Trashes
75
+ ehthumbs.db
76
+ Thumbs.db
77
+
78
+ # 📊 Logs
79
+ *.log
80
+ logs/
81
+ *.out
82
+
83
+ # 🤗 Hugging Face
84
+ .huggingface/
85
+ huggingface_hub/
86
+
87
+ # 🐳 Docker
88
+ .dockerignore
89
+
90
+ # 📦 Node.js (eğer varsa)
91
+ node_modules/
92
+ npm-debug.log*
93
+ yarn-debug.log*
94
+ yarn-error.log*
95
+
96
+ # 🔐 Secrets
97
+ .env.local
98
+ .env.production
99
+ .env.staging
100
+ config.json
101
+ secrets.json
102
+
103
+ # 📊 Model Artifacts
104
+ *.bin
105
+ *.safetensors
106
+ *.pt
107
+ *.pth
108
+ model.bin
109
+ pytorch_model.bin
110
+ tf_model.h5
111
+
112
+ # 🚀 Gradio
113
+ gradio_cached_examples/
114
+ flagged/
115
+
116
+ # 🧠 AI/ML temporary files
117
+ wandb/
118
+ mlruns/
119
+ .tensorboard/
120
+
121
+ # Virtual Environment
122
+ venv/
123
+ venv311/
124
+ env/
125
+ ENV/
126
+ env.bak/
127
+ venv.bak/
128
+
129
+ # IDE
130
+ .vscode/
131
+ .idea/
132
+ *.swp
133
+ *.swo
134
+ *~
135
+
136
+ # OS
137
+ .DS_Store
138
+ .DS_Store?
139
+ ._*
140
+ .Spotlight-V100
141
+ .Trashes
142
+ ehthumbs.db
143
+ Thumbs.db
144
+
145
+ # Nova AI Model Files (Entire folder - too large for GitHub)
146
+ mistral-7b/
147
+
148
+ # Logs
149
+ *.log
150
+ logs/
151
+
152
+ # Environment variables
153
+ .env
154
+ .env.local
155
+
156
+ # Gradio temporary files
157
+ gradio_cached_examples/
158
+ flagged/
159
+
160
+ # FastAPI
161
+ .pytest_cache/
162
+
163
+ # Temporary files
164
+ *.tmp
165
+ *.temp
166
+ temp/
167
  tmp/
CONTRIBUTING.md CHANGED
@@ -1,286 +1,286 @@
1
- # 🤝 Nova AI'ya Katkıda Bulunma Rehberi
2
-
3
- **Teknova Nova AI** projesine katkıda bulunmak istediğiniz için teşekkürler! Bu rehber, katkı sürecini kolaylaştırmak için hazırlanmıştır.
4
-
5
- ## 🎯 Katkı Türleri
6
-
7
- ### 🐛 **Bug Reports (Hata Bildirimi)**
8
- - Detaylı hata açıklaması
9
- - Tekrar edilebilir adımlar
10
- - Sistem bilgileri (OS, Python version)
11
- - Error logs ve screenshots
12
-
13
- ### ✨ **Feature Requests (Özellik İstekleri)**
14
- - Özelliğin amacını açıklayın
15
- - Kullanım senaryolarını belirtin
16
- - Mevcut alternatiflerle karşılaştırın
17
-
18
- ### 🔧 **Code Contributions (Kod Katkıları)**
19
- - Bug fixes
20
- - Performance improvements
21
- - New features
22
- - Documentation updates
23
-
24
- ### 📚 **Documentation**
25
- - README improvements
26
- - Code comments
27
- - Tutorial yazıları
28
- - API documentation
29
-
30
- ## 🚀 Başlangıç Adımları
31
-
32
- ### 1️⃣ **Repository'yi Fork Edin**
33
- ```bash
34
- # GitHub'da Fork butonuna tıklayın
35
- # Sonra local'e clone edin:
36
- git clone https://github.com/YOUR-USERNAME/novaai.git
37
- cd novaai
38
- ```
39
-
40
- ### 2️⃣ **Development Environment Kurun**
41
- ```bash
42
- # Virtual environment oluşturun
43
- python -m venv venv
44
- source venv/bin/activate # Linux/Mac
45
- # venv\Scripts\activate # Windows
46
-
47
- # Dependencies yükleyin
48
- pip install -r requirements.txt
49
- pip install -r requirements-dev.txt # Dev dependencies
50
- ```
51
-
52
- ### 3️⃣ **Model Dosyalarını Hazırlayın**
53
- ```bash
54
- # MODEL_SETUP.md rehberini takip edin
55
- mkdir nova-ai-model
56
- # Model dosyalarınızı bu klasöre yerleştirin
57
- ```
58
-
59
- ## 📋 Development Workflow
60
-
61
- ### 🌿 **Branch Oluşturma**
62
- ```bash
63
- # Main branch'ten yeni branch oluşturun
64
- git checkout main
65
- git pull origin main
66
- git checkout -b feature/amazing-feature
67
-
68
- # Veya bug fix için:
69
- git checkout -b fix/bug-description
70
- ```
71
-
72
- ### 💻 **Code Style**
73
- ```python
74
- # Python kod standartları:
75
- # - PEP 8 compliance
76
- # - Type hints kullanın
77
- # - Docstrings ekleyin
78
-
79
- def nova_chat(message: str, history: List[Dict]) -> str:
80
- """
81
- Nova AI ile sohbet fonksiyonu.
82
-
83
- Args:
84
- message: Kullanıcı mesajı
85
- history: Sohbet geçmişi
86
-
87
- Returns:
88
- Nova AI yanıtı
89
- """
90
- # Implementation here
91
- pass
92
- ```
93
-
94
- ### 🧪 **Testing**
95
- ```bash
96
- # Testleri çalıştırın
97
- python -m pytest tests/
98
-
99
- # Linting kontrolleri
100
- flake8 .
101
- black --check .
102
- mypy .
103
-
104
- # Security check
105
- bandit -r .
106
- ```
107
-
108
- ### 📝 **Commit Messages**
109
- ```bash
110
- # Anlamlı commit messages yazın:
111
- git commit -m "✨ Add: Nova AI temperature control feature
112
-
113
- - Add temperature parameter to chat function
114
- - Update Gradio interface with slider
115
- - Add tests for temperature validation
116
- - Update documentation
117
-
118
- Fixes #123"
119
- ```
120
-
121
- ## 🔍 Code Review Süreci
122
-
123
- ### 📋 **Pull Request Checklist**
124
- - [ ] Code changes test edildi
125
- - [ ] Yeni features için testler eklendi
126
- - [ ] Documentation güncellendi
127
- - [ ] Commit messages açıklayıcı
128
- - [ ] Code style check'leri geçiyor
129
- - [ ] No breaking changes (veya belirtildi)
130
-
131
- ### 🎯 **Pull Request Template**
132
- ```markdown
133
- ## 📝 Description
134
- Brief description of changes
135
-
136
- ## 🔧 Type of Change
137
- - [ ] Bug fix
138
- - [ ] New feature
139
- - [ ] Breaking change
140
- - [ ] Documentation update
141
-
142
- ## 🧪 Testing
143
- - [ ] Tests pass locally
144
- - [ ] Added tests for new features
145
- - [ ] Manual testing completed
146
-
147
- ## 📋 Checklist
148
- - [ ] Code follows style guidelines
149
- - [ ] Self-review completed
150
- - [ ] Documentation updated
151
- - [ ] No conflicts with main branch
152
- ```
153
-
154
- ## 🛠️ Development Guidelines
155
-
156
- ### 🎯 **Nova AI Specific Guidelines**
157
-
158
- #### 🧠 **Model Integration**
159
- ```python
160
- # Model loading best practices:
161
- def load_nova_model(model_path: str) -> Tuple[Any, Any]:
162
- """Load Nova AI model with error handling."""
163
- try:
164
- tokenizer = AutoTokenizer.from_pretrained(model_path)
165
- model = AutoModelForCausalLM.from_pretrained(
166
- model_path,
167
- torch_dtype=torch.float16,
168
- device_map="auto"
169
- )
170
- return model, tokenizer
171
- except Exception as e:
172
- logger.error(f"Model loading failed: {e}")
173
- raise
174
- ```
175
-
176
- #### 🌐 **API Design**
177
- ```python
178
- # FastAPI endpoint conventions:
179
- @app.post("/chat", response_model=ChatResponse)
180
- async def chat_endpoint(request: ChatRequest) -> ChatResponse:
181
- """Nova AI chat endpoint with proper error handling."""
182
- try:
183
- # Validate input
184
- if not request.message.strip():
185
- raise HTTPException(400, "Message cannot be empty")
186
-
187
- # Process with Nova AI
188
- response = await nova_chat(request.message, request.history)
189
-
190
- return ChatResponse(
191
- response=response,
192
- model="Teknova Nova AI",
193
- timestamp=datetime.utcnow()
194
- )
195
- except Exception as e:
196
- logger.error(f"Chat error: {e}")
197
- raise HTTPException(500, "Internal server error")
198
- ```
199
-
200
- #### 🎨 **UI/UX Standards**
201
- ```python
202
- # Gradio interface guidelines:
203
- with gr.Blocks(theme=gr.themes.Soft()) as demo:
204
- gr.HTML("""
205
- <div style="text-align: center; padding: 20px;">
206
- <h1>🚀 Teknova Nova AI</h1>
207
- <p>Özgün yapay zeka teknolojisi</p>
208
- </div>
209
- """)
210
-
211
- # Always include:
212
- # - Clear labeling
213
- # - Error handling
214
- # - Loading states
215
- # - Responsive design
216
- ```
217
-
218
- ## 🏗️ Project Structure
219
-
220
- ```
221
- novaai/
222
- ├── 📁 .github/
223
- │ ├── workflows/ # GitHub Actions
224
- │ ├── ISSUE_TEMPLATE/ # Issue templates
225
- │ └── PULL_REQUEST_TEMPLATE.md
226
- ├── 📁 src/
227
- │ ├── nova_ai/ # Main package
228
- │ ├── api/ # API endpoints
229
- │ ├── ui/ # User interfaces
230
- │ └── utils/ # Utilities
231
- ├── 📁 tests/ # Test files
232
- ├── 📁 docs/ # Documentation
233
- ├── 📁 scripts/ # Build/deploy scripts
234
- ├── 🔧 requirements.txt
235
- ├── 🔧 requirements-dev.txt
236
- ├── 📋 pyproject.toml
237
- └── 📖 README.md
238
- ```
239
-
240
- ## 🎯 Öncelikli Katkı Alanları
241
-
242
- ### 🔥 **High Priority**
243
- - [ ] **Performance optimization** - Model inference speed
244
- - [ ] **Memory management** - RAM kullanımı iyileştirmeleri
245
- - [ ] **Error handling** - Robust error recovery
246
- - [ ] **Testing coverage** - Unit ve integration testler
247
-
248
- ### 🌟 **Medium Priority**
249
- - [ ] **New UI features** - Advanced chat options
250
- - [ ] **API extensions** - Batch processing
251
- - [ ] **Documentation** - Tutorial videos
252
- - [ ] **Localization** - Multi-language support
253
-
254
- ### 💡 **Nice to Have**
255
- - [ ] **Mobile optimization** - Responsive design
256
- - [ ] **Plugin system** - Extensible architecture
257
- - [ ] **Analytics** - Usage metrics
258
- - [ ] **Deployment tools** - Docker, K8s support
259
-
260
- ## 🤔 Sorularınız mı Var?
261
-
262
- ### 💬 **İletişim Kanalları**
263
- - **GitHub Discussions**: Genel sorular için
264
- - **GitHub Issues**: Bug reports ve feature requests
265
- - **Email**: teknova@example.com (teknik destek)
266
- - **Discord**: Nova AI Community Server
267
-
268
- ### 📚 **Yararlı Kaynaklar**
269
- - [Python Style Guide](https://pep8.org/)
270
- - [Transformers Documentation](https://huggingface.co/docs/transformers)
271
- - [FastAPI Best Practices](https://fastapi.tiangolo.com/tutorial/)
272
- - [Gradio Documentation](https://gradio.app/docs/)
273
-
274
- ## 🙏 Teşekkürler
275
-
276
- Nova AI projesine katkıda bulunan herkese teşekkür ederiz! Sizin katkılarınız Nova AI'yi daha da güçlü kılıyor.
277
-
278
- ### 🏆 **Katkıda Bulunanlar**
279
- - **Teknova Team** - Proje kurucu ekibi
280
- - **Community Contributors** - Açık kaynak katkıları
281
-
282
- ---
283
-
284
- 🚀 **Teknova Nova AI** - Birlikte daha güçlüyüz!
285
-
286
  *Bu rehber sürekli güncellenmektedir. Önerilerinizi GitHub Discussions'ta paylaşabilirsiniz.*
 
1
+ # 🤝 Nova AI'ya Katkıda Bulunma Rehberi
2
+
3
+ **Teknova Nova AI** projesine katkıda bulunmak istediğiniz için teşekkürler! Bu rehber, katkı sürecini kolaylaştırmak için hazırlanmıştır.
4
+
5
+ ## 🎯 Katkı Türleri
6
+
7
+ ### 🐛 **Bug Reports (Hata Bildirimi)**
8
+ - Detaylı hata açıklaması
9
+ - Tekrar edilebilir adımlar
10
+ - Sistem bilgileri (OS, Python version)
11
+ - Error logs ve screenshots
12
+
13
+ ### ✨ **Feature Requests (Özellik İstekleri)**
14
+ - Özelliğin amacını açıklayın
15
+ - Kullanım senaryolarını belirtin
16
+ - Mevcut alternatiflerle karşılaştırın
17
+
18
+ ### 🔧 **Code Contributions (Kod Katkıları)**
19
+ - Bug fixes
20
+ - Performance improvements
21
+ - New features
22
+ - Documentation updates
23
+
24
+ ### 📚 **Documentation**
25
+ - README improvements
26
+ - Code comments
27
+ - Tutorial yazıları
28
+ - API documentation
29
+
30
+ ## 🚀 Başlangıç Adımları
31
+
32
+ ### 1️⃣ **Repository'yi Fork Edin**
33
+ ```bash
34
+ # GitHub'da Fork butonuna tıklayın
35
+ # Sonra local'e clone edin:
36
+ git clone https://github.com/YOUR-USERNAME/novaai.git
37
+ cd novaai
38
+ ```
39
+
40
+ ### 2️⃣ **Development Environment Kurun**
41
+ ```bash
42
+ # Virtual environment oluşturun
43
+ python -m venv venv
44
+ source venv/bin/activate # Linux/Mac
45
+ # venv\Scripts\activate # Windows
46
+
47
+ # Dependencies yükleyin
48
+ pip install -r requirements.txt
49
+ pip install -r requirements-dev.txt # Dev dependencies
50
+ ```
51
+
52
+ ### 3️⃣ **Model Dosyalarını Hazırlayın**
53
+ ```bash
54
+ # MODEL_SETUP.md rehberini takip edin
55
+ mkdir nova-ai-model
56
+ # Model dosyalarınızı bu klasöre yerleştirin
57
+ ```
58
+
59
+ ## 📋 Development Workflow
60
+
61
+ ### 🌿 **Branch Oluşturma**
62
+ ```bash
63
+ # Main branch'ten yeni branch oluşturun
64
+ git checkout main
65
+ git pull origin main
66
+ git checkout -b feature/amazing-feature
67
+
68
+ # Veya bug fix için:
69
+ git checkout -b fix/bug-description
70
+ ```
71
+
72
+ ### 💻 **Code Style**
73
+ ```python
74
+ # Python kod standartları:
75
+ # - PEP 8 compliance
76
+ # - Type hints kullanın
77
+ # - Docstrings ekleyin
78
+
79
+ def nova_chat(message: str, history: List[Dict]) -> str:
80
+ """
81
+ Nova AI ile sohbet fonksiyonu.
82
+
83
+ Args:
84
+ message: Kullanıcı mesajı
85
+ history: Sohbet geçmişi
86
+
87
+ Returns:
88
+ Nova AI yanıtı
89
+ """
90
+ # Implementation here
91
+ pass
92
+ ```
93
+
94
+ ### 🧪 **Testing**
95
+ ```bash
96
+ # Testleri çalıştırın
97
+ python -m pytest tests/
98
+
99
+ # Linting kontrolleri
100
+ flake8 .
101
+ black --check .
102
+ mypy .
103
+
104
+ # Security check
105
+ bandit -r .
106
+ ```
107
+
108
+ ### 📝 **Commit Messages**
109
+ ```bash
110
+ # Anlamlı commit messages yazın:
111
+ git commit -m "✨ Add: Nova AI temperature control feature
112
+
113
+ - Add temperature parameter to chat function
114
+ - Update Gradio interface with slider
115
+ - Add tests for temperature validation
116
+ - Update documentation
117
+
118
+ Fixes #123"
119
+ ```
120
+
121
+ ## 🔍 Code Review Süreci
122
+
123
+ ### 📋 **Pull Request Checklist**
124
+ - [ ] Code changes test edildi
125
+ - [ ] Yeni features için testler eklendi
126
+ - [ ] Documentation güncellendi
127
+ - [ ] Commit messages açıklayıcı
128
+ - [ ] Code style check'leri geçiyor
129
+ - [ ] No breaking changes (veya belirtildi)
130
+
131
+ ### 🎯 **Pull Request Template**
132
+ ```markdown
133
+ ## 📝 Description
134
+ Brief description of changes
135
+
136
+ ## 🔧 Type of Change
137
+ - [ ] Bug fix
138
+ - [ ] New feature
139
+ - [ ] Breaking change
140
+ - [ ] Documentation update
141
+
142
+ ## 🧪 Testing
143
+ - [ ] Tests pass locally
144
+ - [ ] Added tests for new features
145
+ - [ ] Manual testing completed
146
+
147
+ ## 📋 Checklist
148
+ - [ ] Code follows style guidelines
149
+ - [ ] Self-review completed
150
+ - [ ] Documentation updated
151
+ - [ ] No conflicts with main branch
152
+ ```
153
+
154
+ ## 🛠️ Development Guidelines
155
+
156
+ ### 🎯 **Nova AI Specific Guidelines**
157
+
158
+ #### 🧠 **Model Integration**
159
+ ```python
160
+ # Model loading best practices:
161
+ def load_nova_model(model_path: str) -> Tuple[Any, Any]:
162
+ """Load Nova AI model with error handling."""
163
+ try:
164
+ tokenizer = AutoTokenizer.from_pretrained(model_path)
165
+ model = AutoModelForCausalLM.from_pretrained(
166
+ model_path,
167
+ torch_dtype=torch.float16,
168
+ device_map="auto"
169
+ )
170
+ return model, tokenizer
171
+ except Exception as e:
172
+ logger.error(f"Model loading failed: {e}")
173
+ raise
174
+ ```
175
+
176
+ #### 🌐 **API Design**
177
+ ```python
178
+ # FastAPI endpoint conventions:
179
+ @app.post("/chat", response_model=ChatResponse)
180
+ async def chat_endpoint(request: ChatRequest) -> ChatResponse:
181
+ """Nova AI chat endpoint with proper error handling."""
182
+ try:
183
+ # Validate input
184
+ if not request.message.strip():
185
+ raise HTTPException(400, "Message cannot be empty")
186
+
187
+ # Process with Nova AI
188
+ response = await nova_chat(request.message, request.history)
189
+
190
+ return ChatResponse(
191
+ response=response,
192
+ model="Teknova Nova AI",
193
+ timestamp=datetime.utcnow()
194
+ )
195
+ except Exception as e:
196
+ logger.error(f"Chat error: {e}")
197
+ raise HTTPException(500, "Internal server error")
198
+ ```
199
+
200
+ #### 🎨 **UI/UX Standards**
201
+ ```python
202
+ # Gradio interface guidelines:
203
+ with gr.Blocks(theme=gr.themes.Soft()) as demo:
204
+ gr.HTML("""
205
+ <div style="text-align: center; padding: 20px;">
206
+ <h1>🚀 Teknova Nova AI</h1>
207
+ <p>Özgün yapay zeka teknolojisi</p>
208
+ </div>
209
+ """)
210
+
211
+ # Always include:
212
+ # - Clear labeling
213
+ # - Error handling
214
+ # - Loading states
215
+ # - Responsive design
216
+ ```
217
+
218
+ ## 🏗️ Project Structure
219
+
220
+ ```
221
+ novaai/
222
+ ├── 📁 .github/
223
+ │ ├── workflows/ # GitHub Actions
224
+ │ ├── ISSUE_TEMPLATE/ # Issue templates
225
+ │ └── PULL_REQUEST_TEMPLATE.md
226
+ ├── 📁 src/
227
+ │ ├── nova_ai/ # Main package
228
+ │ ├── api/ # API endpoints
229
+ │ ├── ui/ # User interfaces
230
+ │ └── utils/ # Utilities
231
+ ├── 📁 tests/ # Test files
232
+ ├── 📁 docs/ # Documentation
233
+ ├── 📁 scripts/ # Build/deploy scripts
234
+ ├── 🔧 requirements.txt
235
+ ├── 🔧 requirements-dev.txt
236
+ ├── 📋 pyproject.toml
237
+ └── 📖 README.md
238
+ ```
239
+
240
+ ## 🎯 Öncelikli Katkı Alanları
241
+
242
+ ### 🔥 **High Priority**
243
+ - [ ] **Performance optimization** - Model inference speed
244
+ - [ ] **Memory management** - RAM kullanımı iyileştirmeleri
245
+ - [ ] **Error handling** - Robust error recovery
246
+ - [ ] **Testing coverage** - Unit ve integration testler
247
+
248
+ ### 🌟 **Medium Priority**
249
+ - [ ] **New UI features** - Advanced chat options
250
+ - [ ] **API extensions** - Batch processing
251
+ - [ ] **Documentation** - Tutorial videos
252
+ - [ ] **Localization** - Multi-language support
253
+
254
+ ### 💡 **Nice to Have**
255
+ - [ ] **Mobile optimization** - Responsive design
256
+ - [ ] **Plugin system** - Extensible architecture
257
+ - [ ] **Analytics** - Usage metrics
258
+ - [ ] **Deployment tools** - Docker, K8s support
259
+
260
+ ## 🤔 Sorularınız mı Var?
261
+
262
+ ### 💬 **İletişim Kanalları**
263
+ - **GitHub Discussions**: Genel sorular için
264
+ - **GitHub Issues**: Bug reports ve feature requests
265
+ - **Email**: teknova@example.com (teknik destek)
266
+ - **Discord**: Nova AI Community Server
267
+
268
+ ### 📚 **Yararlı Kaynaklar**
269
+ - [Python Style Guide](https://pep8.org/)
270
+ - [Transformers Documentation](https://huggingface.co/docs/transformers)
271
+ - [FastAPI Best Practices](https://fastapi.tiangolo.com/tutorial/)
272
+ - [Gradio Documentation](https://gradio.app/docs/)
273
+
274
+ ## 🙏 Teşekkürler
275
+
276
+ Nova AI projesine katkıda bulunan herkese teşekkür ederiz! Sizin katkılarınız Nova AI'yi daha da güçlü kılıyor.
277
+
278
+ ### 🏆 **Katkıda Bulunanlar**
279
+ - **Teknova Team** - Proje kurucu ekibi
280
+ - **Community Contributors** - Açık kaynak katkıları
281
+
282
+ ---
283
+
284
+ 🚀 **Teknova Nova AI** - Birlikte daha güçlüyüz!
285
+
286
  *Bu rehber sürekli güncellenmektedir. Önerilerinizi GitHub Discussions'ta paylaşabilirsiniz.*
DEPLOY_REHBERI.md CHANGED
@@ -1,157 +1,157 @@
1
- # 🚀 Nova AI Chat - Web Deploy Rehberi
2
-
3
- **Teknova**'nın Nova AI'sını bilgisayarınızda yavaş çalışması yerine, web'de hızlı bir şekilde kullanmanın 3 farklı yolu:
4
-
5
- ---
6
-
7
- ## 🥇 Seçenek 1: Google Colab (Önerilen - En Kolay)
8
-
9
- ### ✅ Avantajlar:
10
- - **Ücretsiz** GPU (T4)
11
- - **Anında** kullanıma hazır
12
- - **Setup gerektirmez**
13
- - **Paylaşılabilir** link
14
-
15
- ### 📋 Adımlar:
16
- 1. `Nova_AI_Chat.ipynb` dosyasını [Google Colab'da](https://colab.research.google.com) açın
17
- 2. Runtime > Change runtime type > **GPU** seçin
18
- 3. Tüm hücreleri sırayla çalıştırın
19
- 4. Çıkan public link'i kullanın
20
-
21
- ### ⏱️ Süre:
22
- - **Setup**: 5 dakika
23
- - **Model yükleme**: 2-3 dakika
24
- - **Yanıt süresi**: 5-10 saniye
25
-
26
- ---
27
-
28
- ## 🥈 Seçenek 2: Hugging Face Spaces (Kalıcı)
29
-
30
- ### ✅ Avantajlar:
31
- - **Kalıcı** URL
32
- - **Ücretsiz** CPU/GPU
33
- - **Otomatik** deploy
34
- - **24/7** aktif
35
-
36
- ### 📋 Adımlar:
37
- 1. [Hugging Face](https://huggingface.co)'da hesap açın
38
- 2. **New Space** oluşturun:
39
- - **Space name**: `nova-ai-chat`
40
- - **SDK**: Gradio
41
- - **Hardware**: CPU Basic (ücretsiz)
42
- 3. Dosyaları yükleyin:
43
- ```
44
- gradio_app.py
45
- requirements.txt
46
- README.md
47
- ```
48
- 4. Space otomatik deploy olur
49
-
50
- ### 🔗 Örnek URL:
51
- `https://huggingface.co/spaces/KULLANICI_ADI/nova-ai-chat`
52
-
53
- ### ⏱️ Süre:
54
- - **Setup**: 10 dakika
55
- - **Deploy**: 5-10 dakika
56
- - **Yanıt süresi**: 15-30 saniye (CPU)
57
-
58
- ---
59
-
60
- ## 🥉 Seçenek 3: Render/Railway (Gelişmiş)
61
-
62
- ### ✅ Avantajlar:
63
- - **Özel domain**
64
- - **Production ready**
65
- - **Scaling** desteği
66
-
67
- ### 📋 Railway Adımları:
68
- 1. [Railway.app](https://railway.app)'da hesap açın
69
- 2. **Deploy from GitHub** seçin
70
- 3. Repository'yi bağlayın
71
- 4. Environment variables ekleyin:
72
- ```
73
- PORT=8000
74
- ```
75
- 5. Deploy başlar
76
-
77
- ### 💰 Maliyet:
78
- - İlk $5 ücretsiz
79
- - Sonrasında kullanım bazlı
80
-
81
- ---
82
-
83
- ## 📊 Karşılaştırma
84
-
85
- | Platform | Hız | Maliyet | Kalıcılık | Kurulum |
86
- |----------|-----|---------|-----------|---------|
87
- | **Google Colab** | ⚡⚡⚡ | Ücretsiz | 12 saat | Çok Kolay |
88
- | **HF Spaces** | ⚡⚡ | Ücretsiz | Kalıcı | Kolay |
89
- | **Railway** | ⚡⚡ | $5+ | Kalıcı | Orta |
90
-
91
- ---
92
-
93
- ## 🎯 Hangi Seçeneği Seçmeli?
94
-
95
- ### 🔥 **Hızlı Test** için: Google Colab
96
- - 5 dakikada çalışır
97
- - En hızlı GPU
98
- - Geçici kullanım
99
-
100
- ### 🌍 **Paylaşım** için: Hugging Face Spaces
101
- - Herkesle paylaşılabilir
102
- - Kalıcı URL
103
- - Ücretsiz hosting
104
-
105
- ### 🏢 **Production** için: Railway
106
- - Özel domain
107
- - Güvenilir uptime
108
- - Ölçeklenebilir
109
-
110
- ---
111
-
112
- ## 🛠️ Hazır Dosyalar
113
-
114
- **Teknova Nova AI** projenizdeki dosyalar:
115
-
116
- ```
117
- 📁 NovaAI/
118
- ├── 🐍 gradio_app.py # Hugging Face Spaces için
119
- ├── 📓 Nova_AI_Chat.ipynb # Google Colab için
120
- ├── 📋 requirements.txt # Paket listesi
121
- ├── 📄 README.md # HF Spaces metadata
122
- ├── 🌐 chat.html # Web arayüzü
123
- ├── 🚀 app.py # FastAPI uygulaması
124
- ├── ⚡ api.py # API servisi
125
- ├── 🖥️ main.py # Konsol uygulaması
126
- ├── 📂 mistral-7b/ # Model dosyaları
127
- ├── 🔧 baslat_api.bat # Web başlatıcı
128
- ├── 🖱️ baslat_konsol.bat # Konsol başlatıcı
129
- └── 📋 DEPLOY_REHBERI.md # Bu rehber
130
- ```
131
-
132
- ---
133
-
134
- ## 🚀 Teknova Nova AI Özellikleri
135
-
136
- - 🧠 **Gelişmiş AI**: Son teknoloji modellerle
137
- - 🇹🇷 **Türkçe Desteği**: Mükemmel dil anlayışı
138
- - ⚡ **Hızlı Yanıt**: GPU optimizasyonu
139
- - 🎨 **Modern Arayüz**: ChatGPT benzeri UX
140
- - 🔒 **Güvenli**: Verileriniz güvende
141
-
142
- ---
143
-
144
- ## 🤝 Yardım
145
-
146
- Deploy sırasında sorun yaşarsanız:
147
-
148
- 1. **Error loglara** bakın
149
- 2. **Requirements** güncel mi kontrol edin
150
- 3. **GPU memory** yetersizse 8-bit quantization kullanın
151
- 4. **Model path** doğru mu kontrol edin
152
-
153
- **Teknova Destek**: AI konularında professional destek
154
-
155
- ---
156
-
157
  *🚀 **Teknova Nova AI** ile geleceğin teknolojisini bugün deneyimleyin!* 🎉
 
1
+ # 🚀 Nova AI Chat - Web Deploy Rehberi
2
+
3
+ **Teknova**'nın Nova AI'sını bilgisayarınızda yavaş çalışması yerine, web'de hızlı bir şekilde kullanmanın 3 farklı yolu:
4
+
5
+ ---
6
+
7
+ ## 🥇 Seçenek 1: Google Colab (Önerilen - En Kolay)
8
+
9
+ ### ✅ Avantajlar:
10
+ - **Ücretsiz** GPU (T4)
11
+ - **Anında** kullanıma hazır
12
+ - **Setup gerektirmez**
13
+ - **Paylaşılabilir** link
14
+
15
+ ### 📋 Adımlar:
16
+ 1. `Nova_AI_Chat.ipynb` dosyasını [Google Colab'da](https://colab.research.google.com) açın
17
+ 2. Runtime > Change runtime type > **GPU** seçin
18
+ 3. Tüm hücreleri sırayla çalıştırın
19
+ 4. Çıkan public link'i kullanın
20
+
21
+ ### ⏱️ Süre:
22
+ - **Setup**: 5 dakika
23
+ - **Model yükleme**: 2-3 dakika
24
+ - **Yanıt süresi**: 5-10 saniye
25
+
26
+ ---
27
+
28
+ ## 🥈 Seçenek 2: Hugging Face Spaces (Kalıcı)
29
+
30
+ ### ✅ Avantajlar:
31
+ - **Kalıcı** URL
32
+ - **Ücretsiz** CPU/GPU
33
+ - **Otomatik** deploy
34
+ - **24/7** aktif
35
+
36
+ ### 📋 Adımlar:
37
+ 1. [Hugging Face](https://huggingface.co)'da hesap açın
38
+ 2. **New Space** oluşturun:
39
+ - **Space name**: `nova-ai-chat`
40
+ - **SDK**: Gradio
41
+ - **Hardware**: CPU Basic (ücretsiz)
42
+ 3. Dosyaları yükleyin:
43
+ ```
44
+ gradio_app.py
45
+ requirements.txt
46
+ README.md
47
+ ```
48
+ 4. Space otomatik deploy olur
49
+
50
+ ### 🔗 Örnek URL:
51
+ `https://huggingface.co/spaces/KULLANICI_ADI/nova-ai-chat`
52
+
53
+ ### ⏱️ Süre:
54
+ - **Setup**: 10 dakika
55
+ - **Deploy**: 5-10 dakika
56
+ - **Yanıt süresi**: 15-30 saniye (CPU)
57
+
58
+ ---
59
+
60
+ ## 🥉 Seçenek 3: Render/Railway (Gelişmiş)
61
+
62
+ ### ✅ Avantajlar:
63
+ - **Özel domain**
64
+ - **Production ready**
65
+ - **Scaling** desteği
66
+
67
+ ### 📋 Railway Adımları:
68
+ 1. [Railway.app](https://railway.app)'da hesap açın
69
+ 2. **Deploy from GitHub** seçin
70
+ 3. Repository'yi bağlayın
71
+ 4. Environment variables ekleyin:
72
+ ```
73
+ PORT=8000
74
+ ```
75
+ 5. Deploy başlar
76
+
77
+ ### 💰 Maliyet:
78
+ - İlk $5 ücretsiz
79
+ - Sonrasında kullanım bazlı
80
+
81
+ ---
82
+
83
+ ## 📊 Karşılaştırma
84
+
85
+ | Platform | Hız | Maliyet | Kalıcılık | Kurulum |
86
+ |----------|-----|---------|-----------|---------|
87
+ | **Google Colab** | ⚡⚡⚡ | Ücretsiz | 12 saat | Çok Kolay |
88
+ | **HF Spaces** | ⚡⚡ | Ücretsiz | Kalıcı | Kolay |
89
+ | **Railway** | ⚡⚡ | $5+ | Kalıcı | Orta |
90
+
91
+ ---
92
+
93
+ ## 🎯 Hangi Seçeneği Seçmeli?
94
+
95
+ ### 🔥 **Hızlı Test** için: Google Colab
96
+ - 5 dakikada çalışır
97
+ - En hızlı GPU
98
+ - Geçici kullanım
99
+
100
+ ### 🌍 **Paylaşım** için: Hugging Face Spaces
101
+ - Herkesle paylaşılabilir
102
+ - Kalıcı URL
103
+ - Ücretsiz hosting
104
+
105
+ ### 🏢 **Production** için: Railway
106
+ - Özel domain
107
+ - Güvenilir uptime
108
+ - Ölçeklenebilir
109
+
110
+ ---
111
+
112
+ ## 🛠️ Hazır Dosyalar
113
+
114
+ **Teknova Nova AI** projenizdeki dosyalar:
115
+
116
+ ```
117
+ 📁 NovaAI/
118
+ ├── 🐍 gradio_app.py # Hugging Face Spaces için
119
+ ├── 📓 Nova_AI_Chat.ipynb # Google Colab için
120
+ ├── 📋 requirements.txt # Paket listesi
121
+ ├── 📄 README.md # HF Spaces metadata
122
+ ├── 🌐 chat.html # Web arayüzü
123
+ ├── 🚀 app.py # FastAPI uygulaması
124
+ ├── ⚡ api.py # API servisi
125
+ ├── 🖥️ main.py # Konsol uygulaması
126
+ ├── 📂 mistral-7b/ # Model dosyaları
127
+ ├── 🔧 baslat_api.bat # Web başlatıcı
128
+ ├── 🖱️ baslat_konsol.bat # Konsol başlatıcı
129
+ └── 📋 DEPLOY_REHBERI.md # Bu rehber
130
+ ```
131
+
132
+ ---
133
+
134
+ ## 🚀 Teknova Nova AI Özellikleri
135
+
136
+ - 🧠 **Gelişmiş AI**: Son teknoloji modellerle
137
+ - 🇹🇷 **Türkçe Desteği**: Mükemmel dil anlayışı
138
+ - ⚡ **Hızlı Yanıt**: GPU optimizasyonu
139
+ - 🎨 **Modern Arayüz**: ChatGPT benzeri UX
140
+ - 🔒 **Güvenli**: Verileriniz güvende
141
+
142
+ ---
143
+
144
+ ## 🤝 Yardım
145
+
146
+ Deploy sırasında sorun yaşarsanız:
147
+
148
+ 1. **Error loglara** bakın
149
+ 2. **Requirements** güncel mi kontrol edin
150
+ 3. **GPU memory** yetersizse 8-bit quantization kullanın
151
+ 4. **Model path** doğru mu kontrol edin
152
+
153
+ **Teknova Destek**: AI konularında professional destek
154
+
155
+ ---
156
+
157
  *🚀 **Teknova Nova AI** ile geleceğin teknolojisini bugün deneyimleyin!* 🎉
Dockerfile CHANGED
@@ -1,45 +1,45 @@
1
- # 🚀 Nova AI Docker Image
2
- FROM python:3.9-slim
3
-
4
- # 📋 Metadata
5
- LABEL maintainer="Teknova <teknova@example.com>"
6
- LABEL description="Teknova Nova AI - Özgün yapay zeka teknolojisi"
7
- LABEL version="1.0.0"
8
-
9
- # 🔧 Environment variables
10
- ENV PYTHONUNBUFFERED=1
11
- ENV PYTHONDONTWRITEBYTECODE=1
12
- ENV PIP_NO_CACHE_DIR=1
13
- ENV PIP_DISABLE_PIP_VERSION_CHECK=1
14
-
15
- # 📂 Working directory
16
- WORKDIR /app
17
-
18
- # 🔧 System dependencies
19
- RUN apt-get update && apt-get install -y \
20
- gcc \
21
- g++ \
22
- && rm -rf /var/lib/apt/lists/*
23
-
24
- # 📦 Copy requirements first (for better caching)
25
- COPY requirements.txt .
26
-
27
- # 🐍 Install Python dependencies
28
- RUN pip install --no-cache-dir -r requirements.txt
29
-
30
- # 📁 Copy application code
31
- COPY . .
32
-
33
- # 👤 Create non-root user
34
- RUN useradd -m -u 1000 novaai && chown -R novaai:novaai /app
35
- USER novaai
36
-
37
- # 🌐 Expose port
38
- EXPOSE 8000
39
-
40
- # 🚀 Health check
41
- HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
42
- CMD curl -f http://localhost:8000/ || exit 1
43
-
44
- # 🏃 Run application
45
  CMD ["python", "app.py"]
 
1
+ # 🚀 Nova AI Docker Image
2
+ FROM python:3.9-slim
3
+
4
+ # 📋 Metadata
5
+ LABEL maintainer="Teknova <teknova@example.com>"
6
+ LABEL description="Teknova Nova AI - Özgün yapay zeka teknolojisi"
7
+ LABEL version="1.0.0"
8
+
9
+ # 🔧 Environment variables
10
+ ENV PYTHONUNBUFFERED=1
11
+ ENV PYTHONDONTWRITEBYTECODE=1
12
+ ENV PIP_NO_CACHE_DIR=1
13
+ ENV PIP_DISABLE_PIP_VERSION_CHECK=1
14
+
15
+ # 📂 Working directory
16
+ WORKDIR /app
17
+
18
+ # 🔧 System dependencies
19
+ RUN apt-get update && apt-get install -y \
20
+ gcc \
21
+ g++ \
22
+ && rm -rf /var/lib/apt/lists/*
23
+
24
+ # 📦 Copy requirements first (for better caching)
25
+ COPY requirements.txt .
26
+
27
+ # 🐍 Install Python dependencies
28
+ RUN pip install --no-cache-dir -r requirements.txt
29
+
30
+ # 📁 Copy application code
31
+ COPY . .
32
+
33
+ # 👤 Create non-root user
34
+ RUN useradd -m -u 1000 novaai && chown -R novaai:novaai /app
35
+ USER novaai
36
+
37
+ # 🌐 Expose port
38
+ EXPOSE 8000
39
+
40
+ # 🚀 Health check
41
+ HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
42
+ CMD curl -f http://localhost:8000/ || exit 1
43
+
44
+ # 🏃 Run application
45
  CMD ["python", "app.py"]
LICENSE CHANGED
@@ -1,31 +1,31 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 Teknova - Nova AI
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
22
-
23
- ---
24
-
25
- 🚀 Teknova Nova AI - Özgün Yapay Zeka Teknolojisi
26
-
27
- Bu proje Teknova tarafından geliştirilmiştir ve açık kaynak topluluk için
28
- MIT lisansı altında sunulmaktadır.
29
-
30
- Nova AI'nin model dosyaları ve özgün algoritmaları Teknova'nın fikri mülkiyetidir.
31
  Ticari kullanım için lütfen bizimle iletişime geçin.
 
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Teknova - Nova AI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ 🚀 Teknova Nova AI - Özgün Yapay Zeka Teknolojisi
26
+
27
+ Bu proje Teknova tarafından geliştirilmiştir ve açık kaynak topluluk için
28
+ MIT lisansı altında sunulmaktadır.
29
+
30
+ Nova AI'nin model dosyaları ve özgün algoritmaları Teknova'nın fikri mülkiyetidir.
31
  Ticari kullanım için lütfen bizimle iletişime geçin.
MODEL_SETUP.md CHANGED
@@ -1,78 +1,78 @@
1
- # 🚀 Nova AI Model Kurulum Rehberi
2
-
3
- ## 📂 Model Dosyalarını Hazırlama
4
-
5
- Model dosyaları GitHub'a yüklenemez (çok büyük). İki seçeneğiniz var:
6
-
7
- ### 🔥 Seçenek 1: Yerel Model Klasörü Oluşturma
8
-
9
- ```bash
10
- # 1. Nova AI model klasörünü oluşturun
11
- mkdir nova-ai-model
12
-
13
- # 2. Model dosyalarınızı bu klasöre kopyalayın:
14
- nova-ai-model/
15
- ├── config.json
16
- ├── tokenizer.json
17
- ├── tokenizer.model
18
- ├── tokenizer_config.json
19
- ├── special_tokens_map.json
20
- ├── generation_config.json
21
- ├── pytorch_model.bin (veya .safetensors dosyaları)
22
- └── model.safetensors.index.json
23
- ```
24
-
25
- ### 🌐 Seçenek 2: Hugging Face'den İndirme
26
-
27
- ```python
28
- # download_mistral.py dosyasını düzenleyin:
29
- MODEL_NAME = "your-username/your-nova-ai-model" # Kendi modeliniz
30
- LOCAL_DIR = "nova-ai-model"
31
-
32
- # Sonra çalıştırın:
33
- python download_mistral.py
34
- ```
35
-
36
- ### 📱 Seçenek 3: Google Colab
37
-
38
- ```python
39
- # Nova_AI_Colab.py dosyasını kullanın
40
- # Model dosyalarınızı ZIP olarak yükleyin
41
- # Otomatik olarak /content/nova-ai-model'e çıkartılır
42
- ```
43
-
44
- ## 🔧 Kurulum Tamamlandıktan Sonra
45
-
46
- ```bash
47
- # Web arayüzünü başlatın
48
- python app.py
49
-
50
- # Veya Gradio arayüzünü
51
- python gradio_app.py
52
-
53
- # Veya konsol modunu
54
- python main.py
55
- ```
56
-
57
- ## 🎯 Model Dosya Formatları
58
-
59
- Nova AI şu formatları destekler:
60
- - ✅ PyTorch (.bin)
61
- - ✅ SafeTensors (.safetensors)
62
- - ✅ Hugging Face format
63
- - ✅ Transformers uyumlu
64
-
65
- ## 💡 İpuçları
66
-
67
- - 🔸 Model dosyaları toplam ~13GB boyutunda
68
- - 🔸 SSD'de saklayın (daha hızlı)
69
- - 🔸 GPU için CUDA kurulu olmalı
70
- - 🔸 En az 16GB RAM önerili
71
-
72
- ## 🚀 Teknova Nova AI
73
-
74
- Model dosyalarınızı hazırladıktan sonra Nova AI tamamen çalışır durumda olacak!
75
-
76
- ---
77
-
78
  **Not:** Bu repository kod dosyalarını içerir. Model dosyalarını ayrıca indirmeniz gerekir.
 
1
+ # 🚀 Nova AI Model Kurulum Rehberi
2
+
3
+ ## 📂 Model Dosyalarını Hazırlama
4
+
5
+ Model dosyaları GitHub'a yüklenemez (çok büyük). İki seçeneğiniz var:
6
+
7
+ ### 🔥 Seçenek 1: Yerel Model Klasörü Oluşturma
8
+
9
+ ```bash
10
+ # 1. Nova AI model klasörünü oluşturun
11
+ mkdir nova-ai-model
12
+
13
+ # 2. Model dosyalarınızı bu klasöre kopyalayın:
14
+ nova-ai-model/
15
+ ├── config.json
16
+ ├── tokenizer.json
17
+ ├── tokenizer.model
18
+ ├── tokenizer_config.json
19
+ ├── special_tokens_map.json
20
+ ├── generation_config.json
21
+ ├── pytorch_model.bin (veya .safetensors dosyaları)
22
+ └── model.safetensors.index.json
23
+ ```
24
+
25
+ ### 🌐 Seçenek 2: Hugging Face'den İndirme
26
+
27
+ ```python
28
+ # download_mistral.py dosyasını düzenleyin:
29
+ MODEL_NAME = "your-username/your-nova-ai-model" # Kendi modeliniz
30
+ LOCAL_DIR = "nova-ai-model"
31
+
32
+ # Sonra çalıştırın:
33
+ python download_mistral.py
34
+ ```
35
+
36
+ ### 📱 Seçenek 3: Google Colab
37
+
38
+ ```python
39
+ # Nova_AI_Colab.py dosyasını kullanın
40
+ # Model dosyalarınızı ZIP olarak yükleyin
41
+ # Otomatik olarak /content/nova-ai-model'e çıkartılır
42
+ ```
43
+
44
+ ## 🔧 Kurulum Tamamlandıktan Sonra
45
+
46
+ ```bash
47
+ # Web arayüzünü başlatın
48
+ python app.py
49
+
50
+ # Veya Gradio arayüzünü
51
+ python gradio_app.py
52
+
53
+ # Veya konsol modunu
54
+ python main.py
55
+ ```
56
+
57
+ ## 🎯 Model Dosya Formatları
58
+
59
+ Nova AI şu formatları destekler:
60
+ - ✅ PyTorch (.bin)
61
+ - ✅ SafeTensors (.safetensors)
62
+ - ✅ Hugging Face format
63
+ - ✅ Transformers uyumlu
64
+
65
+ ## 💡 İpuçları
66
+
67
+ - 🔸 Model dosyaları toplam ~13GB boyutunda
68
+ - 🔸 SSD'de saklayın (daha hızlı)
69
+ - 🔸 GPU için CUDA kurulu olmalı
70
+ - 🔸 En az 16GB RAM önerili
71
+
72
+ ## 🚀 Teknova Nova AI
73
+
74
+ Model dosyalarınızı hazırladıktan sonra Nova AI tamamen çalışır durumda olacak!
75
+
76
+ ---
77
+
78
  **Not:** Bu repository kod dosyalarını içerir. Model dosyalarını ayrıca indirmeniz gerekir.
README.md CHANGED
@@ -1,289 +1,289 @@
1
- ---
2
- title: Teknova Nova AI
3
- emoji: 🚀
4
- colorFrom: red
5
- colorTo: blue
6
- sdk: gradio
7
- sdk_version: 4.44.1
8
- app_file: gradio_app.py
9
- pinned: false
10
- license: mit
11
- language:
12
- - tr
13
- - en
14
- tags:
15
- - text-generation
16
- - conversational
17
- - turkish
18
- - teknova
19
- - nova-ai
20
- - chat
21
- - assistant
22
- pipeline_tag: text-generation
23
- library_name: transformers
24
- ---
25
-
26
- # 🚀 Teknova Nova AI
27
-
28
- **Teknova** tarafından geliştirilen **özgün** Türkçe yapay zeka modeli - Hugging Face ZeroGPU ile hızlandırılmış!
29
-
30
- ## ✨ Özellikler
31
-
32
- - 🧠 **Özgün Model**: Teknova tarafından sıfırdan geliştirilen yapay zeka modeli
33
- - 🇹🇷 **Türkçe Optimizasyonu**: Türkçe dil yapısına özel olarak eğitilmiş
34
- - ⚡ **ZeroGPU Hızlı**: Hugging Face ZeroGPU teknolojisi ile hızlandırılmış
35
- - 💬 **Akıllı Sohbet**: Doğal dil işleme ile akıllı konuşma
36
- - 🎯 **Kullanıcı Dostu**: Kolay kullanım için tasarlanmış arayüz
37
-
38
- ## 🚀 Nasıl Kullanılır?
39
-
40
- 1. **Sohbet Başlat**: Aşağıdaki chat arayüzünde mesajınızı yazın
41
- 2. **Gönder**: 🚀 Gönder butonuna tıklayın
42
- 3. **Yanıt Al**: Nova AI'dan anlık yanıt alın
43
- 4. **Devam Edin**: Konuşmaya devam ederek daha detaylı bilgi alın
44
-
45
- ## 💡 Örnek Sorular
46
-
47
- - "Merhaba Nova AI, nasılsın?"
48
- - "Yapay zeka nedir?"
49
- - "Teknova hakkında bilgi ver"
50
- - "Bana bir hikaye anlat"
51
- - "Python programlama hakkında bilgi ver"
52
-
53
- ## 🛠️ Teknik Bilgiler
54
-
55
- - **Model**: Teknova Nova AI (Özgün)
56
- - **Framework**: Transformers, PyTorch
57
- - **UI**: Gradio 4.44.1
58
- - **Hızlandırma**: Hugging Face ZeroGPU
59
- - **Dil**: Türkçe odaklı çok dilli destek
60
-
61
- ## 📄 Lisans
62
-
63
- Bu proje MIT lisansı ile lisanslanmıştır.
64
-
65
- ## 🔗 Bağlantılar
66
-
67
- - **Geliştirici**: Teknova Innovation
68
- - **Model**: Nova AI (Özgün)
69
- - **Platform**: Hugging Face Spaces
70
-
71
- ---
72
-
73
- 🌟 **Teknova Nova AI** - Tamamen özgün Türkçe dil modeli ile güçlendirilmiş yapay zeka deneyimi!
74
-
75
- ---
76
-
77
- ## 🌟 **Model Özellikleri**
78
-
79
- ### ✨ **Özgün Teknova Teknolojisi**
80
- - 🧠 **Türkçe Optimizasyonu** - Türkçe dil yapısına özel eğitim
81
- - 💬 **Doğal Konuşma** - İnsan benzeri etkileşim yetenekleri
82
- - 🎯 **Bağlamsal Anlama** - Gelişmiş anlam çıkarma
83
- - ⚡ **Hızlı Yanıt** - Optimize edilmiş performans
84
- - 🔧 **Çok Amaçlı** - Sohbet, yazma, analiz yetenekleri
85
-
86
- ### 🛠️ **Teknik Detaylar**
87
- - **Temel Model:** Mistral-7B mimarisi
88
- - **Parametre Sayısı:** 7.24 milyar
89
- - **Eğitim Dili:** Türkçe + İngilizce
90
- - **Bağlam Uzunluğu:** 8192 token
91
- - **Model Formatı:** SafeTensors + PyTorch
92
-
93
- ---
94
-
95
- ## 🚀 **Kullanım**
96
-
97
- ### 💻 **Transformers ile**
98
- ```python
99
- from transformers import AutoModelForCausalLM, AutoTokenizer
100
- import torch
101
-
102
- # Nova AI modelini yükle
103
- model_name = "Teknova/NovaAI"
104
- tokenizer = AutoTokenizer.from_pretrained(model_name)
105
- model = AutoModelForCausalLM.from_pretrained(
106
- model_name,
107
- torch_dtype=torch.float16,
108
- device_map="auto"
109
- )
110
-
111
- # Sohbet örneği
112
- def chat_with_nova(message):
113
- conversation = f"Kullanıcı: {message}\nNova AI:"
114
- inputs = tokenizer(conversation, return_tensors="pt")
115
-
116
- with torch.no_grad():
117
- outputs = model.generate(
118
- **inputs,
119
- max_new_tokens=512,
120
- temperature=0.7,
121
- top_p=0.9,
122
- do_sample=True,
123
- pad_token_id=tokenizer.eos_token_id
124
- )
125
-
126
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
127
- return response[len(conversation):].strip()
128
-
129
- # Örnek kullanım
130
- response = chat_with_nova("Merhaba Nova AI, nasılsın?")
131
- print(response)
132
- ```
133
-
134
- ### 🌐 **API ile Kullanım**
135
- ```python
136
- import requests
137
-
138
- API_URL = "https://api-inference.huggingface.co/models/Teknova/NovaAI"
139
- headers = {"Authorization": "Bearer YOUR_HF_TOKEN"}
140
-
141
- def query_nova_ai(payload):
142
- response = requests.post(API_URL, headers=headers, json=payload)
143
- return response.json()
144
-
145
- # Örnek sorgu
146
- output = query_nova_ai({
147
- "inputs": "Yapay zeka teknolojileri hakkında bilgi ver",
148
- "parameters": {
149
- "max_new_tokens": 256,
150
- "temperature": 0.7,
151
- "top_p": 0.9
152
- }
153
- })
154
- print(output)
155
- ```
156
-
157
- ---
158
-
159
- ## 💡 **Örnek Kullanım Alanları**
160
-
161
- ### 🎯 **Sohbet ve Asistan**
162
- - Müşteri hizmetleri chatbotu
163
- - Kişisel asistan uygulamaları
164
- - Eğitim ve öğretim desteği
165
-
166
- ### 📝 **İçerik Üretimi**
167
- - Blog yazısı ve makale yazımı
168
- - Sosyal medya içeriği
169
- - Yaratıcı yazım desteği
170
-
171
- ### 🔍 **Analiz ve Özetleme**
172
- - Metin analizi ve özetleme
173
- - Duygu analizi
174
- - Bilgi çıkarma
175
-
176
- ---
177
-
178
- ## ⚙️ **Model Parametreleri**
179
-
180
- | Parametre | Değer | Açıklama |
181
- |-----------|-------|----------|
182
- | `temperature` | 0.7 | Yaratıcılık seviyesi (0.1-1.5) |
183
- | `top_p` | 0.9 | Nucleus sampling |
184
- | `max_new_tokens` | 512 | Maksimum yanıt uzunluğu |
185
- | `repetition_penalty` | 1.1 | Tekrar önleme |
186
-
187
- ---
188
-
189
- ## 🎨 **Demo ve Uygulamalar**
190
-
191
- ### 🌐 **Web Arayüzü**
192
- - **Gradio Demo:** [Nova AI Chat](https://huggingface.co/spaces/Teknova/NovaAI-Chat)
193
- - **HTML Arayüz:** Kendi web sitenizde kullanabilirsiniz
194
-
195
- ### 📱 **Entegrasyon**
196
- ```javascript
197
- // Web sitesinde kullanım örneği
198
- const API_URL = 'https://api-inference.huggingface.co/models/Teknova/NovaAI';
199
-
200
- async function queryNovaAI(text) {
201
- const response = await fetch(API_URL, {
202
- headers: {
203
- 'Authorization': 'Bearer YOUR_TOKEN',
204
- 'Content-Type': 'application/json'
205
- },
206
- method: 'POST',
207
- body: JSON.stringify({
208
- inputs: text,
209
- parameters: {
210
- max_new_tokens: 256,
211
- temperature: 0.7
212
- }
213
- })
214
- });
215
-
216
- return await response.json();
217
- }
218
- ```
219
-
220
- ---
221
-
222
- ## 📊 **Performans**
223
-
224
- ### 🚀 **Hız ve Verimlilik**
225
- - **CPU Modunda:** ~2-3 saniye yanıt süresi
226
- - **GPU Modunda:** ~0.5-1 saniye yanıt süresi
227
- - **Bellek Kullanımı:** ~14.5GB model boyutu
228
- - **Optimizasyon:** 4-bit quantization desteği
229
-
230
- ### 🎯 **Kalite Metrikleri**
231
- - **Türkçe Doğruluk:** Yüksek seviyede Türkçe anlama
232
- - **Bağlamsal Tutarlılık:** Uzun konuşmalarda tutarlı yanıtlar
233
- - **Yaratıcılık:** Özgün ve çeşitli içerik üretimi
234
-
235
- ---
236
-
237
- ## 🔧 **Sistem Gereksinimleri**
238
-
239
- ### 💻 **Minimum Gereksinimler**
240
- - **RAM:** 16GB (4-bit quantization ile)
241
- - **GPU:** 8GB VRAM (RTX 3070 veya üzeri)
242
- - **CPU:** 4 çekirdek, 2.5GHz+
243
- - **Depolama:** 20GB boş alan
244
-
245
- ### 🚀 **Önerilen Gereksinimler**
246
- - **RAM:** 32GB
247
- - **GPU:** 16GB+ VRAM (RTX 4080/4090)
248
- - **CPU:** 8+ çekirdek, 3.0GHz+
249
- - **Depolama:** SSD, 50GB+ boş alan
250
-
251
- ---
252
-
253
- ## 📜 **Lisans ve Kullanım**
254
-
255
- Bu model **Apache 2.0** lisansı altında yayınlanmıştır. Ticari ve akademik kullanım için serbesttir.
256
-
257
- ### ⚠️ **Önemli Notlar**
258
- - Model özgün Teknova teknolojisi içermektedir
259
- - Türkçe optimizasyonları Teknova tarafından geliştirilmiştir
260
- - Responsible AI ilkelerine uygun olarak kullanılmalıdır
261
-
262
- ---
263
-
264
- ## 🏢 **Teknova Hakkında**
265
-
266
- **Teknova**, Türkiye'nin öncü yapay zeka teknoloji şirketidir. Özgün AI çözümleri geliştirerek teknoloji dünyasında fark yaratmayı hedefliyoruz.
267
-
268
- ### 🎯 **Misyonumuz**
269
- Yapay zeka teknolojilerini Türkçe konuşan kullanıcılar için optimize etmek ve erişilebilir kılmak.
270
-
271
- ### 🚀 **Vizyonumuz**
272
- Türkiye'den dünyaya özgün yapay zeka teknolojileri ihraç etmek.
273
-
274
- ---
275
-
276
- ## 📞 **İletişim ve Destek**
277
-
278
- - **🌐 Website:** [teknova.ai](https://teknova.ai)
279
- - **📧 E-posta:** info@teknova.ai
280
- - **💬 Destek:** [GitHub Issues](https://github.com/teknova-ai/nova-ai/issues)
281
- - **📱 Sosyal Medya:** [@TeknovaAI](https://twitter.com/TeknovaAI)
282
-
283
- ---
284
-
285
- ## 🙏 **Teşekkürler**
286
-
287
- Nova AI'yi kullandığınız için teşekkürler! Geri bildirimleriniz bizim için değerlidir.
288
-
289
- **Teknova Nova AI** - *Türkiye'nin Özgün Yapay Zeka Teknolojisi* 🚀
 
1
+ ---
2
+ title: Teknova Nova AI
3
+ emoji: 🚀
4
+ colorFrom: red
5
+ colorTo: blue
6
+ sdk: gradio
7
+ sdk_version: 4.44.1
8
+ app_file: gradio_app.py
9
+ pinned: false
10
+ license: mit
11
+ language:
12
+ - tr
13
+ - en
14
+ tags:
15
+ - text-generation
16
+ - conversational
17
+ - turkish
18
+ - teknova
19
+ - nova-ai
20
+ - chat
21
+ - assistant
22
+ pipeline_tag: text-generation
23
+ library_name: transformers
24
+ ---
25
+
26
+ # 🚀 Teknova Nova AI
27
+
28
+ **Teknova** tarafından geliştirilen **özgün** Türkçe yapay zeka modeli - Hugging Face ZeroGPU ile hızlandırılmış!
29
+
30
+ ## ✨ Özellikler
31
+
32
+ - 🧠 **Özgün Model**: Teknova tarafından sıfırdan geliştirilen yapay zeka modeli
33
+ - 🇹🇷 **Türkçe Optimizasyonu**: Türkçe dil yapısına özel olarak eğitilmiş
34
+ - ⚡ **ZeroGPU Hızlı**: Hugging Face ZeroGPU teknolojisi ile hızlandırılmış
35
+ - 💬 **Akıllı Sohbet**: Doğal dil işleme ile akıllı konuşma
36
+ - 🎯 **Kullanıcı Dostu**: Kolay kullanım için tasarlanmış arayüz
37
+
38
+ ## 🚀 Nasıl Kullanılır?
39
+
40
+ 1. **Sohbet Başlat**: Aşağıdaki chat arayüzünde mesajınızı yazın
41
+ 2. **Gönder**: 🚀 Gönder butonuna tıklayın
42
+ 3. **Yanıt Al**: Nova AI'dan anlık yanıt alın
43
+ 4. **Devam Edin**: Konuşmaya devam ederek daha detaylı bilgi alın
44
+
45
+ ## 💡 Örnek Sorular
46
+
47
+ - "Merhaba Nova AI, nasılsın?"
48
+ - "Yapay zeka nedir?"
49
+ - "Teknova hakkında bilgi ver"
50
+ - "Bana bir hikaye anlat"
51
+ - "Python programlama hakkında bilgi ver"
52
+
53
+ ## 🛠️ Teknik Bilgiler
54
+
55
+ - **Model**: Teknova Nova AI (Özgün)
56
+ - **Framework**: Transformers, PyTorch
57
+ - **UI**: Gradio 4.44.1
58
+ - **Hızlandırma**: Hugging Face ZeroGPU
59
+ - **Dil**: Türkçe odaklı çok dilli destek
60
+
61
+ ## 📄 Lisans
62
+
63
+ Bu proje MIT lisansı ile lisanslanmıştır.
64
+
65
+ ## 🔗 Bağlantılar
66
+
67
+ - **Geliştirici**: Teknova Innovation
68
+ - **Model**: Nova AI (Özgün)
69
+ - **Platform**: Hugging Face Spaces
70
+
71
+ ---
72
+
73
+ 🌟 **Teknova Nova AI** - Tamamen özgün Türkçe dil modeli ile güçlendirilmiş yapay zeka deneyimi!
74
+
75
+ ---
76
+
77
+ ## 🌟 **Model Özellikleri**
78
+
79
+ ### ✨ **Özgün Teknova Teknolojisi**
80
+ - 🧠 **Türkçe Optimizasyonu** - Türkçe dil yapısına özel eğitim
81
+ - 💬 **Doğal Konuşma** - İnsan benzeri etkileşim yetenekleri
82
+ - 🎯 **Bağlamsal Anlama** - Gelişmiş anlam çıkarma
83
+ - ⚡ **Hızlı Yanıt** - Optimize edilmiş performans
84
+ - 🔧 **Çok Amaçlı** - Sohbet, yazma, analiz yetenekleri
85
+
86
+ ### 🛠️ **Teknik Detaylar**
87
+ - **Temel Model:** Mistral-7B mimarisi
88
+ - **Parametre Sayısı:** 7.24 milyar
89
+ - **Eğitim Dili:** Türkçe + İngilizce
90
+ - **Bağlam Uzunluğu:** 8192 token
91
+ - **Model Formatı:** SafeTensors + PyTorch
92
+
93
+ ---
94
+
95
+ ## 🚀 **Kullanım**
96
+
97
+ ### 💻 **Transformers ile**
98
+ ```python
99
+ from transformers import AutoModelForCausalLM, AutoTokenizer
100
+ import torch
101
+
102
+ # Nova AI modelini yükle
103
+ model_name = "Teknova/NovaAI"
104
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
105
+ model = AutoModelForCausalLM.from_pretrained(
106
+ model_name,
107
+ torch_dtype=torch.float16,
108
+ device_map="auto"
109
+ )
110
+
111
+ # Sohbet örneği
112
+ def chat_with_nova(message):
113
+ conversation = f"Kullanıcı: {message}\nNova AI:"
114
+ inputs = tokenizer(conversation, return_tensors="pt")
115
+
116
+ with torch.no_grad():
117
+ outputs = model.generate(
118
+ **inputs,
119
+ max_new_tokens=512,
120
+ temperature=0.7,
121
+ top_p=0.9,
122
+ do_sample=True,
123
+ pad_token_id=tokenizer.eos_token_id
124
+ )
125
+
126
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
127
+ return response[len(conversation):].strip()
128
+
129
+ # Örnek kullanım
130
+ response = chat_with_nova("Merhaba Nova AI, nasılsın?")
131
+ print(response)
132
+ ```
133
+
134
+ ### 🌐 **API ile Kullanım**
135
+ ```python
136
+ import requests
137
+
138
+ API_URL = "https://api-inference.huggingface.co/models/Teknova/NovaAI"
139
+ headers = {"Authorization": "Bearer YOUR_HF_TOKEN"}
140
+
141
+ def query_nova_ai(payload):
142
+ response = requests.post(API_URL, headers=headers, json=payload)
143
+ return response.json()
144
+
145
+ # Örnek sorgu
146
+ output = query_nova_ai({
147
+ "inputs": "Yapay zeka teknolojileri hakkında bilgi ver",
148
+ "parameters": {
149
+ "max_new_tokens": 256,
150
+ "temperature": 0.7,
151
+ "top_p": 0.9
152
+ }
153
+ })
154
+ print(output)
155
+ ```
156
+
157
+ ---
158
+
159
+ ## 💡 **Örnek Kullanım Alanları**
160
+
161
+ ### 🎯 **Sohbet ve Asistan**
162
+ - Müşteri hizmetleri chatbotu
163
+ - Kişisel asistan uygulamaları
164
+ - Eğitim ve öğretim desteği
165
+
166
+ ### 📝 **İçerik Üretimi**
167
+ - Blog yazısı ve makale yazımı
168
+ - Sosyal medya içeriği
169
+ - Yaratıcı yazım desteği
170
+
171
+ ### 🔍 **Analiz ve Özetleme**
172
+ - Metin analizi ve özetleme
173
+ - Duygu analizi
174
+ - Bilgi çıkarma
175
+
176
+ ---
177
+
178
+ ## ⚙️ **Model Parametreleri**
179
+
180
+ | Parametre | Değer | Açıklama |
181
+ |-----------|-------|----------|
182
+ | `temperature` | 0.7 | Yaratıcılık seviyesi (0.1-1.5) |
183
+ | `top_p` | 0.9 | Nucleus sampling |
184
+ | `max_new_tokens` | 512 | Maksimum yanıt uzunluğu |
185
+ | `repetition_penalty` | 1.1 | Tekrar önleme |
186
+
187
+ ---
188
+
189
+ ## 🎨 **Demo ve Uygulamalar**
190
+
191
+ ### 🌐 **Web Arayüzü**
192
+ - **Gradio Demo:** [Nova AI Chat](https://huggingface.co/spaces/Teknova/NovaAI-Chat)
193
+ - **HTML Arayüz:** Kendi web sitenizde kullanabilirsiniz
194
+
195
+ ### 📱 **Entegrasyon**
196
+ ```javascript
197
+ // Web sitesinde kullanım örneği
198
+ const API_URL = 'https://api-inference.huggingface.co/models/Teknova/NovaAI';
199
+
200
+ async function queryNovaAI(text) {
201
+ const response = await fetch(API_URL, {
202
+ headers: {
203
+ 'Authorization': 'Bearer YOUR_TOKEN',
204
+ 'Content-Type': 'application/json'
205
+ },
206
+ method: 'POST',
207
+ body: JSON.stringify({
208
+ inputs: text,
209
+ parameters: {
210
+ max_new_tokens: 256,
211
+ temperature: 0.7
212
+ }
213
+ })
214
+ });
215
+
216
+ return await response.json();
217
+ }
218
+ ```
219
+
220
+ ---
221
+
222
+ ## 📊 **Performans**
223
+
224
+ ### 🚀 **Hız ve Verimlilik**
225
+ - **CPU Modunda:** ~2-3 saniye yanıt süresi
226
+ - **GPU Modunda:** ~0.5-1 saniye yanıt süresi
227
+ - **Bellek Kullanımı:** ~14.5GB model boyutu
228
+ - **Optimizasyon:** 4-bit quantization desteği
229
+
230
+ ### 🎯 **Kalite Metrikleri**
231
+ - **Türkçe Doğruluk:** Yüksek seviyede Türkçe anlama
232
+ - **Bağlamsal Tutarlılık:** Uzun konuşmalarda tutarlı yanıtlar
233
+ - **Yaratıcılık:** Özgün ve çeşitli içerik üretimi
234
+
235
+ ---
236
+
237
+ ## 🔧 **Sistem Gereksinimleri**
238
+
239
+ ### 💻 **Minimum Gereksinimler**
240
+ - **RAM:** 16GB (4-bit quantization ile)
241
+ - **GPU:** 8GB VRAM (RTX 3070 veya üzeri)
242
+ - **CPU:** 4 çekirdek, 2.5GHz+
243
+ - **Depolama:** 20GB boş alan
244
+
245
+ ### 🚀 **Önerilen Gereksinimler**
246
+ - **RAM:** 32GB
247
+ - **GPU:** 16GB+ VRAM (RTX 4080/4090)
248
+ - **CPU:** 8+ çekirdek, 3.0GHz+
249
+ - **Depolama:** SSD, 50GB+ boş alan
250
+
251
+ ---
252
+
253
+ ## 📜 **Lisans ve Kullanım**
254
+
255
+ Bu model **Apache 2.0** lisansı altında yayınlanmıştır. Ticari ve akademik kullanım için serbesttir.
256
+
257
+ ### ⚠️ **Önemli Notlar**
258
+ - Model özgün Teknova teknolojisi içermektedir
259
+ - Türkçe optimizasyonları Teknova tarafından geliştirilmiştir
260
+ - Responsible AI ilkelerine uygun olarak kullanılmalıdır
261
+
262
+ ---
263
+
264
+ ## 🏢 **Teknova Hakkında**
265
+
266
+ **Teknova**, Türkiye'nin öncü yapay zeka teknoloji şirketidir. Özgün AI çözümleri geliştirerek teknoloji dünyasında fark yaratmayı hedefliyoruz.
267
+
268
+ ### 🎯 **Misyonumuz**
269
+ Yapay zeka teknolojilerini Türkçe konuşan kullanıcılar için optimize etmek ve erişilebilir kılmak.
270
+
271
+ ### 🚀 **Vizyonumuz**
272
+ Türkiye'den dünyaya özgün yapay zeka teknolojileri ihraç etmek.
273
+
274
+ ---
275
+
276
+ ## 📞 **İletişim ve Destek**
277
+
278
+ - **🌐 Website:** [teknova.ai](https://teknova.ai)
279
+ - **📧 E-posta:** info@teknova.ai
280
+ - **💬 Destek:** [GitHub Issues](https://github.com/teknova-ai/nova-ai/issues)
281
+ - **📱 Sosyal Medya:** [@TeknovaAI](https://twitter.com/TeknovaAI)
282
+
283
+ ---
284
+
285
+ ## 🙏 **Teşekkürler**
286
+
287
+ Nova AI'yi kullandığınız için teşekkürler! Geri bildirimleriniz bizim için değerlidir.
288
+
289
+ **Teknova Nova AI** - *Türkiye'nin Özgün Yapay Zeka Teknolojisi* 🚀
app.py CHANGED
@@ -1,360 +1,360 @@
1
- """
2
- 🚀 Nova AI - Hugging Face Spaces ZeroGPU
3
- Teknova tarafından geliştirilen özgün yapay zeka modeli
4
- ZeroGPU ile hızlandırılmış
5
- """
6
-
7
- import gradio as gr
8
- import torch
9
- import os
10
- import logging
11
- import time
12
- from typing import List, Tuple
13
-
14
- # Spaces import - sadece Hugging Face Spaces'te mevcut
15
- try:
16
- import spaces
17
- HAS_SPACES = True
18
- except ImportError:
19
- HAS_SPACES = False
20
- # Spaces decorator'ı için dummy fonksiyon
21
- def spaces_gpu(func):
22
- return func
23
- spaces = type('spaces', (), {'GPU': spaces_gpu})()
24
-
25
- # Logging setup
26
- logging.basicConfig(level=logging.INFO)
27
- logger = logging.getLogger(__name__)
28
-
29
- # Global variables
30
- model = None
31
- tokenizer = None
32
- device = "cuda" if torch.cuda.is_available() else "cpu"
33
-
34
- def load_demo_responses():
35
- """
36
- Demo yanıtları - model yokken kullanılacak
37
- """
38
- demo_responses = {
39
- "merhaba": "Merhaba! Ben Nova AI, Teknova'nın özgün yapay zeka teknolojisi. Size nasıl yardımcı olabilirim?",
40
- "nasılsın": "Ben Nova AI'yım ve harika hissediyorum! Sizinle sohbet etmek için buradayım. Ne konuşmak istersiniz?",
41
- "nova ai nedir": "Nova AI, Teknova tarafından geliştirilen özgün bir yapay zeka modelidir. Türkçe konuşabilir ve çeşitli konularda yardımcı olabilirim.",
42
- "teknova": "Teknova, Türkiye'nin öncü yapay zeka teknoloji şirketidir. Özgün AI çözümleri geliştiriyoruz.",
43
- "yapay zeka": "Yapay zeka, bilgisayarların insan benzeri düşünme ve öğrenme yetenekleri göstermesidir. Ben de bir yapay zeka örneğiyim!",
44
- "projeler": "Size yenilikçi proje fikirleri önerebilirim: AI chatbot, veri analizi, web uygulaması, mobil uygulama gibi...",
45
- "gelecek": "Gelecekte yapay zeka, otonom araçlar, akıllı şehirler ve personalize eğitim gibi alanlarda devrim yaratacak!"
46
- }
47
- return demo_responses
48
-
49
- def generate_demo_response(message: str) -> str:
50
- """
51
- Demo yanıt oluştur (model olmadığında)
52
- """
53
- message_lower = message.lower().strip()
54
- demo_responses = load_demo_responses()
55
-
56
- # Exact match
57
- if message_lower in demo_responses:
58
- return demo_responses[message_lower]
59
-
60
- # Partial match
61
- for key, response in demo_responses.items():
62
- if key in message_lower:
63
- return response
64
-
65
- # Default responses
66
- if "?" in message:
67
- return f"'{message}' hakkında çok ilginç bir soru sordunuz! Nova AI olarak elimden geldiğince yardımcı olmaya çalışırım. Bu konuda daha spesifik sorular sorabilirsiniz."
68
-
69
- return f"Nova AI burada! '{message}' konusunda konuşmak güzel. Size nasıl yardımcı olabilirim? Daha detaylı sorular sorabilirsiniz."
70
-
71
- def chat_response(message: str, history: List[List[str]], max_length: int, temperature: float) -> Tuple[str, List[List[str]]]:
72
- """
73
- Chat response function
74
- """
75
- if not message.strip():
76
- return "", history
77
-
78
- # Simulate thinking time
79
- time.sleep(0.5)
80
-
81
- # Generate response
82
- if model and tokenizer:
83
- # Gerçek model ile yanıt (model yüklü ise)
84
- try:
85
- response = generate_real_response(message, max_length, temperature)
86
- except Exception as e:
87
- response = f"Model hatası: {str(e)} - Demo moduna geçiliyor..."
88
- response += "\n\n" + generate_demo_response(message)
89
- else:
90
- # Demo yanıt
91
- response = generate_demo_response(message)
92
- response += "\n\n💡 *Not: Bu demo modunda çalışıyor. Gerçek Nova AI modeli yüklendiğinde daha gelişmiş yanıtlar alacaksınız.*"
93
-
94
- # Add to history
95
- history.append([message, response])
96
- return "", history
97
-
98
- @spaces.GPU
99
- def generate_real_response(message: str, max_length: int, temperature: float) -> str:
100
- """
101
- Gerçek model ile yanıt oluştur - ZeroGPU destekli
102
- """
103
- if not model or not tokenizer:
104
- return generate_demo_response(message)
105
-
106
- try:
107
- inputs = tokenizer.encode(message, return_tensors="pt")
108
- if device == "cuda":
109
- inputs = inputs.to(device)
110
-
111
- with torch.no_grad():
112
- outputs = model.generate(
113
- inputs,
114
- max_length=max_length,
115
- temperature=temperature,
116
- do_sample=True,
117
- pad_token_id=tokenizer.eos_token_id,
118
- no_repeat_ngram_size=3,
119
- top_p=0.9
120
- )
121
-
122
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
123
- if message in response:
124
- response = response.replace(message, "").strip()
125
-
126
- return response if response else generate_demo_response(message)
127
-
128
- except Exception as e:
129
- logger.error(f"Model generation error: {e}")
130
- return generate_demo_response(message)
131
-
132
- @spaces.GPU
133
- def load_model():
134
- """
135
- Teknova Nova AI modelini yükle - ZeroGPU destekli
136
- """
137
- global model, tokenizer
138
-
139
- try:
140
- from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
141
-
142
- # Model path - Hugging Face Hub'dan yükle
143
- model_path = "veteroner/NovaAI"
144
-
145
- logger.info(f"🚀 Teknova Nova AI modeli Hub'dan yükleniyor: {model_path}")
146
-
147
- # Tokenizer yükle
148
- tokenizer = AutoTokenizer.from_pretrained(
149
- model_path,
150
- trust_remote_code=True,
151
- use_fast=True
152
- )
153
-
154
- # Pad token ayarla
155
- if tokenizer.pad_token is None:
156
- tokenizer.pad_token = tokenizer.eos_token
157
-
158
- # Model yükle - ZeroGPU optimizasyonu
159
- model = AutoModelForCausalLM.from_pretrained(
160
- model_path,
161
- device_map="auto",
162
- trust_remote_code=True,
163
- torch_dtype=torch.float16,
164
- low_cpu_mem_usage=True
165
- )
166
-
167
- logger.info(f"✅ Nova AI model yüklendi ({device})")
168
- return f"✅ Teknova Nova AI hazır! ({device})"
169
-
170
- except Exception as e:
171
- logger.error(f"Model yükleme hatası: {e}")
172
- return f"❌ Model yüklenemedi: {str(e)} - Demo modunda çalışacak"
173
-
174
- @spaces.GPU
175
- def chat_with_nova(message: str, history: List[Tuple[str, str]]) -> str:
176
- """
177
- Nova AI ile sohbet et - ZeroGPU destekli
178
- """
179
- global model, tokenizer
180
-
181
- if model is None or tokenizer is None:
182
- # Demo yanıt ver
183
- return generate_demo_response(message) + "\n\n💡 *Not: Demo modunda çalışıyor.*"
184
-
185
- if not message.strip():
186
- return "❓ Lütfen bir mesaj yazın."
187
-
188
- try:
189
- # Konuşma geçmişini hazırla
190
- conversation = ""
191
- for user_msg, bot_msg in history:
192
- if user_msg and bot_msg:
193
- conversation += f"Kullanıcı: {user_msg}\nNova AI: {bot_msg}\n"
194
-
195
- # Yeni mesajı ekle
196
- conversation += f"Kullanıcı: {message}\nNova AI:"
197
-
198
- # Tokenize et
199
- inputs = tokenizer(
200
- conversation,
201
- return_tensors="pt",
202
- truncation=True,
203
- max_length=2048,
204
- padding=True
205
- )
206
-
207
- # GPU'ya taşı
208
- if torch.cuda.is_available():
209
- inputs = {k: v.to(model.device) for k, v in inputs.items()}
210
-
211
- # Yanıt üret
212
- with torch.no_grad():
213
- outputs = model.generate(
214
- **inputs,
215
- max_new_tokens=256,
216
- temperature=0.7,
217
- top_p=0.9,
218
- do_sample=True,
219
- pad_token_id=tokenizer.pad_token_id,
220
- eos_token_id=tokenizer.eos_token_id,
221
- repetition_penalty=1.1
222
- )
223
-
224
- # Yanıtı decode et
225
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
226
-
227
- # Sadece yeni üretilen kısmı al
228
- new_response = response[len(conversation):].strip()
229
-
230
- return new_response if new_response else "Üzgünüm, yanıt üretemedi."
231
-
232
- except Exception as e:
233
- logger.error(f"Chat hatası: {e}")
234
- return f"❌ Yanıt üretirken hata: {str(e)}"
235
-
236
- # Model yüklemeyi başlat
237
- logger.info("Model yükleme başlatılıyor...")
238
- load_status = load_model()
239
- logger.info(f"Model durumu: {load_status}")
240
-
241
- # Gradio arayüzü
242
- with gr.Blocks(
243
- theme=gr.themes.Soft(),
244
- title="Teknova Nova AI - ZeroGPU",
245
- css="""
246
- .gradio-container {
247
- max-width: 900px;
248
- margin: 0 auto;
249
- }
250
- .header-text {
251
- text-align: center;
252
- padding: 20px;
253
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
254
- color: white;
255
- border-radius: 15px;
256
- margin-bottom: 20px;
257
- }
258
- """
259
- ) as demo:
260
-
261
- # Header
262
- gr.HTML("""
263
- <div class="header-text">
264
- <h1 style="font-size: 2.5rem; margin: 0; font-weight: bold;">
265
- 🚀 Teknova Nova AI
266
- </h1>
267
- <p style="font-size: 1.2rem; margin: 10px 0; opacity: 0.9;">
268
- Türkiye'nin Özgün Yapay Zeka Modeli
269
- </p>
270
- <div style="background: rgba(255,255,255,0.2); padding: 8px 16px; border-radius: 20px; display: inline-block; font-size: 0.9rem;">
271
- 🧠 Nova AI • 🇹�� Türkçe Optimize • ⚡ ZeroGPU Hızlı
272
- </div>
273
- </div>
274
- """)
275
-
276
- # Chat interface
277
- chatbot = gr.Chatbot(
278
- height=500,
279
- show_label=False,
280
- show_share_button=True,
281
- show_copy_button=True,
282
- avatar_images=[None, "🤖"],
283
- bubble_full_width=False
284
- )
285
-
286
- with gr.Row():
287
- msg = gr.Textbox(
288
- placeholder="Nova AI'ya mesajınızı yazın... (Örn: Merhaba, nasılsın?)",
289
- show_label=False,
290
- scale=4,
291
- container=False
292
- )
293
- submit = gr.Button("🚀 Gönder", scale=1, variant="primary")
294
-
295
- with gr.Row():
296
- clear = gr.Button("🗑️ Temizle", scale=1)
297
- retry = gr.Button("🔄 Tekrar Dene", scale=1)
298
-
299
- # Examples
300
- gr.Examples(
301
- examples=[
302
- "Merhaba Nova AI, nasılsın?",
303
- "Yapay zeka nedir?",
304
- "Teknova hakkında bilgi ver",
305
- "Bana bir hikaye anlat",
306
- "Python programlama hakkında bilgi ver"
307
- ],
308
- inputs=msg,
309
- label="💡 Örnek Sorular"
310
- )
311
-
312
- # Footer
313
- gr.HTML("""
314
- <div style="text-align: center; padding: 15px; color: #666; font-size: 0.9rem;">
315
- <p>🌟 <strong>Teknova Nova AI</strong> - Tamamen özgün Türkçe dil modeli</p>
316
- <p>🚀 ZeroGPU teknolojisi ile hızlandırılmış</p>
317
- <p style="color: #999;">⚡ Teknova Innovation ile güçlendirilmiştir</p>
318
- </div>
319
- """)
320
-
321
- # Event handlers
322
- def user_message(message, history):
323
- return "", history + [[message, None]]
324
-
325
- @spaces.GPU
326
- def bot_message(history):
327
- """Bot yanıtı oluştur - ZeroGPU destekli"""
328
- if history and history[-1][1] is None:
329
- user_msg = history[-1][0]
330
- bot_response = chat_with_nova(user_msg, history[:-1])
331
- history[-1][1] = bot_response
332
- return history
333
-
334
- @spaces.GPU
335
- def retry_last(history):
336
- """Son mesajı yeniden dene - ZeroGPU destekli"""
337
- if history and history[-1][1] is not None:
338
- user_msg = history[-1][0]
339
- bot_response = chat_with_nova(user_msg, history[:-1])
340
- history[-1][1] = bot_response
341
- return history
342
-
343
- # Event bindings
344
- msg.submit(user_message, [msg, chatbot], [msg, chatbot], queue=False).then(
345
- bot_message, chatbot, chatbot
346
- )
347
- submit.click(user_message, [msg, chatbot], [msg, chatbot], queue=False).then(
348
- bot_message, chatbot, chatbot
349
- )
350
- clear.click(lambda: None, None, chatbot, queue=False)
351
- retry.click(retry_last, chatbot, chatbot)
352
-
353
- # Launch
354
- if __name__ == "__main__":
355
- demo.launch(
356
- server_name="0.0.0.0",
357
- server_port=7860,
358
- share=False,
359
- show_error=True
360
  )
 
1
+ """
2
+ 🚀 Nova AI - Hugging Face Spaces ZeroGPU
3
+ Teknova tarafından geliştirilen özgün yapay zeka modeli
4
+ ZeroGPU ile hızlandırılmış
5
+ """
6
+
7
+ import gradio as gr
8
+ import torch
9
+ import os
10
+ import logging
11
+ import time
12
+ from typing import List, Tuple
13
+
14
+ # Spaces import - sadece Hugging Face Spaces'te mevcut
15
+ try:
16
+ import spaces
17
+ HAS_SPACES = True
18
+ except ImportError:
19
+ HAS_SPACES = False
20
+ # Spaces decorator'ı için dummy fonksiyon
21
+ def spaces_gpu(func):
22
+ return func
23
+ spaces = type('spaces', (), {'GPU': spaces_gpu})()
24
+
25
+ # Logging setup
26
+ logging.basicConfig(level=logging.INFO)
27
+ logger = logging.getLogger(__name__)
28
+
29
+ # Global variables
30
+ model = None
31
+ tokenizer = None
32
+ device = "cuda" if torch.cuda.is_available() else "cpu"
33
+
34
+ def load_demo_responses():
35
+ """
36
+ Demo yanıtları - model yokken kullanılacak
37
+ """
38
+ demo_responses = {
39
+ "merhaba": "Merhaba! Ben Nova AI, Teknova'nın özgün yapay zeka teknolojisi. Size nasıl yardımcı olabilirim?",
40
+ "nasılsın": "Ben Nova AI'yım ve harika hissediyorum! Sizinle sohbet etmek için buradayım. Ne konuşmak istersiniz?",
41
+ "nova ai nedir": "Nova AI, Teknova tarafından geliştirilen özgün bir yapay zeka modelidir. Türkçe konuşabilir ve çeşitli konularda yardımcı olabilirim.",
42
+ "teknova": "Teknova, Türkiye'nin öncü yapay zeka teknoloji şirketidir. Özgün AI çözümleri geliştiriyoruz.",
43
+ "yapay zeka": "Yapay zeka, bilgisayarların insan benzeri düşünme ve öğrenme yetenekleri göstermesidir. Ben de bir yapay zeka örneğiyim!",
44
+ "projeler": "Size yenilikçi proje fikirleri önerebilirim: AI chatbot, veri analizi, web uygulaması, mobil uygulama gibi...",
45
+ "gelecek": "Gelecekte yapay zeka, otonom araçlar, akıllı şehirler ve personalize eğitim gibi alanlarda devrim yaratacak!"
46
+ }
47
+ return demo_responses
48
+
49
+ def generate_demo_response(message: str) -> str:
50
+ """
51
+ Demo yanıt oluştur (model olmadığında)
52
+ """
53
+ message_lower = message.lower().strip()
54
+ demo_responses = load_demo_responses()
55
+
56
+ # Exact match
57
+ if message_lower in demo_responses:
58
+ return demo_responses[message_lower]
59
+
60
+ # Partial match
61
+ for key, response in demo_responses.items():
62
+ if key in message_lower:
63
+ return response
64
+
65
+ # Default responses
66
+ if "?" in message:
67
+ return f"'{message}' hakkında çok ilginç bir soru sordunuz! Nova AI olarak elimden geldiğince yardımcı olmaya çalışırım. Bu konuda daha spesifik sorular sorabilirsiniz."
68
+
69
+ return f"Nova AI burada! '{message}' konusunda konuşmak güzel. Size nasıl yardımcı olabilirim? Daha detaylı sorular sorabilirsiniz."
70
+
71
+ def chat_response(message: str, history: List[List[str]], max_length: int, temperature: float) -> Tuple[str, List[List[str]]]:
72
+ """
73
+ Chat response function
74
+ """
75
+ if not message.strip():
76
+ return "", history
77
+
78
+ # Simulate thinking time
79
+ time.sleep(0.5)
80
+
81
+ # Generate response
82
+ if model and tokenizer:
83
+ # Gerçek model ile yanıt (model yüklü ise)
84
+ try:
85
+ response = generate_real_response(message, max_length, temperature)
86
+ except Exception as e:
87
+ response = f"Model hatası: {str(e)} - Demo moduna geçiliyor..."
88
+ response += "\n\n" + generate_demo_response(message)
89
+ else:
90
+ # Demo yanıt
91
+ response = generate_demo_response(message)
92
+ response += "\n\n💡 *Not: Bu demo modunda çalışıyor. Gerçek Nova AI modeli yüklendiğinde daha gelişmiş yanıtlar alacaksınız.*"
93
+
94
+ # Add to history
95
+ history.append([message, response])
96
+ return "", history
97
+
98
+ @spaces.GPU
99
+ def generate_real_response(message: str, max_length: int, temperature: float) -> str:
100
+ """
101
+ Gerçek model ile yanıt oluştur - ZeroGPU destekli
102
+ """
103
+ if not model or not tokenizer:
104
+ return generate_demo_response(message)
105
+
106
+ try:
107
+ inputs = tokenizer.encode(message, return_tensors="pt")
108
+ if device == "cuda":
109
+ inputs = inputs.to(device)
110
+
111
+ with torch.no_grad():
112
+ outputs = model.generate(
113
+ inputs,
114
+ max_length=max_length,
115
+ temperature=temperature,
116
+ do_sample=True,
117
+ pad_token_id=tokenizer.eos_token_id,
118
+ no_repeat_ngram_size=3,
119
+ top_p=0.9
120
+ )
121
+
122
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
123
+ if message in response:
124
+ response = response.replace(message, "").strip()
125
+
126
+ return response if response else generate_demo_response(message)
127
+
128
+ except Exception as e:
129
+ logger.error(f"Model generation error: {e}")
130
+ return generate_demo_response(message)
131
+
132
+ @spaces.GPU
133
+ def load_model():
134
+ """
135
+ Teknova Nova AI modelini yükle - ZeroGPU destekli
136
+ """
137
+ global model, tokenizer
138
+
139
+ try:
140
+ from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
141
+
142
+ # Model path - Hugging Face Hub'dan yükle
143
+ model_path = "veteroner/NovaAI"
144
+
145
+ logger.info(f"🚀 Teknova Nova AI modeli Hub'dan yükleniyor: {model_path}")
146
+
147
+ # Tokenizer yükle
148
+ tokenizer = AutoTokenizer.from_pretrained(
149
+ model_path,
150
+ trust_remote_code=True,
151
+ use_fast=True
152
+ )
153
+
154
+ # Pad token ayarla
155
+ if tokenizer.pad_token is None:
156
+ tokenizer.pad_token = tokenizer.eos_token
157
+
158
+ # Model yükle - ZeroGPU optimizasyonu
159
+ model = AutoModelForCausalLM.from_pretrained(
160
+ model_path,
161
+ device_map="auto",
162
+ trust_remote_code=True,
163
+ torch_dtype=torch.float16,
164
+ low_cpu_mem_usage=True
165
+ )
166
+
167
+ logger.info(f"✅ Nova AI model yüklendi ({device})")
168
+ return f"✅ Teknova Nova AI hazır! ({device})"
169
+
170
+ except Exception as e:
171
+ logger.error(f"Model yükleme hatası: {e}")
172
+ return f"❌ Model yüklenemedi: {str(e)} - Demo modunda çalışacak"
173
+
174
+ @spaces.GPU
175
+ def chat_with_nova(message: str, history: List[Tuple[str, str]]) -> str:
176
+ """
177
+ Nova AI ile sohbet et - ZeroGPU destekli
178
+ """
179
+ global model, tokenizer
180
+
181
+ if model is None or tokenizer is None:
182
+ # Demo yanıt ver
183
+ return generate_demo_response(message) + "\n\n💡 *Not: Demo modunda çalışıyor.*"
184
+
185
+ if not message.strip():
186
+ return "❓ Lütfen bir mesaj yazın."
187
+
188
+ try:
189
+ # Konuşma geçmişini hazırla
190
+ conversation = ""
191
+ for user_msg, bot_msg in history:
192
+ if user_msg and bot_msg:
193
+ conversation += f"Kullanıcı: {user_msg}\nNova AI: {bot_msg}\n"
194
+
195
+ # Yeni mesajı ekle
196
+ conversation += f"Kullanıcı: {message}\nNova AI:"
197
+
198
+ # Tokenize et
199
+ inputs = tokenizer(
200
+ conversation,
201
+ return_tensors="pt",
202
+ truncation=True,
203
+ max_length=2048,
204
+ padding=True
205
+ )
206
+
207
+ # GPU'ya taşı
208
+ if torch.cuda.is_available():
209
+ inputs = {k: v.to(model.device) for k, v in inputs.items()}
210
+
211
+ # Yanıt üret
212
+ with torch.no_grad():
213
+ outputs = model.generate(
214
+ **inputs,
215
+ max_new_tokens=256,
216
+ temperature=0.7,
217
+ top_p=0.9,
218
+ do_sample=True,
219
+ pad_token_id=tokenizer.pad_token_id,
220
+ eos_token_id=tokenizer.eos_token_id,
221
+ repetition_penalty=1.1
222
+ )
223
+
224
+ # Yanıtı decode et
225
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
226
+
227
+ # Sadece yeni üretilen kısmı al
228
+ new_response = response[len(conversation):].strip()
229
+
230
+ return new_response if new_response else "Üzgünüm, yanıt üretemedi."
231
+
232
+ except Exception as e:
233
+ logger.error(f"Chat hatası: {e}")
234
+ return f"❌ Yanıt üretirken hata: {str(e)}"
235
+
236
+ # Model yüklemeyi başlat
237
+ logger.info("Model yükleme başlatılıyor...")
238
+ load_status = load_model()
239
+ logger.info(f"Model durumu: {load_status}")
240
+
241
+ # Gradio arayüzü
242
+ with gr.Blocks(
243
+ theme=gr.themes.Soft(),
244
+ title="Teknova Nova AI - ZeroGPU",
245
+ css="""
246
+ .gradio-container {
247
+ max-width: 900px;
248
+ margin: 0 auto;
249
+ }
250
+ .header-text {
251
+ text-align: center;
252
+ padding: 20px;
253
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
254
+ color: white;
255
+ border-radius: 15px;
256
+ margin-bottom: 20px;
257
+ }
258
+ """
259
+ ) as demo:
260
+
261
+ # Header
262
+ gr.HTML("""
263
+ <div class="header-text">
264
+ <h1 style="font-size: 2.5rem; margin: 0; font-weight: bold;">
265
+ 🚀 Teknova Nova AI
266
+ </h1>
267
+ <p style="font-size: 1.2rem; margin: 10px 0; opacity: 0.9;">
268
+ Türkiye'nin Özgün Yapay Zeka Modeli
269
+ </p>
270
+ <div style="background: rgba(255,255,255,0.2); padding: 8px 16px; border-radius: 20px; display: inline-block; font-size: 0.9rem;">
271
+ 🧠 Nova AI • 🇹�� Türkçe Optimize • ⚡ ZeroGPU Hızlı
272
+ </div>
273
+ </div>
274
+ """)
275
+
276
+ # Chat interface
277
+ chatbot = gr.Chatbot(
278
+ height=500,
279
+ show_label=False,
280
+ show_share_button=True,
281
+ show_copy_button=True,
282
+ avatar_images=[None, "🤖"],
283
+ bubble_full_width=False
284
+ )
285
+
286
+ with gr.Row():
287
+ msg = gr.Textbox(
288
+ placeholder="Nova AI'ya mesajınızı yazın... (Örn: Merhaba, nasılsın?)",
289
+ show_label=False,
290
+ scale=4,
291
+ container=False
292
+ )
293
+ submit = gr.Button("🚀 Gönder", scale=1, variant="primary")
294
+
295
+ with gr.Row():
296
+ clear = gr.Button("🗑️ Temizle", scale=1)
297
+ retry = gr.Button("🔄 Tekrar Dene", scale=1)
298
+
299
+ # Examples
300
+ gr.Examples(
301
+ examples=[
302
+ "Merhaba Nova AI, nasılsın?",
303
+ "Yapay zeka nedir?",
304
+ "Teknova hakkında bilgi ver",
305
+ "Bana bir hikaye anlat",
306
+ "Python programlama hakkında bilgi ver"
307
+ ],
308
+ inputs=msg,
309
+ label="💡 Örnek Sorular"
310
+ )
311
+
312
+ # Footer
313
+ gr.HTML("""
314
+ <div style="text-align: center; padding: 15px; color: #666; font-size: 0.9rem;">
315
+ <p>🌟 <strong>Teknova Nova AI</strong> - Tamamen özgün Türkçe dil modeli</p>
316
+ <p>🚀 ZeroGPU teknolojisi ile hızlandırılmış</p>
317
+ <p style="color: #999;">⚡ Teknova Innovation ile güçlendirilmiştir</p>
318
+ </div>
319
+ """)
320
+
321
+ # Event handlers
322
+ def user_message(message, history):
323
+ return "", history + [[message, None]]
324
+
325
+ @spaces.GPU
326
+ def bot_message(history):
327
+ """Bot yanıtı oluştur - ZeroGPU destekli"""
328
+ if history and history[-1][1] is None:
329
+ user_msg = history[-1][0]
330
+ bot_response = chat_with_nova(user_msg, history[:-1])
331
+ history[-1][1] = bot_response
332
+ return history
333
+
334
+ @spaces.GPU
335
+ def retry_last(history):
336
+ """Son mesajı yeniden dene - ZeroGPU destekli"""
337
+ if history and history[-1][1] is not None:
338
+ user_msg = history[-1][0]
339
+ bot_response = chat_with_nova(user_msg, history[:-1])
340
+ history[-1][1] = bot_response
341
+ return history
342
+
343
+ # Event bindings
344
+ msg.submit(user_message, [msg, chatbot], [msg, chatbot], queue=False).then(
345
+ bot_message, chatbot, chatbot
346
+ )
347
+ submit.click(user_message, [msg, chatbot], [msg, chatbot], queue=False).then(
348
+ bot_message, chatbot, chatbot
349
+ )
350
+ clear.click(lambda: None, None, chatbot, queue=False)
351
+ retry.click(retry_last, chatbot, chatbot)
352
+
353
+ # Launch
354
+ if __name__ == "__main__":
355
+ demo.launch(
356
+ server_name="0.0.0.0",
357
+ server_port=7860,
358
+ share=False,
359
+ show_error=True
360
  )
basit_konsol.py CHANGED
@@ -1,175 +1,175 @@
1
- """
2
- 🚀 Nova AI - Basit Konsol Uygulaması
3
- Teknova tarafından geliştirilen özgün yapay zeka modeli
4
- Hub ve local model desteği
5
- """
6
-
7
- from transformers import AutoModelForCausalLM, AutoTokenizer
8
- import torch
9
- import os
10
-
11
- # Model seçenekleri
12
- MODELS = {
13
- "1": {"name": "Nova AI Hub", "path": "veteroner/NovaAI"},
14
- "2": {"name": "Local Model", "path": "./nova-ai-model"}
15
- }
16
-
17
- def select_model():
18
- """Kullanıcıdan model seçimi al"""
19
- print("\n📋 Model Seçimi:")
20
- for key, value in MODELS.items():
21
- if value["path"].startswith("./"):
22
- status = "✅" if os.path.exists(value["path"]) else "❌"
23
- else:
24
- status = "🌐" # Hub modeli
25
- print(f"{key}. {value['name']} {status}")
26
-
27
- while True:
28
- choice = input("\nModel seçin (1 veya 2): ").strip()
29
- if choice in MODELS:
30
- return MODELS[choice]["path"], MODELS[choice]["name"]
31
- print("❌ Geçersiz seçim! 1 veya 2 yazın.")
32
-
33
- def load_model(model_path, model_name):
34
- """Seçilen modeli yükle"""
35
- print(f"\n🚀 {model_name} yükleniyor...")
36
-
37
- # Local model kontrolü
38
- if model_path.startswith("./") and not os.path.exists(model_path):
39
- print(f"❌ Local model bulunamadı: {model_path}")
40
- return None, None
41
-
42
- try:
43
- # Tokenizer yükle
44
- tokenizer = AutoTokenizer.from_pretrained(
45
- model_path,
46
- trust_remote_code=True
47
- )
48
-
49
- # Model yükleme ayarları
50
- load_kwargs = {
51
- "torch_dtype": torch.float16,
52
- "trust_remote_code": True
53
- }
54
-
55
- # GPU kontrolü
56
- if torch.cuda.is_available():
57
- print("🎮 GPU tespit edildi, GPU kullanılacak")
58
- load_kwargs["device_map"] = "auto"
59
- else:
60
- print("💻 CPU kullanılacak")
61
- load_kwargs["device_map"] = None
62
-
63
- # Model yükle
64
- model = AutoModelForCausalLM.from_pretrained(
65
- model_path,
66
- **load_kwargs
67
- )
68
-
69
- print(f"✅ {model_name} başarıyla yüklendi!")
70
- return model, tokenizer
71
-
72
- except Exception as e:
73
- print(f"❌ Model yükleme hatası: {e}")
74
- return None, None
75
-
76
- def chat_with_nova(message, model, tokenizer, max_tokens=256):
77
- """Nova AI ile sohbet et"""
78
- try:
79
- # Konuşma formatı
80
- conversation = f"Kullanıcı: {message}\nNova AI:"
81
-
82
- # Tokenize
83
- inputs = tokenizer(
84
- conversation,
85
- return_tensors="pt",
86
- truncation=True,
87
- max_length=1024
88
- )
89
-
90
- # GPU'ya taşı (eğer varsa)
91
- if model.device.type != 'cpu':
92
- inputs = inputs.to(model.device)
93
-
94
- # Yanıt üret
95
- with torch.no_grad():
96
- outputs = model.generate(
97
- **inputs,
98
- max_new_tokens=max_tokens,
99
- temperature=0.7,
100
- top_p=0.9,
101
- do_sample=True,
102
- pad_token_id=tokenizer.eos_token_id,
103
- eos_token_id=tokenizer.eos_token_id
104
- )
105
-
106
- # Decode et
107
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
108
- nova_response = response[len(conversation):].strip()
109
-
110
- return nova_response if nova_response else "Üzgünüm, yanıt üretemedi."
111
-
112
- except Exception as e:
113
- return f"❌ Hata: {e}"
114
-
115
- def main():
116
- """Ana uygulama"""
117
- print("=" * 50)
118
- print("🚀 NOVA AI - BASİT KONSOL UYGULAMASI")
119
- print("🌟 Teknova Özgün Yapay Zeka Modeli")
120
- print("=" * 50)
121
-
122
- # Model seçimi
123
- model_path, model_name = select_model()
124
-
125
- # Modeli yükle
126
- model, tokenizer = load_model(model_path, model_name)
127
-
128
- if model is None or tokenizer is None:
129
- print("❌ Program sonlandırılıyor.")
130
- return
131
-
132
- print(f"\n🎉 {model_name} ile sohbet hazır!")
133
- print("💬 Komutlar:")
134
- print(" - Mesaj yazarak sohbet edin")
135
- print(" - 'exit' yazarak çıkın")
136
- print(" - 'model' yazarak model değiştirin")
137
- print("-" * 50)
138
-
139
- while True:
140
- try:
141
- user_input = input("\n👤 Siz: ").strip()
142
-
143
- # Çıkış komutları
144
- if user_input.lower() in ['exit', 'çıkış', 'quit', 'q']:
145
- print("\n🚀 Nova AI - Görüşmek üzere!")
146
- break
147
-
148
- # Model değiştirme
149
- if user_input.lower() == 'model':
150
- print("\n🔄 Model değiştiriliyor...")
151
- model_path, model_name = select_model()
152
- model, tokenizer = load_model(model_path, model_name)
153
- if model is None:
154
- continue
155
- print(f"✅ {model_name} aktif!")
156
- continue
157
-
158
- # Boş mesaj kontrolü
159
- if not user_input:
160
- print("🤖 Nova AI: Lütfen bir mesaj yazın.")
161
- continue
162
-
163
- # Nova AI'dan yanıt al
164
- print("🤖 Nova AI düşünüyor...")
165
- response = chat_with_nova(user_input, model, tokenizer)
166
- print(f"🤖 Nova AI: {response}")
167
-
168
- except KeyboardInterrupt:
169
- print("\n\n🚀 Nova AI - Program sonlandırıldı!")
170
- break
171
- except Exception as e:
172
- print(f"❌ Beklenmeyen hata: {e}")
173
-
174
- if __name__ == "__main__":
175
  main()
 
1
+ """
2
+ 🚀 Nova AI - Basit Konsol Uygulaması
3
+ Teknova tarafından geliştirilen özgün yapay zeka modeli
4
+ Hub ve local model desteği
5
+ """
6
+
7
+ from transformers import AutoModelForCausalLM, AutoTokenizer
8
+ import torch
9
+ import os
10
+
11
+ # Model seçenekleri
12
+ MODELS = {
13
+ "1": {"name": "Nova AI Hub", "path": "veteroner/NovaAI"},
14
+ "2": {"name": "Local Model", "path": "./nova-ai-model"}
15
+ }
16
+
17
+ def select_model():
18
+ """Kullanıcıdan model seçimi al"""
19
+ print("\n📋 Model Seçimi:")
20
+ for key, value in MODELS.items():
21
+ if value["path"].startswith("./"):
22
+ status = "✅" if os.path.exists(value["path"]) else "❌"
23
+ else:
24
+ status = "🌐" # Hub modeli
25
+ print(f"{key}. {value['name']} {status}")
26
+
27
+ while True:
28
+ choice = input("\nModel seçin (1 veya 2): ").strip()
29
+ if choice in MODELS:
30
+ return MODELS[choice]["path"], MODELS[choice]["name"]
31
+ print("❌ Geçersiz seçim! 1 veya 2 yazın.")
32
+
33
+ def load_model(model_path, model_name):
34
+ """Seçilen modeli yükle"""
35
+ print(f"\n🚀 {model_name} yükleniyor...")
36
+
37
+ # Local model kontrolü
38
+ if model_path.startswith("./") and not os.path.exists(model_path):
39
+ print(f"❌ Local model bulunamadı: {model_path}")
40
+ return None, None
41
+
42
+ try:
43
+ # Tokenizer yükle
44
+ tokenizer = AutoTokenizer.from_pretrained(
45
+ model_path,
46
+ trust_remote_code=True
47
+ )
48
+
49
+ # Model yükleme ayarları
50
+ load_kwargs = {
51
+ "torch_dtype": torch.float16,
52
+ "trust_remote_code": True
53
+ }
54
+
55
+ # GPU kontrolü
56
+ if torch.cuda.is_available():
57
+ print("🎮 GPU tespit edildi, GPU kullanılacak")
58
+ load_kwargs["device_map"] = "auto"
59
+ else:
60
+ print("💻 CPU kullanılacak")
61
+ load_kwargs["device_map"] = None
62
+
63
+ # Model yükle
64
+ model = AutoModelForCausalLM.from_pretrained(
65
+ model_path,
66
+ **load_kwargs
67
+ )
68
+
69
+ print(f"✅ {model_name} başarıyla yüklendi!")
70
+ return model, tokenizer
71
+
72
+ except Exception as e:
73
+ print(f"❌ Model yükleme hatası: {e}")
74
+ return None, None
75
+
76
+ def chat_with_nova(message, model, tokenizer, max_tokens=256):
77
+ """Nova AI ile sohbet et"""
78
+ try:
79
+ # Konuşma formatı
80
+ conversation = f"Kullanıcı: {message}\nNova AI:"
81
+
82
+ # Tokenize
83
+ inputs = tokenizer(
84
+ conversation,
85
+ return_tensors="pt",
86
+ truncation=True,
87
+ max_length=1024
88
+ )
89
+
90
+ # GPU'ya taşı (eğer varsa)
91
+ if model.device.type != 'cpu':
92
+ inputs = inputs.to(model.device)
93
+
94
+ # Yanıt üret
95
+ with torch.no_grad():
96
+ outputs = model.generate(
97
+ **inputs,
98
+ max_new_tokens=max_tokens,
99
+ temperature=0.7,
100
+ top_p=0.9,
101
+ do_sample=True,
102
+ pad_token_id=tokenizer.eos_token_id,
103
+ eos_token_id=tokenizer.eos_token_id
104
+ )
105
+
106
+ # Decode et
107
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
108
+ nova_response = response[len(conversation):].strip()
109
+
110
+ return nova_response if nova_response else "Üzgünüm, yanıt üretemedi."
111
+
112
+ except Exception as e:
113
+ return f"❌ Hata: {e}"
114
+
115
+ def main():
116
+ """Ana uygulama"""
117
+ print("=" * 50)
118
+ print("🚀 NOVA AI - BASİT KONSOL UYGULAMASI")
119
+ print("🌟 Teknova Özgün Yapay Zeka Modeli")
120
+ print("=" * 50)
121
+
122
+ # Model seçimi
123
+ model_path, model_name = select_model()
124
+
125
+ # Modeli yükle
126
+ model, tokenizer = load_model(model_path, model_name)
127
+
128
+ if model is None or tokenizer is None:
129
+ print("❌ Program sonlandırılıyor.")
130
+ return
131
+
132
+ print(f"\n🎉 {model_name} ile sohbet hazır!")
133
+ print("💬 Komutlar:")
134
+ print(" - Mesaj yazarak sohbet edin")
135
+ print(" - 'exit' yazarak çıkın")
136
+ print(" - 'model' yazarak model değiştirin")
137
+ print("-" * 50)
138
+
139
+ while True:
140
+ try:
141
+ user_input = input("\n👤 Siz: ").strip()
142
+
143
+ # Çıkış komutları
144
+ if user_input.lower() in ['exit', 'çıkış', 'quit', 'q']:
145
+ print("\n🚀 Nova AI - Görüşmek üzere!")
146
+ break
147
+
148
+ # Model değiştirme
149
+ if user_input.lower() == 'model':
150
+ print("\n🔄 Model değiştiriliyor...")
151
+ model_path, model_name = select_model()
152
+ model, tokenizer = load_model(model_path, model_name)
153
+ if model is None:
154
+ continue
155
+ print(f"✅ {model_name} aktif!")
156
+ continue
157
+
158
+ # Boş mesaj kontrolü
159
+ if not user_input:
160
+ print("🤖 Nova AI: Lütfen bir mesaj yazın.")
161
+ continue
162
+
163
+ # Nova AI'dan yanıt al
164
+ print("🤖 Nova AI düşünüyor...")
165
+ response = chat_with_nova(user_input, model, tokenizer)
166
+ print(f"🤖 Nova AI: {response}")
167
+
168
+ except KeyboardInterrupt:
169
+ print("\n\n🚀 Nova AI - Program sonlandırıldı!")
170
+ break
171
+ except Exception as e:
172
+ print(f"❌ Beklenmeyen hata: {e}")
173
+
174
+ if __name__ == "__main__":
175
  main()
baslat_api.bat CHANGED
@@ -1,34 +1,34 @@
1
- @echo off
2
- chcp 65001 >nul
3
- title Teknova Nova AI - Web Arayüzü
4
- echo.
5
- echo 🚀 ================================
6
- echo TEKNOVA NOVA AI WEB ARAYÜZÜ
7
- echo Özgün yapay zeka teknolojisi
8
- echo ================================
9
- echo.
10
- echo 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir!
11
- echo 💡 Hugging Face token gerektirmez - Kendi modeliniz!
12
- echo ⚡ Web arayüzü başlatılıyor...
13
- echo.
14
- echo 📂 Model konumu kontrol ediliyor:
15
- if exist "nova-ai-model" (
16
- echo ✅ Nova AI model dosyaları bulundu
17
- ) else (
18
- echo ⚠️ Nova AI model dosyaları bulunamadı
19
- echo 📝 Lütfen nova-ai-model klasörünüze model dosyalarınızı yükleyin
20
- echo.
21
- )
22
- echo.
23
- echo 🌐 Web arayüzü başlatılıyor...
24
- echo 💻 Tarayıcınızda açılacak adres: http://localhost:8000
25
- echo.
26
- echo ⏹️ Durdurmak için Ctrl+C tuşlayın
27
- echo.
28
-
29
- python app.py
30
-
31
- echo.
32
- echo 🚀 Teknova Nova AI - Web arayüzü kapatıldı
33
- echo 💡 Tekrar çalıştırmak için bu dosyayı çalıştırın
34
- pause
 
1
+ @echo off
2
+ chcp 65001 >nul
3
+ title Teknova Nova AI - Web Arayüzü
4
+ echo.
5
+ echo 🚀 ================================
6
+ echo TEKNOVA NOVA AI WEB ARAYÜZÜ
7
+ echo Özgün yapay zeka teknolojisi
8
+ echo ================================
9
+ echo.
10
+ echo 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir!
11
+ echo 💡 Hugging Face token gerektirmez - Kendi modeliniz!
12
+ echo ⚡ Web arayüzü başlatılıyor...
13
+ echo.
14
+ echo 📂 Model konumu kontrol ediliyor:
15
+ if exist "nova-ai-model" (
16
+ echo ✅ Nova AI model dosyaları bulundu
17
+ ) else (
18
+ echo ⚠️ Nova AI model dosyaları bulunamadı
19
+ echo 📝 Lütfen nova-ai-model klasörünüze model dosyalarınızı yükleyin
20
+ echo.
21
+ )
22
+ echo.
23
+ echo 🌐 Web arayüzü başlatılıyor...
24
+ echo 💻 Tarayıcınızda açılacak adres: http://localhost:8000
25
+ echo.
26
+ echo ⏹️ Durdurmak için Ctrl+C tuşlayın
27
+ echo.
28
+
29
+ python app.py
30
+
31
+ echo.
32
+ echo 🚀 Teknova Nova AI - Web arayüzü kapatıldı
33
+ echo 💡 Tekrar çalıştırmak için bu dosyayı çalıştırın
34
+ pause
baslat_basit_konsol.bat CHANGED
@@ -1,50 +1,50 @@
1
- @echo off
2
- chcp 65001 >nul
3
-
4
- :: Teknova Nova AI - Basit Konsol Uygulaması Başlatma Betiği
5
-
6
- title Teknova Nova AI - Basit Konsol
7
-
8
- echo.
9
- echo 🚀 =======================================
10
- echo TEKNOVA NOVA AI BASİT KONSOL
11
- echo Özgün yapay zeka teknolojisi
12
- echo =======================================
13
- echo.
14
- echo 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir!
15
- echo 💡 Hugging Face token gerektirmez - Kendi modeliniz!
16
- echo ⚡ Basit konsol uygulaması başlatılıyor...
17
- echo.
18
-
19
- :: Model klasörleri kontrolü
20
- echo 📂 Model konumu kontrol ediliyor:
21
- if exist "nova-ai-model" (
22
- echo ✅ Büyük model dosyaları bulundu (nova-ai-model)
23
- ) else (
24
- echo ⚠️ Büyük model dosyaları bulunamadı (nova-ai-model)
25
- )
26
-
27
- echo 🌐 Hub modeli de desteklenmektedir (veteroner/NovaAI)
28
-
29
- echo.
30
- echo 💬 Basit konsol uygulaması başlatılıyor...
31
- echo 🎯 Model seçimi yapabilir, sohbet edebilirsiniz
32
- echo ⏹️ Çıkmak için 'exit' yazın
33
-
34
- echo.
35
-
36
- :: ================== Sanal ortam kontrolü ==================
37
- if exist "venv311\Scripts\python.exe" (
38
- echo 🐍 Sanal ortam bulundu: venv311
39
- set "PY_EXE=venv311\Scripts\python.exe"
40
- ) else (
41
- echo ⚠️ venv311 bulunamadı, sistem Python kullanılacak
42
- set "PY_EXE=python"
43
- )
44
-
45
- %PY_EXE% basit_konsol.py
46
-
47
- echo.
48
- echo 🚀 Teknova Nova AI - Basit konsol uygulaması kapatıldı
49
- echo 💡 Tekrar çalıştırmak için bu dosyayı çalıştırın
50
  pause
 
1
+ @echo off
2
+ chcp 65001 >nul
3
+
4
+ :: Teknova Nova AI - Basit Konsol Uygulaması Başlatma Betiği
5
+
6
+ title Teknova Nova AI - Basit Konsol
7
+
8
+ echo.
9
+ echo 🚀 =======================================
10
+ echo TEKNOVA NOVA AI BASİT KONSOL
11
+ echo Özgün yapay zeka teknolojisi
12
+ echo =======================================
13
+ echo.
14
+ echo 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir!
15
+ echo 💡 Hugging Face token gerektirmez - Kendi modeliniz!
16
+ echo ⚡ Basit konsol uygulaması başlatılıyor...
17
+ echo.
18
+
19
+ :: Model klasörleri kontrolü
20
+ echo 📂 Model konumu kontrol ediliyor:
21
+ if exist "nova-ai-model" (
22
+ echo ✅ Büyük model dosyaları bulundu (nova-ai-model)
23
+ ) else (
24
+ echo ⚠️ Büyük model dosyaları bulunamadı (nova-ai-model)
25
+ )
26
+
27
+ echo 🌐 Hub modeli de desteklenmektedir (veteroner/NovaAI)
28
+
29
+ echo.
30
+ echo 💬 Basit konsol uygulaması başlatılıyor...
31
+ echo 🎯 Model seçimi yapabilir, sohbet edebilirsiniz
32
+ echo ⏹️ Çıkmak için 'exit' yazın
33
+
34
+ echo.
35
+
36
+ :: ================== Sanal ortam kontrolü ==================
37
+ if exist "venv311\Scripts\python.exe" (
38
+ echo 🐍 Sanal ortam bulundu: venv311
39
+ set "PY_EXE=venv311\Scripts\python.exe"
40
+ ) else (
41
+ echo ⚠️ venv311 bulunamadı, sistem Python kullanılacak
42
+ set "PY_EXE=python"
43
+ )
44
+
45
+ %PY_EXE% basit_konsol.py
46
+
47
+ echo.
48
+ echo 🚀 Teknova Nova AI - Basit konsol uygulaması kapatıldı
49
+ echo 💡 Tekrar çalıştırmak için bu dosyayı çalıştırın
50
  pause
baslat_gradio.bat CHANGED
@@ -1,51 +1,51 @@
1
- @echo off
2
- chcp 65001 >nul
3
-
4
- :: Teknova Nova AI - Gradio Arayüzü Başlatma Betiği
5
-
6
- title Teknova Nova AI - Gradio Arayüzü
7
-
8
- echo.
9
- echo 🚀 =======================================
10
- echo TEKNOVA NOVA AI GRADIO ARAYÜZÜ
11
- echo Özgün yapay zeka teknolojisi
12
- echo =======================================
13
- echo.
14
- echo 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir!
15
- echo 💡 Hugging Face token gerektirmez - Kendi modeliniz!
16
- echo ⚡ Gradio arayüzü başlatılıyor...
17
- echo.
18
-
19
- :: Model klasörleri kontrolü
20
- echo 📂 Model konumu kontrol ediliyor:
21
- if exist "nova-ai-model" (
22
- echo ✅ Büyük model dosyaları bulundu (nova-ai-model)
23
- ) else (
24
- echo ⚠️ Büyük model dosyaları bulunamadı (nova-ai-model)
25
- )
26
-
27
- echo 🌐 Hub modeli de desteklenmektedir (veteroner/NovaAI)
28
-
29
- echo.
30
- echo 🌐 Gradio arayüzü başlatılıyor...
31
- echo 💻 Tarayıcınızda açılacak adres: http://localhost:7860
32
-
33
- echo ⏹️ Durdurmak için Ctrl+C tuşlayın
34
-
35
- echo.
36
-
37
- :: ================== Sanal ortam kontrolü ==================
38
- if exist "venv311\Scripts\python.exe" (
39
- echo 🐍 Sanal ortam bulundu: venv311
40
- set "PY_EXE=venv311\Scripts\python.exe"
41
- ) else (
42
- echo ⚠️ venv311 bulunamadı, sistem Python kullanılacak
43
- set "PY_EXE=python"
44
- )
45
-
46
- %PY_EXE% gradio_app.py
47
-
48
- echo.
49
- echo 🚀 Teknova Nova AI - Gradio arayüzü kapatıldı
50
- echo 💡 Tekrar çalıştırmak için bu dosyayı çalıştırın
51
  pause
 
1
+ @echo off
2
+ chcp 65001 >nul
3
+
4
+ :: Teknova Nova AI - Gradio Arayüzü Başlatma Betiği
5
+
6
+ title Teknova Nova AI - Gradio Arayüzü
7
+
8
+ echo.
9
+ echo 🚀 =======================================
10
+ echo TEKNOVA NOVA AI GRADIO ARAYÜZÜ
11
+ echo Özgün yapay zeka teknolojisi
12
+ echo =======================================
13
+ echo.
14
+ echo 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir!
15
+ echo 💡 Hugging Face token gerektirmez - Kendi modeliniz!
16
+ echo ⚡ Gradio arayüzü başlatılıyor...
17
+ echo.
18
+
19
+ :: Model klasörleri kontrolü
20
+ echo 📂 Model konumu kontrol ediliyor:
21
+ if exist "nova-ai-model" (
22
+ echo ✅ Büyük model dosyaları bulundu (nova-ai-model)
23
+ ) else (
24
+ echo ⚠️ Büyük model dosyaları bulunamadı (nova-ai-model)
25
+ )
26
+
27
+ echo 🌐 Hub modeli de desteklenmektedir (veteroner/NovaAI)
28
+
29
+ echo.
30
+ echo 🌐 Gradio arayüzü başlatılıyor...
31
+ echo 💻 Tarayıcınızda açılacak adres: http://localhost:7860
32
+
33
+ echo ⏹️ Durdurmak için Ctrl+C tuşlayın
34
+
35
+ echo.
36
+
37
+ :: ================== Sanal ortam kontrolü ==================
38
+ if exist "venv311\Scripts\python.exe" (
39
+ echo 🐍 Sanal ortam bulundu: venv311
40
+ set "PY_EXE=venv311\Scripts\python.exe"
41
+ ) else (
42
+ echo ⚠️ venv311 bulunamadı, sistem Python kullanılacak
43
+ set "PY_EXE=python"
44
+ )
45
+
46
+ %PY_EXE% gradio_app.py
47
+
48
+ echo.
49
+ echo 🚀 Teknova Nova AI - Gradio arayüzü kapatıldı
50
+ echo 💡 Tekrar çalıştırmak için bu dosyayı çalıştırın
51
  pause
baslat_konsol.bat CHANGED
@@ -1,33 +1,33 @@
1
- @echo off
2
- chcp 65001 >nul
3
- title Teknova Nova AI - Konsol Uygulaması
4
- echo.
5
- echo 🚀 ===================================
6
- echo TEKNOVA NOVA AI KONSOL UYGULAMASI
7
- echo Özgün yapay zeka teknolojisi
8
- echo ===================================
9
- echo.
10
- echo 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir!
11
- echo 💡 Hugging Face token gerektirmez - Kendi modeliniz!
12
- echo 🖥️ Konsol uygulaması başlatılıyor...
13
- echo.
14
- echo 📂 Model konumu kontrol ediliyor:
15
- if exist "nova-ai-model" (
16
- echo ✅ Nova AI model dosyaları bulundu
17
- ) else (
18
- echo ⚠️ Nova AI model dosyaları bulunamadı
19
- echo 📝 Lütfen nova-ai-model klasörünüze model dosyalarınızı yükleyin
20
- echo.
21
- )
22
- echo.
23
- echo 💬 Nova AI ile sohbet başlatılıyor...
24
- echo 🔤 Mesajınızı yazıp Enter tuşuna basın
25
- echo ⏹️ Çıkmak için 'exit' yazın
26
- echo.
27
-
28
- python main.py
29
-
30
- echo.
31
- echo 🚀 Teknova Nova AI - Konsol uygulaması kapatıldı
32
- echo 💡 Tekrar çalıştırmak için bu dosyayı çalıştırın
33
  pause
 
1
+ @echo off
2
+ chcp 65001 >nul
3
+ title Teknova Nova AI - Konsol Uygulaması
4
+ echo.
5
+ echo 🚀 ===================================
6
+ echo TEKNOVA NOVA AI KONSOL UYGULAMASI
7
+ echo Özgün yapay zeka teknolojisi
8
+ echo ===================================
9
+ echo.
10
+ echo 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir!
11
+ echo 💡 Hugging Face token gerektirmez - Kendi modeliniz!
12
+ echo 🖥️ Konsol uygulaması başlatılıyor...
13
+ echo.
14
+ echo 📂 Model konumu kontrol ediliyor:
15
+ if exist "nova-ai-model" (
16
+ echo ✅ Nova AI model dosyaları bulundu
17
+ ) else (
18
+ echo ⚠️ Nova AI model dosyaları bulunamadı
19
+ echo 📝 Lütfen nova-ai-model klasörünüze model dosyalarınızı yükleyin
20
+ echo.
21
+ )
22
+ echo.
23
+ echo 💬 Nova AI ile sohbet başlatılıyor...
24
+ echo 🔤 Mesajınızı yazıp Enter tuşuna basın
25
+ echo ⏹️ Çıkmak için 'exit' yazın
26
+ echo.
27
+
28
+ python main.py
29
+
30
+ echo.
31
+ echo 🚀 Teknova Nova AI - Konsol uygulaması kapatıldı
32
+ echo 💡 Tekrar çalıştırmak için bu dosyayı çalıştırın
33
  pause
gradio_app.py CHANGED
@@ -1,219 +1,219 @@
1
- import gradio as gr
2
- import torch
3
- from transformers import AutoModelForCausalLM, AutoTokenizer
4
- import os
5
-
6
- # Spaces import - sadece Hugging Face Spaces'te mevcut
7
- try:
8
- import spaces
9
- HAS_SPACES = True
10
- except ImportError:
11
- HAS_SPACES = False
12
- # Spaces decorator'ı için dummy fonksiyon
13
- def spaces_gpu(func):
14
- return func
15
- spaces = type('spaces', (), {'GPU': spaces_gpu})()
16
-
17
- # ================== Nova AI Modeli ==================
18
- # Sabit model: veteroner/NovaAI Hub'dan yüklenir
19
-
20
- # Global değişkenler
21
- model = None
22
- tokenizer = None
23
-
24
- @spaces.GPU
25
- def load_model():
26
- """Teknova Nova AI modelini yükle - ZeroGPU destekli."""
27
- global model, tokenizer
28
-
29
- model_path = "nova-ai-model"
30
- print(f"🚀 Nova AI modeli yükleniyor... ({model_path})")
31
-
32
- try:
33
- # Tokenizer yükle
34
- tokenizer = AutoTokenizer.from_pretrained(
35
- model_path,
36
- trust_remote_code=True,
37
- use_fast=True
38
- )
39
-
40
- # Pad token ayarla
41
- if tokenizer.pad_token is None:
42
- tokenizer.pad_token = tokenizer.eos_token
43
-
44
- # Model yükle - ZeroGPU optimizasyonu
45
- model = AutoModelForCausalLM.from_pretrained(
46
- model_path,
47
- torch_dtype=torch.float16,
48
- trust_remote_code=True,
49
- device_map="auto",
50
- low_cpu_mem_usage=True
51
- )
52
-
53
- success_msg = f"✅ Teknova Nova AI yüklendi! (Local + ZeroGPU)"
54
- print(success_msg)
55
- return success_msg
56
-
57
- except Exception as e:
58
- error_msg = f"❌ Nova AI model yükleme hatası: {str(e)}"
59
- print(error_msg)
60
- return error_msg
61
-
62
- @spaces.GPU
63
- def chat_response(message, history):
64
- """Teknova Nova AI ile sohbet yanıtı üret - ZeroGPU destekli"""
65
- global model, tokenizer
66
-
67
- if model is None or tokenizer is None:
68
- return "❌ Teknova Nova AI henüz yüklenmedi. Lütfen model yüklenmesini bekleyin..."
69
-
70
- if not message.strip():
71
- return "❓ Nova AI'ya mesajınızı yazın."
72
-
73
- try:
74
- # Sohbet geçmişini Nova AI formatında hazırla
75
- conversation = ""
76
- for user_msg, bot_msg in history:
77
- conversation += f"Kullanıcı: {user_msg}\nNova AI: {bot_msg}\n"
78
-
79
- # Yeni mesajı ekle
80
- conversation += f"Kullanıcı: {message}\nNova AI:"
81
-
82
- # Nova AI Tokenizer ile işle
83
- inputs = tokenizer(
84
- conversation,
85
- return_tensors="pt",
86
- truncation=True,
87
- max_length=2048,
88
- padding=True
89
- )
90
-
91
- # GPU'ya taşı
92
- if torch.cuda.is_available():
93
- inputs = {k: v.to(model.device) for k, v in inputs.items()}
94
-
95
- # Nova AI yanıt üret - ZeroGPU optimizasyonu
96
- with torch.no_grad():
97
- outputs = model.generate(
98
- **inputs,
99
- max_new_tokens=512,
100
- temperature=0.7,
101
- top_p=0.9,
102
- do_sample=True,
103
- pad_token_id=tokenizer.pad_token_id,
104
- eos_token_id=tokenizer.eos_token_id,
105
- repetition_penalty=1.1
106
- )
107
-
108
- # Nova AI yanıtını decode et
109
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
110
-
111
- # Sadece Nova AI'ın yeni yanıtını al
112
- new_response = response[len(conversation):].strip()
113
-
114
- return new_response
115
-
116
- except Exception as e:
117
- return f"❌ Nova AI yanıt üretirken hata: {str(e)}"
118
-
119
- # Başlangıçta modeli yükle
120
- initial_status = load_model()
121
-
122
- # Gradio arayüzü oluştur
123
- with gr.Blocks(
124
- theme=gr.themes.Soft(),
125
- title="Nova AI Chat - Teknova",
126
- css="""
127
- .gradio-container {
128
- max-width: 800px;
129
- margin: 0 auto;
130
- }
131
- .chat-message {
132
- border-radius: 10px;
133
- padding: 10px;
134
- margin: 5px 0;
135
- }
136
- """
137
- ) as demo:
138
-
139
- gr.HTML("""
140
- <div style="text-align: center; padding: 20px;">
141
- <h1 style="background: linear-gradient(135deg, #ff6b6b, #4ecdc4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: 2.5rem; font-weight: bold;">
142
- 🚀 Teknova Nova AI
143
- </h1>
144
- <p style="font-size: 1.2rem; color: #666; margin: 10px 0;">
145
- <strong>Teknova</strong> tarafından geliştirilen <strong>özgün</strong> yapay zeka modeli
146
- </p>
147
- <div style="background: linear-gradient(135deg, #ff6b6b, #4ecdc4); color: white; padding: 8px 16px; border-radius: 20px; display: inline-block; font-size: 0.9rem;">
148
- ⚡ Özgün Nova AI Teknolojisi • �� Teknova Innovation • 🚀 ZeroGPU Destekli
149
- </div>
150
- <p style="font-size: 0.9rem; color: #888; margin-top: 10px;">
151
- 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir - Token gerektirmez
152
- </p>
153
- </div>
154
- """)
155
-
156
- # ================== Model Durumu ==================
157
- with gr.Row():
158
- statusbox = gr.Textbox(
159
- value=initial_status,
160
- label="Model Durumu",
161
- interactive=False
162
- )
163
-
164
- chatbot = gr.Chatbot(
165
- height=500,
166
- show_label=False,
167
- show_share_button=False,
168
- show_copy_button=True,
169
- avatar_images=[
170
- None, # User avatar
171
- "🤖" # Bot avatar
172
- ],
173
- type="messages"
174
- )
175
-
176
- with gr.Row():
177
- msg = gr.Textbox(
178
- placeholder="Nova AI'ya mesajınızı yazın...",
179
- show_label=False,
180
- scale=4
181
- )
182
- submit = gr.Button("🚀 Gönder", scale=1, variant="primary")
183
-
184
- with gr.Row():
185
- clear = gr.Button("🗑️ Temizle", scale=1)
186
-
187
- gr.HTML("""
188
- <div style="text-align: center; padding: 10px; color: #666;">
189
- <small>💡 Teknova Nova AI ilk yüklenirken biraz bekleyebilir. Özgün AI teknolojisi ile güçlendirilmiştir.</small>
190
- <br>
191
- <small style="color: #ff6b6b;">🚀 <strong>Teknova Nova AI</strong> - Tamamen özgün model teknolojisi</small>
192
- <br>
193
- <small style="color: #4ecdc4;">🌟 Hugging Face ZeroGPU ile hızlandırılmış!</small>
194
- </div>
195
- """)
196
-
197
- # Event handlers
198
- def user_message(message, history):
199
- return "", history + [[message, None]]
200
-
201
- def bot_message(history):
202
- user_message = history[-1][0]
203
- bot_response = chat_response(user_message, history[:-1])
204
- history[-1][1] = bot_response
205
- return history
206
-
207
- msg.submit(user_message, [msg, chatbot], [msg, chatbot], queue=False).then(
208
- bot_message, chatbot, chatbot
209
- )
210
- submit.click(user_message, [msg, chatbot], [msg, chatbot], queue=False).then(
211
- bot_message, chatbot, chatbot
212
- )
213
- clear.click(lambda: None, None, chatbot, queue=False)
214
-
215
- if __name__ == "__main__":
216
- demo.launch(
217
- server_name="0.0.0.0",
218
- share=True # port otomatik bulunur, 0.0.0.0 + ilk boş port
219
  )
 
1
+ import gradio as gr
2
+ import torch
3
+ from transformers import AutoModelForCausalLM, AutoTokenizer
4
+ import os
5
+
6
+ # Spaces import - sadece Hugging Face Spaces'te mevcut
7
+ try:
8
+ import spaces
9
+ HAS_SPACES = True
10
+ except ImportError:
11
+ HAS_SPACES = False
12
+ # Spaces decorator'ı için dummy fonksiyon
13
+ def spaces_gpu(func):
14
+ return func
15
+ spaces = type('spaces', (), {'GPU': spaces_gpu})()
16
+
17
+ # ================== Nova AI Modeli ==================
18
+ # Sabit model: veteroner/NovaAI Hub'dan yüklenir
19
+
20
+ # Global değişkenler
21
+ model = None
22
+ tokenizer = None
23
+
24
+ @spaces.GPU
25
+ def load_model():
26
+ """Teknova Nova AI modelini yükle - ZeroGPU destekli."""
27
+ global model, tokenizer
28
+
29
+ model_path = "nova-ai-model"
30
+ print(f"🚀 Nova AI modeli yükleniyor... ({model_path})")
31
+
32
+ try:
33
+ # Tokenizer yükle
34
+ tokenizer = AutoTokenizer.from_pretrained(
35
+ model_path,
36
+ trust_remote_code=True,
37
+ use_fast=True
38
+ )
39
+
40
+ # Pad token ayarla
41
+ if tokenizer.pad_token is None:
42
+ tokenizer.pad_token = tokenizer.eos_token
43
+
44
+ # Model yükle - ZeroGPU optimizasyonu
45
+ model = AutoModelForCausalLM.from_pretrained(
46
+ model_path,
47
+ torch_dtype=torch.float16,
48
+ trust_remote_code=True,
49
+ device_map="auto",
50
+ low_cpu_mem_usage=True
51
+ )
52
+
53
+ success_msg = f"✅ Teknova Nova AI yüklendi! (Local + ZeroGPU)"
54
+ print(success_msg)
55
+ return success_msg
56
+
57
+ except Exception as e:
58
+ error_msg = f"❌ Nova AI model yükleme hatası: {str(e)}"
59
+ print(error_msg)
60
+ return error_msg
61
+
62
+ @spaces.GPU
63
+ def chat_response(message, history):
64
+ """Teknova Nova AI ile sohbet yanıtı üret - ZeroGPU destekli"""
65
+ global model, tokenizer
66
+
67
+ if model is None or tokenizer is None:
68
+ return "❌ Teknova Nova AI henüz yüklenmedi. Lütfen model yüklenmesini bekleyin..."
69
+
70
+ if not message.strip():
71
+ return "❓ Nova AI'ya mesajınızı yazın."
72
+
73
+ try:
74
+ # Sohbet geçmişini Nova AI formatında hazırla
75
+ conversation = ""
76
+ for user_msg, bot_msg in history:
77
+ conversation += f"Kullanıcı: {user_msg}\nNova AI: {bot_msg}\n"
78
+
79
+ # Yeni mesajı ekle
80
+ conversation += f"Kullanıcı: {message}\nNova AI:"
81
+
82
+ # Nova AI Tokenizer ile işle
83
+ inputs = tokenizer(
84
+ conversation,
85
+ return_tensors="pt",
86
+ truncation=True,
87
+ max_length=2048,
88
+ padding=True
89
+ )
90
+
91
+ # GPU'ya taşı
92
+ if torch.cuda.is_available():
93
+ inputs = {k: v.to(model.device) for k, v in inputs.items()}
94
+
95
+ # Nova AI yanıt üret - ZeroGPU optimizasyonu
96
+ with torch.no_grad():
97
+ outputs = model.generate(
98
+ **inputs,
99
+ max_new_tokens=512,
100
+ temperature=0.7,
101
+ top_p=0.9,
102
+ do_sample=True,
103
+ pad_token_id=tokenizer.pad_token_id,
104
+ eos_token_id=tokenizer.eos_token_id,
105
+ repetition_penalty=1.1
106
+ )
107
+
108
+ # Nova AI yanıtını decode et
109
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
110
+
111
+ # Sadece Nova AI'ın yeni yanıtını al
112
+ new_response = response[len(conversation):].strip()
113
+
114
+ return new_response
115
+
116
+ except Exception as e:
117
+ return f"❌ Nova AI yanıt üretirken hata: {str(e)}"
118
+
119
+ # Başlangıçta modeli yükle
120
+ initial_status = load_model()
121
+
122
+ # Gradio arayüzü oluştur
123
+ with gr.Blocks(
124
+ theme=gr.themes.Soft(),
125
+ title="Nova AI Chat - Teknova",
126
+ css="""
127
+ .gradio-container {
128
+ max-width: 800px;
129
+ margin: 0 auto;
130
+ }
131
+ .chat-message {
132
+ border-radius: 10px;
133
+ padding: 10px;
134
+ margin: 5px 0;
135
+ }
136
+ """
137
+ ) as demo:
138
+
139
+ gr.HTML("""
140
+ <div style="text-align: center; padding: 20px;">
141
+ <h1 style="background: linear-gradient(135deg, #ff6b6b, #4ecdc4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: 2.5rem; font-weight: bold;">
142
+ 🚀 Teknova Nova AI
143
+ </h1>
144
+ <p style="font-size: 1.2rem; color: #666; margin: 10px 0;">
145
+ <strong>Teknova</strong> tarafından geliştirilen <strong>özgün</strong> yapay zeka modeli
146
+ </p>
147
+ <div style="background: linear-gradient(135deg, #ff6b6b, #4ecdc4); color: white; padding: 8px 16px; border-radius: 20px; display: inline-block; font-size: 0.9rem;">
148
+ ⚡ Özgün Nova AI Teknolojisi • �� Teknova Innovation • 🚀 ZeroGPU Destekli
149
+ </div>
150
+ <p style="font-size: 0.9rem; color: #888; margin-top: 10px;">
151
+ 🌟 Bu tamamen özgün bir Teknova Nova AI modelidir - Token gerektirmez
152
+ </p>
153
+ </div>
154
+ """)
155
+
156
+ # ================== Model Durumu ==================
157
+ with gr.Row():
158
+ statusbox = gr.Textbox(
159
+ value=initial_status,
160
+ label="Model Durumu",
161
+ interactive=False
162
+ )
163
+
164
+ chatbot = gr.Chatbot(
165
+ height=500,
166
+ show_label=False,
167
+ show_share_button=False,
168
+ show_copy_button=True,
169
+ avatar_images=[
170
+ None, # User avatar
171
+ "🤖" # Bot avatar
172
+ ],
173
+ type="messages"
174
+ )
175
+
176
+ with gr.Row():
177
+ msg = gr.Textbox(
178
+ placeholder="Nova AI'ya mesajınızı yazın...",
179
+ show_label=False,
180
+ scale=4
181
+ )
182
+ submit = gr.Button("🚀 Gönder", scale=1, variant="primary")
183
+
184
+ with gr.Row():
185
+ clear = gr.Button("🗑️ Temizle", scale=1)
186
+
187
+ gr.HTML("""
188
+ <div style="text-align: center; padding: 10px; color: #666;">
189
+ <small>💡 Teknova Nova AI ilk yüklenirken biraz bekleyebilir. Özgün AI teknolojisi ile güçlendirilmiştir.</small>
190
+ <br>
191
+ <small style="color: #ff6b6b;">🚀 <strong>Teknova Nova AI</strong> - Tamamen özgün model teknolojisi</small>
192
+ <br>
193
+ <small style="color: #4ecdc4;">🌟 Hugging Face ZeroGPU ile hızlandırılmış!</small>
194
+ </div>
195
+ """)
196
+
197
+ # Event handlers
198
+ def user_message(message, history):
199
+ return "", history + [[message, None]]
200
+
201
+ def bot_message(history):
202
+ user_message = history[-1][0]
203
+ bot_response = chat_response(user_message, history[:-1])
204
+ history[-1][1] = bot_response
205
+ return history
206
+
207
+ msg.submit(user_message, [msg, chatbot], [msg, chatbot], queue=False).then(
208
+ bot_message, chatbot, chatbot
209
+ )
210
+ submit.click(user_message, [msg, chatbot], [msg, chatbot], queue=False).then(
211
+ bot_message, chatbot, chatbot
212
+ )
213
+ clear.click(lambda: None, None, chatbot, queue=False)
214
+
215
+ if __name__ == "__main__":
216
+ demo.launch(
217
+ server_name="0.0.0.0",
218
+ share=True # port otomatik bulunur, 0.0.0.0 + ilk boş port
219
  )
hf_space_app.py CHANGED
@@ -1,195 +1,195 @@
1
- """
2
- 🚀 Nova AI - Hugging Face Spaces ZeroGPU
3
- Teknova tarafından geliştirilen özgün yapay zeka modeli
4
- ZeroGPU ile hızlandırılmış
5
- """
6
-
7
- import gradio as gr
8
- import torch
9
- from transformers import AutoModelForCausalLM, AutoTokenizer
10
- import os
11
-
12
- # Spaces import - sadece Hugging Face Spaces'te mevcut
13
- try:
14
- import spaces
15
- HAS_SPACES = True
16
- except ImportError:
17
- HAS_SPACES = False
18
- # Spaces decorator'ı için dummy fonksiyon
19
- def spaces_gpu(func):
20
- return func
21
- spaces = type('spaces', (), {'GPU': spaces_gpu})()
22
-
23
- # Model seçenekleri - Local model kullan
24
- MODEL_PATH = "nova-ai-model" # Local model path
25
-
26
- # Global değişkenler
27
- model = None
28
- tokenizer = None
29
-
30
- @spaces.GPU
31
- def load_model():
32
- """Nova AI modelini ZeroGPU ile yükle"""
33
- global model, tokenizer
34
-
35
- print("🚀 Nova AI modeli ZeroGPU ile yükleniyor...")
36
-
37
- try:
38
- # Tokenizer yükle
39
- tokenizer = AutoTokenizer.from_pretrained(
40
- MODEL_PATH,
41
- trust_remote_code=True,
42
- use_fast=True
43
- )
44
-
45
- # Pad token ayarla
46
- if tokenizer.pad_token is None:
47
- tokenizer.pad_token = tokenizer.eos_token
48
-
49
- # Model yükle - ZeroGPU optimizasyonu
50
- model = AutoModelForCausalLM.from_pretrained(
51
- MODEL_PATH,
52
- torch_dtype=torch.float16,
53
- device_map="auto",
54
- trust_remote_code=True,
55
- low_cpu_mem_usage=True
56
- )
57
-
58
- print("✅ Nova AI modeli ZeroGPU ile yüklendi!")
59
- return "✅ Nova AI hazır! (ZeroGPU)"
60
-
61
- except Exception as e:
62
- error_msg = f"❌ Model yükleme hatası: {str(e)}"
63
- print(error_msg)
64
- return error_msg
65
-
66
- @spaces.GPU
67
- def chat_with_nova(message, history):
68
- """Nova AI ile sohbet et - ZeroGPU destekli"""
69
- global model, tokenizer
70
-
71
- if model is None or tokenizer is None:
72
- # Model yüklenmemişse yükle
73
- load_status = load_model()
74
- if "❌" in load_status:
75
- return load_status
76
-
77
- if not message.strip():
78
- return "❓ Lütfen bir mesaj yazın."
79
-
80
- try:
81
- # Konuşma geçmişini hazırla
82
- conversation = ""
83
- for user_msg, bot_msg in history:
84
- if user_msg and bot_msg:
85
- conversation += f"Kullanıcı: {user_msg}\nNova AI: {bot_msg}\n"
86
-
87
- # Yeni mesajı ekle
88
- conversation += f"Kullanıcı: {message}\nNova AI:"
89
-
90
- # Tokenize et
91
- inputs = tokenizer(
92
- conversation,
93
- return_tensors="pt",
94
- truncation=True,
95
- max_length=1024,
96
- padding=True
97
- )
98
-
99
- # GPU'ya taşı
100
- if torch.cuda.is_available():
101
- inputs = {k: v.to(model.device) for k, v in inputs.items()}
102
-
103
- # Yanıt üret
104
- with torch.no_grad():
105
- outputs = model.generate(
106
- **inputs,
107
- max_new_tokens=256,
108
- temperature=0.7,
109
- top_p=0.9,
110
- do_sample=True,
111
- pad_token_id=tokenizer.pad_token_id,
112
- eos_token_id=tokenizer.eos_token_id,
113
- repetition_penalty=1.1
114
- )
115
-
116
- # Decode et
117
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
118
- nova_response = response[len(conversation):].strip()
119
-
120
- return nova_response if nova_response else "Üzgünüm, yanıt üretemedi."
121
-
122
- except Exception as e:
123
- return f"❌ Hata: {str(e)}"
124
-
125
- # Gradio arayüzü
126
- with gr.Blocks(
127
- theme=gr.themes.Soft(),
128
- title="Nova AI - ZeroGPU",
129
- css="""
130
- .gradio-container {
131
- max-width: 800px;
132
- margin: 0 auto;
133
- }
134
- .chat-message {
135
- padding: 10px;
136
- margin: 5px 0;
137
- border-radius: 10px;
138
- }
139
- """
140
- ) as demo:
141
-
142
- gr.HTML("""
143
- <div style="text-align: center; padding: 20px;">
144
- <h1 style="background: linear-gradient(135deg, #ff6b6b, #4ecdc4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: 2.5rem; font-weight: bold;">
145
- 🚀 Teknova Nova AI
146
- </h1>
147
- <p style="font-size: 1.2rem; color: #666; margin: 10px 0;">
148
- <strong>Teknova</strong> tarafından geliştirilen <strong>özgün</strong> yapay zeka modeli
149
- </p>
150
- <div style="background: linear-gradient(135deg, #ff6b6b, #4ecdc4); color: white; padding: 8px 16px; border-radius: 20px; display: inline-block; font-size: 0.9rem;">
151
- ⚡ Özgün Nova AI • 🧠 Teknova Innovation • 🚀 ZeroGPU Hızlı
152
- </div>
153
- <p style="font-size: 0.9rem; color: #888; margin-top: 10px;">
154
- 🌟 Hugging Face ZeroGPU ile hızlandırılmış
155
- </p>
156
- </div>
157
- """)
158
-
159
- chatbot = gr.ChatInterface(
160
- fn=chat_with_nova,
161
- title="Nova AI Chat",
162
- description="Teknova'nın özgün yapay zeka modeli ile sohbet edin",
163
- examples=[
164
- "Merhaba Nova AI, nasılsın?",
165
- "Yapay zeka nedir?",
166
- "Teknova hakkında bilgi ver",
167
- "Bana bir hikaye anlat",
168
- "Python programlama hakkında bilgi ver"
169
- ],
170
- cache_examples=False,
171
- retry_btn="🔄 Tekrar Dene",
172
- undo_btn="↩️ Geri Al",
173
- clear_btn="🗑️ Temizle",
174
- submit_btn="🚀 Gönder",
175
- textbox=gr.Textbox(
176
- placeholder="Nova AI ile sohbet etmek için mesajınızı yazın...",
177
- container=False,
178
- scale=7
179
- )
180
- )
181
-
182
- gr.HTML("""
183
- <div style="text-align: center; padding: 15px; color: #666; font-size: 0.9rem;">
184
- <p>🌟 <strong>Teknova Nova AI</strong> - Tamamen özgün Türkçe dil modeli</p>
185
- <p>🚀 ZeroGPU teknolojisi ile hızlandırılmış</p>
186
- <p style="color: #999;">⚡ Teknova Innovation ile güçlendirilmiştir</p>
187
- </div>
188
- """)
189
-
190
- if __name__ == "__main__":
191
- demo.launch(
192
- server_name="0.0.0.0",
193
- server_port=7860,
194
- share=False
195
  )
 
1
+ """
2
+ 🚀 Nova AI - Hugging Face Spaces ZeroGPU
3
+ Teknova tarafından geliştirilen özgün yapay zeka modeli
4
+ ZeroGPU ile hızlandırılmış
5
+ """
6
+
7
+ import gradio as gr
8
+ import torch
9
+ from transformers import AutoModelForCausalLM, AutoTokenizer
10
+ import os
11
+
12
+ # Spaces import - sadece Hugging Face Spaces'te mevcut
13
+ try:
14
+ import spaces
15
+ HAS_SPACES = True
16
+ except ImportError:
17
+ HAS_SPACES = False
18
+ # Spaces decorator'ı için dummy fonksiyon
19
+ def spaces_gpu(func):
20
+ return func
21
+ spaces = type('spaces', (), {'GPU': spaces_gpu})()
22
+
23
+ # Model seçenekleri - Local model kullan
24
+ MODEL_PATH = "nova-ai-model" # Local model path
25
+
26
+ # Global değişkenler
27
+ model = None
28
+ tokenizer = None
29
+
30
+ @spaces.GPU
31
+ def load_model():
32
+ """Nova AI modelini ZeroGPU ile yükle"""
33
+ global model, tokenizer
34
+
35
+ print("🚀 Nova AI modeli ZeroGPU ile yükleniyor...")
36
+
37
+ try:
38
+ # Tokenizer yükle
39
+ tokenizer = AutoTokenizer.from_pretrained(
40
+ MODEL_PATH,
41
+ trust_remote_code=True,
42
+ use_fast=True
43
+ )
44
+
45
+ # Pad token ayarla
46
+ if tokenizer.pad_token is None:
47
+ tokenizer.pad_token = tokenizer.eos_token
48
+
49
+ # Model yükle - ZeroGPU optimizasyonu
50
+ model = AutoModelForCausalLM.from_pretrained(
51
+ MODEL_PATH,
52
+ torch_dtype=torch.float16,
53
+ device_map="auto",
54
+ trust_remote_code=True,
55
+ low_cpu_mem_usage=True
56
+ )
57
+
58
+ print("✅ Nova AI modeli ZeroGPU ile yüklendi!")
59
+ return "✅ Nova AI hazır! (ZeroGPU)"
60
+
61
+ except Exception as e:
62
+ error_msg = f"❌ Model yükleme hatası: {str(e)}"
63
+ print(error_msg)
64
+ return error_msg
65
+
66
+ @spaces.GPU
67
+ def chat_with_nova(message, history):
68
+ """Nova AI ile sohbet et - ZeroGPU destekli"""
69
+ global model, tokenizer
70
+
71
+ if model is None or tokenizer is None:
72
+ # Model yüklenmemişse yükle
73
+ load_status = load_model()
74
+ if "❌" in load_status:
75
+ return load_status
76
+
77
+ if not message.strip():
78
+ return "❓ Lütfen bir mesaj yazın."
79
+
80
+ try:
81
+ # Konuşma geçmişini hazırla
82
+ conversation = ""
83
+ for user_msg, bot_msg in history:
84
+ if user_msg and bot_msg:
85
+ conversation += f"Kullanıcı: {user_msg}\nNova AI: {bot_msg}\n"
86
+
87
+ # Yeni mesajı ekle
88
+ conversation += f"Kullanıcı: {message}\nNova AI:"
89
+
90
+ # Tokenize et
91
+ inputs = tokenizer(
92
+ conversation,
93
+ return_tensors="pt",
94
+ truncation=True,
95
+ max_length=1024,
96
+ padding=True
97
+ )
98
+
99
+ # GPU'ya taşı
100
+ if torch.cuda.is_available():
101
+ inputs = {k: v.to(model.device) for k, v in inputs.items()}
102
+
103
+ # Yanıt üret
104
+ with torch.no_grad():
105
+ outputs = model.generate(
106
+ **inputs,
107
+ max_new_tokens=256,
108
+ temperature=0.7,
109
+ top_p=0.9,
110
+ do_sample=True,
111
+ pad_token_id=tokenizer.pad_token_id,
112
+ eos_token_id=tokenizer.eos_token_id,
113
+ repetition_penalty=1.1
114
+ )
115
+
116
+ # Decode et
117
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
118
+ nova_response = response[len(conversation):].strip()
119
+
120
+ return nova_response if nova_response else "Üzgünüm, yanıt üretemedi."
121
+
122
+ except Exception as e:
123
+ return f"❌ Hata: {str(e)}"
124
+
125
+ # Gradio arayüzü
126
+ with gr.Blocks(
127
+ theme=gr.themes.Soft(),
128
+ title="Nova AI - ZeroGPU",
129
+ css="""
130
+ .gradio-container {
131
+ max-width: 800px;
132
+ margin: 0 auto;
133
+ }
134
+ .chat-message {
135
+ padding: 10px;
136
+ margin: 5px 0;
137
+ border-radius: 10px;
138
+ }
139
+ """
140
+ ) as demo:
141
+
142
+ gr.HTML("""
143
+ <div style="text-align: center; padding: 20px;">
144
+ <h1 style="background: linear-gradient(135deg, #ff6b6b, #4ecdc4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: 2.5rem; font-weight: bold;">
145
+ 🚀 Teknova Nova AI
146
+ </h1>
147
+ <p style="font-size: 1.2rem; color: #666; margin: 10px 0;">
148
+ <strong>Teknova</strong> tarafından geliştirilen <strong>özgün</strong> yapay zeka modeli
149
+ </p>
150
+ <div style="background: linear-gradient(135deg, #ff6b6b, #4ecdc4); color: white; padding: 8px 16px; border-radius: 20px; display: inline-block; font-size: 0.9rem;">
151
+ ⚡ Özgün Nova AI • 🧠 Teknova Innovation • 🚀 ZeroGPU Hızlı
152
+ </div>
153
+ <p style="font-size: 0.9rem; color: #888; margin-top: 10px;">
154
+ 🌟 Hugging Face ZeroGPU ile hızlandırılmış
155
+ </p>
156
+ </div>
157
+ """)
158
+
159
+ chatbot = gr.ChatInterface(
160
+ fn=chat_with_nova,
161
+ title="Nova AI Chat",
162
+ description="Teknova'nın özgün yapay zeka modeli ile sohbet edin",
163
+ examples=[
164
+ "Merhaba Nova AI, nasılsın?",
165
+ "Yapay zeka nedir?",
166
+ "Teknova hakkında bilgi ver",
167
+ "Bana bir hikaye anlat",
168
+ "Python programlama hakkında bilgi ver"
169
+ ],
170
+ cache_examples=False,
171
+ retry_btn="🔄 Tekrar Dene",
172
+ undo_btn="↩️ Geri Al",
173
+ clear_btn="🗑️ Temizle",
174
+ submit_btn="🚀 Gönder",
175
+ textbox=gr.Textbox(
176
+ placeholder="Nova AI ile sohbet etmek için mesajınızı yazın...",
177
+ container=False,
178
+ scale=7
179
+ )
180
+ )
181
+
182
+ gr.HTML("""
183
+ <div style="text-align: center; padding: 15px; color: #666; font-size: 0.9rem;">
184
+ <p>🌟 <strong>Teknova Nova AI</strong> - Tamamen özgün Türkçe dil modeli</p>
185
+ <p>🚀 ZeroGPU teknolojisi ile hızlandırılmış</p>
186
+ <p style="color: #999;">⚡ Teknova Innovation ile güçlendirilmiştir</p>
187
+ </div>
188
+ """)
189
+
190
+ if __name__ == "__main__":
191
+ demo.launch(
192
+ server_name="0.0.0.0",
193
+ server_port=7860,
194
+ share=False
195
  )
requirements.txt CHANGED
@@ -1,10 +1,10 @@
1
- torch>=2.0.0
2
- gradio>=4.44.1
3
- transformers>=4.30.0
4
- accelerate>=0.20.0
5
- bitsandbytes>=0.41.0
6
- spaces>=0.19.0
7
- numpy>=1.24.0
8
- sentencepiece>=0.1.99
9
- protobuf>=3.20.0
10
  safetensors>=0.3.0
 
1
+ torch>=2.0.0
2
+ gradio>=4.44.1
3
+ transformers>=4.30.0
4
+ accelerate>=0.20.0
5
+ bitsandbytes>=0.41.0
6
+ spaces>=0.19.0
7
+ numpy>=1.24.0
8
+ sentencepiece>=0.1.99
9
+ protobuf>=3.20.0
10
  safetensors>=0.3.0