katha-cb / app.py
rohanshaw's picture
Upload 6 files
1dcf0d1 verified
raw
history blame
1.34 kB
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from chatbot import Chatbot
from chatbotmemory import ChatbotMemory
import logging
from langchain_core.messages import AIMessage, HumanMessage
app = FastAPI()
# Add logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.addHandler(handler)
# Add CORS
origins = ["*"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["GET", "POST", "PUT", "DELETE"],
allow_headers=["*"],
)
bot1 = Chatbot()
bot2 = ChatbotMemory()
@app.get("/")
def read_root():
return {
"message": "API running successfully",
"endpoints": [
"/chat/v1/",
"/chat/v2/",
]
}
@app.post("/chat/v1/")
def chat(q: str):
logger.info(q)
answer = bot1.rag_chain.invoke(q)
return {"answer": answer}
@app.post("/chat/v2/")
def chatMemory(q: str):
chat_history = []
logger.info(q)
ai_msg = bot2.rag_chain.invoke({"question": q, "chat_history": chat_history})
chat_history.extend([HumanMessage(content=q), ai_msg])
return {"answer": ai_msg}