Ismetdh commited on
Commit
f00d90b
·
verified ·
1 Parent(s): dbe7ab0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -6
app.py CHANGED
@@ -68,14 +68,22 @@ def update_feedback_in_firestore(session_id, conversation_id, feedback):
68
  conv_doc.update({"feedback": feedback})
69
 
70
  class Config:
71
- CHUNK_WORDS = 300
72
- EMBEDDING_MODEL = "models/gemini-embedding-exp-03-07"
 
 
 
73
  TOP_N = 5
74
  SYSTEM_PROMPT = (
75
  "You are a helpful assistant. Answer the question using the provided context below. "
76
  "Answer based on your knowledge if the context given is not enough."
77
  )
78
- GENERATION_MODEL = "models/gemini-2.5-flash-lite"
 
 
 
 
 
79
 
80
  API_KEY = os.getenv("GOOGLE_API_KEY")
81
  if not API_KEY:
@@ -98,19 +106,20 @@ def generate_embedding_cached(text: str) -> list:
98
  if "embedding" not in response or not response["embedding"]:
99
  logger.error("No embedding returned from API.")
100
  st.error("No embedding returned. Please verify your API settings and input text.")
101
- return [0.0] * 768
 
102
  embedding = np.array(response["embedding"])
103
  if embedding.ndim == 2:
104
  embedding = embedding.flatten()
105
  elif embedding.ndim > 2:
106
  logger.error("Embedding has more than 2 dimensions.")
107
  st.error("Invalid embedding dimensions. Please check the API response.")
108
- return [0.0] * 768
109
  return embedding.tolist()
110
  except Exception as e:
111
  logger.error("Embedding generation failed: %s", e)
112
  st.error(f"Embedding generation failed: {e}")
113
- return [0.0] * 768
114
 
115
  def generate_embedding(text: str) -> np.ndarray:
116
  embedding_list = generate_embedding_cached(text)
 
68
  conv_doc.update({"feedback": feedback})
69
 
70
  class Config:
71
+ CHUNK_WORDS = 3000
72
+ # Use the unified Gemini text embedding model recommended in the docs:
73
+ # https://docs.cloud.google.com/vertex-ai/generative-ai/docs/embeddings/get-text-embeddings
74
+ # This model produces up to 3072-dimensional vectors.
75
+ EMBEDDING_MODEL = "models/gemini-embedding-001"
76
  TOP_N = 5
77
  SYSTEM_PROMPT = (
78
  "You are a helpful assistant. Answer the question using the provided context below. "
79
  "Answer based on your knowledge if the context given is not enough."
80
  )
81
+ # Use a text-generation model that is available on the v1beta Generative Language API.
82
+ # If you want to confirm available models, run:
83
+ # import google.generativeai as genai
84
+ # for m in genai.list_models():
85
+ # if "generateContent" in m.supported_generation_methods: print(m.name)
86
+ GENERATION_MODEL = "gemini-2.5-flash"
87
 
88
  API_KEY = os.getenv("GOOGLE_API_KEY")
89
  if not API_KEY:
 
106
  if "embedding" not in response or not response["embedding"]:
107
  logger.error("No embedding returned from API.")
108
  st.error("No embedding returned. Please verify your API settings and input text.")
109
+ # Fallback vector size should roughly match gemini-embedding-001 (3072 dims).
110
+ return [0.0] * 3072
111
  embedding = np.array(response["embedding"])
112
  if embedding.ndim == 2:
113
  embedding = embedding.flatten()
114
  elif embedding.ndim > 2:
115
  logger.error("Embedding has more than 2 dimensions.")
116
  st.error("Invalid embedding dimensions. Please check the API response.")
117
+ return [0.0] * 3072
118
  return embedding.tolist()
119
  except Exception as e:
120
  logger.error("Embedding generation failed: %s", e)
121
  st.error(f"Embedding generation failed: {e}")
122
+ return [0.0] * 3072
123
 
124
  def generate_embedding(text: str) -> np.ndarray:
125
  embedding_list = generate_embedding_cached(text)