|
from groq import Groq
|
|
from dotenv import load_dotenv
|
|
import os
|
|
|
|
load_dotenv()
|
|
api_key = os.getenv("GROQ_API_KEY")
|
|
|
|
class ChatBot:
|
|
def __init__(self):
|
|
|
|
|
|
self.client = Groq(api_key=api_key)
|
|
self.system_prompt = """You are a helpful assistant that answers questions based on website content.
|
|
Always respond truthfully based on the provided context. If unsure, say you don't know."""
|
|
|
|
def generate_response(self, query, context, source_url):
|
|
"""Generate response using RAG"""
|
|
context_text = "\n\n".join([doc.page_content for doc in context])
|
|
|
|
prompt = f"""Context: {context_text}
|
|
|
|
Question: {query}
|
|
|
|
Answer:"""
|
|
|
|
try:
|
|
response = self.client.chat.completions.create(
|
|
messages=[
|
|
{"role": "system", "content": self.system_prompt},
|
|
{"role": "user", "content": prompt}
|
|
],
|
|
model="mixtral-8x7b-32768",
|
|
temperature=0.5
|
|
)
|
|
return f"{response.choices[0].message.content}\nSource: {source_url}"
|
|
except Exception as e:
|
|
return f"Error generating response: {str(e)}" |