Spaces:
Sleeping
Sleeping
from langchain_core.messages import AIMessage, HumanMessage | |
from fastapi import FastAPI | |
from langchain_pinecone.vectorstores import Pinecone | |
from pydantic import BaseModel | |
from rag import Rag | |
from retriever import AskMeAboutRagRetriever | |
from langchain_huggingface import HuggingFaceEmbeddings | |
from dotenv import load_dotenv | |
import os | |
load_dotenv() | |
api_key=os.getenv('PINECONE_KEY') | |
index_name="askmeaboutrag" | |
vectorstore = Pinecone(pinecone_api_key=api_key, index_name=index_name, embedding=HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")) | |
retriever = AskMeAboutRagRetriever(vectorstore) | |
rag_llm = Rag(vectorstore, retriever); | |
rag_llm.createRagChain() | |
chat_history = [] | |
class ChatInput(BaseModel): | |
question: str | |
app = FastAPI() | |
async def root(): | |
return {"message": "Hello World"} | |
async def generateResponse(chat_input: ChatInput): | |
ai_msg = rag_llm.generateResponse(chat_input.question, chat_history) | |
chat_history.extend( | |
[ | |
HumanMessage(content=chat_input.question), | |
AIMessage(content=ai_msg["answer"]), | |
] | |
) | |
return {"response": ai_msg} | |
if __name__ == "__main__": | |
import uvicorn | |
uvicorn.run(app, host="127.0.0.1", port=8000) | |
print("Server is running") |