abdullahzunorain commited on
Commit
1152596
·
verified ·
1 Parent(s): 5dc97c8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -8
app.py CHANGED
@@ -5,8 +5,8 @@ from groq import Groq
5
  from PyPDF2 import PdfReader
6
 
7
  # Set your Groq API key here or use environment variable
8
- GROQ_API_TOKEN = os.getenv("groq_api")
9
- client = Groq(api_key=GROQ_API_TOKEN)
10
 
11
  # Initialize the SentenceTransformer model for embeddings
12
  retriever = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
@@ -16,16 +16,21 @@ documents = []
16
  document_embeddings = None
17
 
18
  # Function to retrieve top relevant document
19
- def retrieve(query, top_k=1):
20
  if document_embeddings is None:
21
  return None
22
  query_embedding = retriever.encode(query, convert_to_tensor=True)
23
  hits = util.semantic_search(query_embedding, document_embeddings, top_k=top_k)
24
  top_docs = [documents[hit['corpus_id']] for hit in hits[0]]
25
- return top_docs[0] if hits[0] else None
26
 
27
  # Function to generate response using Groq
28
  def generate_response(query, context):
 
 
 
 
 
29
  response = client.chat.completions.create(
30
  messages=[{
31
  "role": "user",
@@ -78,10 +83,6 @@ if question:
78
 
79
 
80
 
81
-
82
-
83
-
84
-
85
  # import os
86
  # import streamlit as st
87
  # from sentence_transformers import SentenceTransformer, util
 
5
  from PyPDF2 import PdfReader
6
 
7
  # Set your Groq API key here or use environment variable
8
+ GROQ_API_TOKEN = os.getenv("GROQ_API_TOKEN")
9
+ client = Groq(api_key=groq_api)
10
 
11
  # Initialize the SentenceTransformer model for embeddings
12
  retriever = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
 
16
  document_embeddings = None
17
 
18
  # Function to retrieve top relevant document
19
+ def retrieve(query, top_k=3): # Retrieve top 3 relevant documents
20
  if document_embeddings is None:
21
  return None
22
  query_embedding = retriever.encode(query, convert_to_tensor=True)
23
  hits = util.semantic_search(query_embedding, document_embeddings, top_k=top_k)
24
  top_docs = [documents[hit['corpus_id']] for hit in hits[0]]
25
+ return ' '.join(top_docs) if hits[0] else None # Concatenate the top documents
26
 
27
  # Function to generate response using Groq
28
  def generate_response(query, context):
29
+ # Limit context size to prevent exceeding token limits
30
+ max_context_length = 200 # Adjust this number based on your needs
31
+ if len(context.split()) > max_context_length:
32
+ context = ' '.join(context.split()[:max_context_length]) # Truncate context to the first N words
33
+
34
  response = client.chat.completions.create(
35
  messages=[{
36
  "role": "user",
 
83
 
84
 
85
 
 
 
 
 
86
  # import os
87
  # import streamlit as st
88
  # from sentence_transformers import SentenceTransformer, util