deltav2 / app.py
rohanshaw's picture
Upload 6 files
5479033 verified
raw
history blame contribute delete
No virus
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}