masadonline commited on
Commit
46ca20e
·
verified ·
1 Parent(s): 106b8c6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -9
app.py CHANGED
@@ -11,6 +11,9 @@ import numpy as np
11
  import docx
12
  from groq import Groq
13
  import PyPDF2
 
 
 
14
 
15
  # --- Document Loaders ---
16
  def extract_text_from_pdf(pdf_path):
@@ -49,17 +52,27 @@ def retrieve_chunks(question, index, embed_model, text_chunks, k=3):
49
  D, I = index.search(np.array([question_embedding]), k)
50
  return [text_chunks[i] for i in I[0]]
51
 
52
- def generate_answer_with_groq(question, context):
53
  prompt = f"Based on the following context, answer the question: '{question}'\n\nContext:\n{context}"
54
  groq_client = Groq(api_key=os.environ["GROQ_API_KEY"])
55
- response = groq_client.chat.completions.create(
56
- model="llama3-8b-8192", # Updated model name
57
- messages=[
58
- {"role": "system", "content": "You are an AI Assistant for Small Businesses."},
59
- {"role": "user", "content": prompt},
60
- ]
61
- )
62
- return response.choices[0].message.content
 
 
 
 
 
 
 
 
 
 
63
 
64
  # --- Twilio Chat Handlers ---
65
  def fetch_latest_incoming_message(account_sid, auth_token, conversation_sid):
 
11
  import docx
12
  from groq import Groq
13
  import PyPDF2
14
+ from groq import Groq
15
+ from groq.error import GroqError
16
+
17
 
18
  # --- Document Loaders ---
19
  def extract_text_from_pdf(pdf_path):
 
52
  D, I = index.search(np.array([question_embedding]), k)
53
  return [text_chunks[i] for i in I[0]]
54
 
55
+ def generate_answer_with_groq(question, context, retries=3, delay=2):
56
  prompt = f"Based on the following context, answer the question: '{question}'\n\nContext:\n{context}"
57
  groq_client = Groq(api_key=os.environ["GROQ_API_KEY"])
58
+
59
+ for attempt in range(retries):
60
+ try:
61
+ response = groq_client.chat.completions.create(
62
+ model="llama3-8b-8192",
63
+ messages=[
64
+ {"role": "system", "content": "You are an AI Assistant for Small Businesses."},
65
+ {"role": "user", "content": prompt},
66
+ ]
67
+ )
68
+ return response.choices[0].message.content
69
+ except GroqError as e:
70
+ if "503" in str(e) and attempt < retries - 1:
71
+ time.sleep(delay)
72
+ continue
73
+ else:
74
+ return f"⚠️ Groq API Error: {str(e)}"
75
+
76
 
77
  # --- Twilio Chat Handlers ---
78
  def fetch_latest_incoming_message(account_sid, auth_token, conversation_sid):