Wie kann ich die Startzeit von Fastapi verkürzen?Python

Python-Programme
Anonymous
 Wie kann ich die Startzeit von Fastapi verkürzen?

Post by Anonymous »

Ich baue eine -Anläufe-Generation (RAG) Anwendung mit python + fastapi . Ich betreibe auch einen Kafka Consumer neben der Fastapi -App, um eingehende Text zu verarbeiten und Einbettung (in FAISS gespeichert) zu generieren. Ich bin jedoch vor einem Hauptproblem vorhanden - die Start -up -Zeit für den Kafka -Arbeiter und fastapi App ist sehr hoch (90–100 Sekunden) . Ich habe versucht, es mithilfe von Fastapis Lebensdauer Ereignis zu den Aufwärmaufgaben (Modellbeladung, Vektorspeicherladung usw.) in den Hintergrund abzuladen. Dies reduzierte es leicht auf ~ 85–88 Sekunden -aber es ist immer noch zu langsam für den praktischen Gebrauch. Hier ist meine Frage:
Was soll ich tun, um die Startzeit meines Kafka -Arbeiters und der Fastapi -App zu verkürzen. class = "Lang-Py PrettyPrint-Override">

Code: Select all

@asynccontextmanager
async def lifespan(app: FastAPI):
logger.info("Starting up RecallAI...")
start = time.time()

async def warmup():
logger.info("Warming up models and vector store...")
get_embeddings_model()
get_llm()
get_vectorstore()
logger.info(f"Warmup complete in {time.time() - start:.2f} seconds")

asyncio.create_task(warmup())
yield
logger.info("Shutting down RecallAI...")
Dies hilft, aber nicht genug - die App dauert immer noch lange, bis es reagiert. /> Sogar importieren store_embeddings im kafka -Arbeiter dauert mehrere Sekunden. />

Code: Select all

@cache
def get_embeddings_model():
return HuggingFaceEmbeddings(model_name="BAAI/bge-small-en-v1.5")

@cache
def get_llm():
return ChatGroq(groq_api_key=os.getenv("GROQ_API_KEY"), model_name="llama-3-70b")

def get_vectorstore():
embeddings = get_embeddings_model()
return FAISS.load_local("img_vector_store", embeddings, allow_dangerous_deserialization=True)
< /code>
Hier ist der Kafka -Arbeiter: < /p>
from recall_ai.vector_embeddings.store_vector_embedding import store_embeddings

def insert_batch(batch):
try:
res = store_embeddings()
...
Sogar importieren store_embeding nimmt 90 Sekunden [/b]. Diese Funktion lädt interne Modelle und erstellt Faiss -Indexes, was zur Verzögerung beiträgt.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post