from data_ingestion import data_ingestion from vectorStore import vectorStore,embedding from llm_configuration import llm, prompt_helper from langchain_core.runnables import RunnablePassthrough from langchain_core.output_parsers import StrOutputParser def main(path,question): path = path data = data_ingestion(path) retriever = vectorStore(data,embedding) prompt = prompt_helper() chain = ( {'context': retriever, 'question': RunnablePassthrough()} | prompt | llm | StrOutputParser() ) return chain.invoke(question) if __name__ == "__main__": main()