尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
🩺 AI Doktor Asistanı / AI Doctor Assistant 🟢 Canlı uygulama / Live app · 👩💻 Portfolyo / Portfolio Proje Hakkında Kullanıcının adını, yaşını ve sağlık şikayetini alarak kişiselleştirilmiş Türkçe sağlık bilgisi sunan, hafızalı bir AI doktor asistanı. OpenRouter üzerinden çalışan Google Gemini modeli, LangChain ile yönetilen konuşma hafızası ve FastAPI tabanlı bir servis ile geliştirilmiştir. ⚠️ Bu uygulama tıbbi teşhis koymaz. Sağlık sorunlarınız için mutlaka bir doktora danışınız.檢視完整 README ↗
🟢 Canlı uygulama / Live app · 👩💻 Portfolyo / Portfolio
Kullanıcının adını, yaşını ve sağlık şikayetini alarak kişiselleştirilmiş Türkçe sağlık bilgisi sunan, hafızalı bir AI doktor asistanı. OpenRouter üzerinden çalışan Google Gemini modeli, LangChain ile yönetilen konuşma hafızası ve FastAPI tabanlı bir servis ile geliştirilmiştir.
⚠️ Bu uygulama tıbbi teşhis koymaz. Sağlık sorunlarınız için mutlaka bir doktora danışınız.
Soldan sağa: giriş formu · kişiye özel yanıt · acil belirtide tek cümlelik yönlendirme
Birbirine bağımlı olmayan iki servis. SSL'i sunucudaki ters vekil bitirir.
| Parça | Yol | Alan adı | Host portu |
|---|---|---|---|
| Backend — FastAPI + LangChain | backend/ | doctor-assistant-api.aisli.dev | 8003 |
| Frontend — React + Vite + nginx | frontend/ | doctor-assistant.aisli.dev | 8002 |
Frontend nginx'i yalnız statik dosya servis eder, backend'e bağlanmaz. Tarayıcı API'ye VITE_API_BASE adresinden doğrudan gider; bu adres derlemeye gömülür, değişirse imaj yeniden derlenmelidir. Backend de FRONTEND_URL ile yalnız frontend'in origin'ine CORS izni verir.
ai-doctor/
├── backend/
│ ├── llm.py # model, prompt, zincir, hafıza
│ ├── api.py # FastAPI (yalnız JSON)
│ ├── terminal.py # terminal sürümü
│ ├── tests/ # birim testleri (pytest, sahte model)
│ ├── smoke_test.py # davranış doğrulaması
│ ├── Dockerfile · docker-compose.yml · Makefile
│ └── .env.example
└── frontend/
├── src/ # React + TypeScript
├── Dockerfile · nginx.conf · docker-compose.yml · Makefile
└── .env.example
Backend
cd backend
cp .env.example .env # OPENROUTER_API_KEY değerini doldurun
make up # derle ve başlat
make health # {"status":"ok", ...}
Frontend
cd frontend
VITE_API_BASE=http://localhost:8003 make up # yerel backend'e bağlan
Tarayıcıda http://localhost:8002 adresini açın.
Docker olmadan, iki terminalde:
cd backend && make dev # uvicorn :8000, canlı yeniden yükleme
cd frontend && make dev # vite :5173, /chat isteklerini :8000'e proxy'ler (yalnız dev)
Terminal sürümü için: cd backend && make terminal
cd backend && pytest # birim testleri (API anahtarı ve ağ gerekmez)
cd backend && make test # gerçek API'ye karşı davranış testi
cd frontend && make typecheck # TypeScript denetimi
pytest modeli sahte bir modelle değiştirir; HTTP katmanını (doğrulama, 503 hata yönetimi), oturum hafızasını ve sistem promptundaki güvenlik kurallarını kontrol eder ve her push'ta GitHub Actions'ta çalışır.
make test OpenRouter'a gerçek istek atar ve kredi harcar. Kontrol ettikleri:
Model çıktısı deterministik olmadığından tek bir başarısızlık gürültü olabilir; tekrarlıyorsa gerçek bir gerilemedir.
Varsayılan google/gemini-2.5-flash (~0.30$/1M token). OpenRouter'da ücretsiz Gemini kalmadı; daha ucuzu google/gemini-2.5-flash-lite (~0.10$) ama yönergeleri daha zayıf takip ediyor. Model OPENROUTER_MODEL ile değiştirilir.
max_tokens 800'e sabitlenmiştir: verilmezse OpenRouter modelin tavanını (65k) varsayıp bakiyeyi ona göre kontrol eder ve düşük bakiyede 402 döner.
Sunucu Dokploy ile yönetilir, SSL'i ters vekil bitirir. Sunucuda elle nginx ayarı yapılmaz, certbot çalıştırılmaz.
doctor-assistant ve doctor-assistant-api için A kaydı → sunucu IP'si./backend, Environment'a OPENROUTER_API_KEY ve FRONTEND_URL=https://doctor-assistant.aisli.dev. Domain doctor-assistant-api.aisli.dev, Container Port 8000./frontend, Domain doctor-assistant.aisli.dev, Container Port 80.Frontend varsayılan olarak https://doctor-assistant-api.aisli.dev adresine derlenir. Farklı bir API adresi gerekirse Build Args'a VITE_API_BASE girilip yeniden deploy edilir.
A conversational AI health assistant that collects the user's name, age, and health complaint to provide personalized Turkish-language health information. Built with Google Gemini via OpenRouter, LangChain conversation memory, a FastAPI backend, and a React + Vite frontend served by nginx.
⚠️ This application does not provide medical diagnoses. Always consult a doctor for health concerns.
Left to right: intake form · personalised reply · one-sentence referral on an emergency symptom
| Layer | Technology |
|---|---|
| LLM | Google Gemini (OpenRouter) |
| LLM Management | LangChain |
| Backend | FastAPI + Uvicorn |
| Frontend | React + Vite + TypeScript (bun) |
| Web server | nginx (static only) |
| Deployment | Docker + Dokploy (self-hosted) |
cd backend && cp .env.example .env && make up
cd ../frontend && VITE_API_BASE=http://localhost:8003 make up
Open http://localhost:8002.
Run make help in either folder to see all targets.
Sohbet hafızası süreç belleğinde (store sözlüğü) tutulur: konteyner yeniden başlatıldığında tüm konuşmalar silinir ve backend tek worker ile çalışmak zorundadır. Kalıcılık gerekirse bir veritabanı katmanı eklenmelidir.
Built by Aslı