尚未检测到更新。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ı