llm-space / app.py
Ankit93's picture
Update app.py
85544e6 verified
Raw
History Blame Contribute Delete
1.25 kB
import os
import logging
from fastapi import FastAPI, HTTPException
from fastapi.responses import StreamingResponse
from pydantic import BaseModel
from langchain_community.llms import Ollama
from langchain.callbacks.manager import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
app = FastAPI()
MODEL_NAME = 'tinyllama'
def get_llm():
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
return Ollama(model=MODEL_NAME, callback_manager=callback_manager)
class Question(BaseModel):
text: str
@app.get("/")
def read_root():
return {"Hello": f"Welcome to {MODEL_NAME} FastAPI"}
@app.post("/generate")
def generate_response(q: Question):
try:
llm = get_llm()
response = llm.invoke(q.text)
return {"response": response}
except Exception as e:
logger.error(f"Error generating response: {e}")
raise HTTPException(status_code=500, detail=str(e))
@app.on_event("startup")
async def startup_event():
logger.info(f"Starting up with model: {MODEL_NAME}")
@app.on_event("shutdown")
async def shutdown_event():
logger.info("Shutting down")