Bu proje, sunumdaki “Yatırım Programı Revizyon Talebi” senaryosunu uçtan uca çalışan bir demo olarak gerçekleştirir. Kurumsal mimaride geçen bileşenler (Nextcloud, n8n, LiteLLM/Ollama, Mattermost, Appflowy, Presenton, Superset) burada hafif bir “tek uygulama” prototip ile simüle edilmiştir; istenirse webhook’larla gerçek sistemlere bağlanacak şekilde genişletilebilir.
- Dosya yükleme (Nextcloud benzeri): Kullanıcı revizyon talebini
Uploadsayfasından yükler. - OCR / metin çıkarma: PDF’den metin çıkarılır (metin yoksa OCR opsiyoneldir).
- AI ile bilgi çıkarımı (LiteLLM/Ollama benzeri): Metinden
proje_kodu,talep_tutarı,gerekçealanları çıkarılır (varsayılan: kural tabanlı; opsiyonel: OpenAI API). - Proje sorgusu + risk analizi (Knime benzeri): Örnek proje veritabanından bütçe/harcama çekilir, risk puanı hesaplanır.
- Bildirim (Mattermost benzeri): İstenirse Mattermost Incoming Webhook’a mesaj atılır.
- Onay/Red (Mattermost butonları / Appflowy kayıt): Web arayüzünden Onay/Red verilir; karar kayıt altına alınır (Markdown “bilgi bankası”).
- YPK sunumu üretimi (Presenton benzeri): Onaylanan talepler için sunum çıktısı üretilir (varsayılan: Markdown; opsiyonel: PPTX).
- Dashboard güncelleme (Superset benzeri): Basit bir dashboard sayfasında talepler ve projeler görüntülenir.
Bu repo Python 3.12 ile çalışır.
requirements.txt içeriğini kurun:
python -m pip install -r requirements.txtPPTX üretimi için (opsiyonel):
python -m pip install -r requirements-pptx.txtNot:
python-pptxkurulu değilse sunum çıktısı Markdown olarak üretilecektir.
.env.example dosyasını .env olarak kopyalayın ve gerekirse düzenleyin.
python -m uvicorn app.main:app --reloadArayüz: http://127.0.0.1:8000
docker build -t revizyon-demo .
docker run -p 8000:8000 revizyon-demoÖrnek bir revizyon talebi PDF’i üretmek için:
python scripts/generate_sample_pdf.pyOluşan dosyayı Upload ekranından yükleyebilirsiniz.
Bu uygulama stateless çalışır; fakat demo için dosyaları ve SQLite DB’yi yerelde tutar. Bulutta:
- Render/Railway/Fly.io: Dockerfile ekleyerek veya Python web service olarak deploy edebilirsiniz.
- Dosya ve DB kalıcılığı isteniyorsa:
DATA_DIRkalıcı disk (volume) üzerinde olmalı,- ya da SQLite yerine Postgres’e geçilmelidir.
-
Bu klasörü GitHub’a push edin (public/private fark etmez).
-
Render’da:
- New → Web Service (veya New → Blueprint ile
render.yaml) - Repo’yu seçin
- Eğer Docker seçeneği sorarsa: Docker (repo’daki
Dockerfilekullanılacak) - Port:
8000(Blueprint ile kuruyorsanızrender.yamliçindePORT=8000hazır)
- Render → Environment:
LLM_PROVIDER=mock(varsayılan)APP_BASE_URL=https://<service-adın>.onrender.com- (opsiyonel, kalıcı disk kullanıyorsanız)
DATA_DIR,STORAGE_DIR,OUTPUT_DIRdeğerlerini disk mount path altına verin (örn./var/data/...).
Deploy bitince uygulama URL’nizi açıp /dashboard ve /upload ile test edin.
app/: FastAPI uygulamasıtemplates/: HTML arayüz şablonlarıstatic/: basit CSSdata/: örnek proje seed + uygulama DBstorage/: yüklenen dosyalaroutputs/: üretilen sunum/çıktılar