Untitled
unknown
plain_text
9 months ago
1.7 kB
9
Indexable
class RAGWithContext:
def __init__(self, rag_system, window_size=3):
"""
Set up the RAG system with memory for previous questions.
:param rag_system: Your existing RAG system.
:param window_size: How many previous questions to remember (default is 3).
"""
self.rag_system = rag_system
self.window_size = window_size
self.history = [] # This will store the previous questions
def ask(self, question):
"""
Ask a question and get an answer using context from previous questions.
:param question: Your current question.
:return: The answer based on the context and current question.
"""
# Add the new question to the history
self.history.append(question)
# Keep only the last 'window_size' questions
if len(self.history) > self.window_size:
self.history.pop(0) # Remove the oldest question
# Combine the history into a context string
context = " [SEP] ".join(self.history)
# Send the context to your RAG system to get an answer
answer = self.rag_system.generate_answer(context)
return answer
# Example usage (assuming 'rag_system' is your RAG system):
rag_with_context = RAGWithContext(rag_system, window_size=3)
# Ask some questions
print(rag_with_context.ask("What is the capital of France?"))
# Might output: "The capital of France is Paris."
print(rag_with_context.ask("What about Spain?"))
# Might output: "The capital of Spain is Madrid."
print(rag_with_context.ask("And Italy?"))
# Might output: "The capital of Italy is Rome."Editor is loading...
Leave a Comment