From 8035131baf8b1b71d283f8afdbbe563ca78d107b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20K=C4=B1y=C4=B1k?= Date: Wed, 26 Aug 2026 14:38:45 +0300 Subject: [PATCH] =?UTF-8?q?Ev=20tahmini=20projesi=20ilk=20y=C3=BCkleme,?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DockerFile | 14 ++++++++++++++ ev_tahmini.py | 36 ++++++++++++++++++++++++++++++++++++ requirements.txt | 4 ++++ 3 files changed, 54 insertions(+) create mode 100644 DockerFile create mode 100644 ev_tahmini.py create mode 100644 requirements.txt diff --git a/DockerFile b/DockerFile new file mode 100644 index 0000000..26e354b --- /dev/null +++ b/DockerFile @@ -0,0 +1,14 @@ +FROM python:3.11-slim + + +WORKDIR /app + + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + + +COPY . . + + +CMD ["uvicorn", "ev_tahmini:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/ev_tahmini.py b/ev_tahmini.py new file mode 100644 index 0000000..0336d52 --- /dev/null +++ b/ev_tahmini.py @@ -0,0 +1,36 @@ +from fastapi import FastAPI +import pandas as pd +from sklearn.linear_model import LinearRegression +import uvicorn + +# 1. API Uygulamasını Başlat +app = FastAPI(title="Yapay Zeka Ev Tahmin Servisi") + +# 2. Modeli Eğit (Sunucu açılırken bir kere yapılır) +veri = { + 'Metrekare': [50, 80, 100, 120, 150], + 'Fiyat_TL': [1500000, 2200000, 2800000, 3100000, 3900000] +} +df = pd.DataFrame(veri) +X = df[['Metrekare']] +y = df['Fiyat_TL'] + +model = LinearRegression() +model.fit(X, y) + +# 3. İnternetten Gelen İstekleri Karşılayacak Kapıyı (Endpoint) Aç +@app.get("/tahmin") +def fiyat_tahmin_et(metrekare: float): + # İnternetten gelen metrekareyi DataFrame'e çevirip modele sor + istek_df = pd.DataFrame({'Metrekare': [metrekare]}) + tahmin_sonucu = model.predict(istek_df)[0] + + # Sonucu JSON formatında geri döndür + return { + "girilen_metrekare": metrekare, + "tahmini_fiyat_tl": round(tahmin_sonucu, 2) + } + +# 4. Sunucuyu Çalıştır +if __name__ == "__main__": + uvicorn.run(app, host="0.0.0.0", port=8000) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a8f3568 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +fastapi +uvicorn +pandas +scikit-learn \ No newline at end of file