FastAPI yada Flask variable taşıma

from fastapi import Depends, FastAPI, UploadFile
from fastapi.responses import JSONResponse, RedirectResponse
from bot import Chatbot
from utilities import Result, ErrMessage, TokenModel, Version, GetMessage
import pandas as pd

# 
app = FastAPI()
chat = Chatbot()


@app.post("/upload-data-file/", tags=["Main API"])
async def create_upload_data(lang: str):
    chat.lang = lang
    return JSONResponse(status_code=200, content={"message": "File uploaded"})


@app.post("/component/",
          tags=["Main API"],
          response_model=Result)
async def talk_bot(msg_: GetMessage):
    if chat.lang == "tr-TR":
        chat.data = pd.read_csv("data/abc.csv", encoding="utf-16")
    else:
        chat.data = pd.read_csv("data/123.csv")

Merhabalar, öncelikle FastAPI ile Flask çok benzer, problemi Flask gibi düşünüpte cevap verebilirsiniz.
FastAPI kullanarak bir chatbot geliştirmeye çalışıyorum. İlk end pointimi kullanarak bir dil belirliyorum.
Bir daha bu end pointi kullanmıyorum.
İkinci end pointte bu bilgiyi kullanarak işlemler yapacağım.

İlk başlarda herşey yolunda gidiyor. İkinci end pointi kullanarak uygulamamı kullanıyorum. Ancak belli bir süre sonra chat.lang içinde tuttuğum bilgi sıfırlanıyor. “None” haline geliyor. Dolayısıyla yaptığım işlemler yanlış hale geliyor.

Bu arada şu bilgiyide aktarmalıyım. Bu durum local çalışmada yaşanmıyor. Şirketin sunucusuna attığımda bu durum yaşanıyor.
Bir ikinci ekleme
app sınıfına app.state.lang olarak da ekledim ama yine bilgiyi endpointten aldığım için aynı problem yaşanıyor.

Bir end pointten diğerine bilgi aktarmanın doğru yolu bu mudur?
Burada yaptığım yanlışlık nedir?
Çözüm olarak önerileriniz nedir?

Gorunuse gore sistem datanin Chatbot objesinde, yani hafizada tutulmasina dayaniyor. Bununla ilgili bir suru problem var:

Upload edilen data kullanici bazli degil, process bazli; erisebilmek icin ayni process’e denk gelmek lazim. Ayni sekilde baska kullanicinin datasina erismek icin sadece onun upload edildigi process’e denk gelmek yetiyor. Process herhangi bir nedenle restart edilirse de data kayboluyor.

Datayi daha kalici bir yerde ve kullanici bazli tutmak lazim. Session mekanizmasi tam olarak boyle isliyor.

1 Beğeni

Çok teşekkür ederim, çok yardımcı oldunuz.