41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import faiss
|
|
from langchain_community.docstore.in_memory import InMemoryDocstore
|
|
from langchain_community.vectorstores import FAISS
|
|
from langchain_core.prompts import ChatPromptTemplate
|
|
from langchain.chains import create_retrieval_chain
|
|
from langchain.chains.combine_documents import create_stuff_documents_chain
|
|
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
|
|
import openai
|
|
from openai import OpenAI
|
|
from langchain_community.document_loaders.csv_loader import CSVLoader
|
|
from pathlib import Path
|
|
from langchain_openai import ChatOpenAI,OpenAIEmbeddings
|
|
import os
|
|
from dotenv import load_dotenv
|
|
from fastapi import FastAPI, HTTPException
|
|
from pydantic import BaseModel
|
|
from scripts.rag import get_answer, response_agent
|
|
# Load environment variables from a .env file
|
|
|
|
|
|
# Initialize FastAPI app
|
|
app = FastAPI()
|
|
|
|
# Define a request model
|
|
class QuestionRequest(BaseModel):
|
|
question: str
|
|
|
|
@app.post("/ask")
|
|
def ask_question(request: QuestionRequest):
|
|
try:
|
|
# Use the RAG system to get the answer
|
|
calculation_data = get_answer(rag_chain, request.question)
|
|
final_response = response_agent(request.question, calculation_data)
|
|
return {"answer": final_response}
|
|
except Exception as e:
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import uvicorn
|
|
uvicorn.run(app, host="0.0.0.0", port=5079) |