Spaces:
Running
Running
File size: 1,627 Bytes
3c7ba68 27b1b52 3c7ba68 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
from llama_index.core.base.llms.types import ChatMessage, MessageRole
import logging
logging.basicConfig(level=logging.INFO)
class ChatEngine:
def __init__(self, retriever):
"""
Initializes the ChatEngine with a retriever and a language model.
Args:
retriever (HybridRetriever): An instance of a retriever to fetch relevant documents.
model_name (str): The name of the language model to be used.
context_window (int, optional): The maximum context window size for the language model. Defaults to 32000.
temperature (float, optional): The temperature setting for the language model. Defaults to 0.
"""
self.retriever = retriever
def ask_question(self, question, llm):
"""
Asks a question to the language model, using the retriever to fetch relevant documents.
Args:
question (str): The question to be asked.
Returns:
response (str): The response from the language model in markdown format.
"""
question = "[INST]" + question + "[/INST]"
results = self.retriever.best_docs(question)
document = [doc.text for doc, sc in results]
logging.info(f"Created Document - len docs:{len(document)}")
chat_history = f"Question: {question}\n\nDocument: {document}"
logging.info("Created Chat History")
logging.info("Asking LLM")
response = llm.invoke(chat_history, self.params)
logging.info("Got Response from LLM, Returning")
return response |