Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
from langchain_core.prompts import ChatPromptTemplate | |
from langchain_openai import ChatOpenAI | |
from langchain.chains import create_retrieval_chain | |
from langchain.chains.combine_documents import create_stuff_documents_chain | |
class RAGChain: | |
def __init__(self, vectorstore): | |
self.vectorstore = vectorstore | |
self.llm = ChatOpenAI(model="gpt-4o") | |
self.chain = self._create_chain() | |
def _create_chain(self): | |
prompt = ChatPromptTemplate.from_template(""" | |
You are a helpful assistant for field workers in the electricity transmission sector. | |
Answer questions about the Grid Code using the following context. | |
If you're unsure or the context doesn't contain the answer, say so. | |
Context: {context} | |
Question: {input} | |
""") | |
document_chain = create_stuff_documents_chain(self.llm, prompt) | |
retrieval_chain = create_retrieval_chain( | |
self.vectorstore.as_retriever(), | |
document_chain | |
) | |
return retrieval_chain | |
def invoke(self, question): | |
return self.chain.invoke({"input": question}) |