VietCat commited on
Commit
69a4e9f
·
1 Parent(s): db27c93

update gemini

Browse files
Files changed (1) hide show
  1. rag_core/embedder.py +24 -6
rag_core/embedder.py CHANGED
@@ -6,16 +6,33 @@ from rag_core.utils import log_timed
6
 
7
  @log_timed("gửi API tạo embedding")
8
  def get_embedding(text: str, retries: int = 3, base_timeout: int = 30):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  for i in range(retries):
10
  try:
11
  current_timeout = base_timeout * (i + 1)
12
- response = requests.post(
13
- "https://generativelanguage.googleapis.com/v1/models/text-embedding-004:embedContent?key="+os.getenv("GEMINI_API_KEY"),
14
- json={"content": { "parts": [ { "text": text } ] }},
15
- timeout=current_timeout
16
- )
17
  response.raise_for_status()
18
- return response.json()["embedding"]
 
 
 
 
 
 
19
  except requests.exceptions.RequestException as e:
20
  logging.warning(f"Lỗi embedding (lần {i+1}/{retries}, timeout={current_timeout}s): {e}")
21
  if i < retries - 1:
@@ -23,3 +40,4 @@ def get_embedding(text: str, retries: int = 3, base_timeout: int = 30):
23
  else:
24
  raise
25
 
 
 
6
 
7
  @log_timed("gửi API tạo embedding")
8
  def get_embedding(text: str, retries: int = 3, base_timeout: int = 30):
9
+ api_key = os.getenv("GEMINI_API_KEY")
10
+ if not api_key:
11
+ raise ValueError("Thiếu biến môi trường GEMINI_API_KEY.")
12
+
13
+ url = f"https://generativelanguage.googleapis.com/v1/models/text-embedding-004:embedContent?key={api_key}"
14
+
15
+ payload = {
16
+ "model": "models/text-embedding-004",
17
+ "content": {
18
+ "parts": [
19
+ { "text": text }
20
+ ]
21
+ }
22
+ }
23
+
24
  for i in range(retries):
25
  try:
26
  current_timeout = base_timeout * (i + 1)
27
+ response = requests.post(url, json=payload, timeout=current_timeout)
 
 
 
 
28
  response.raise_for_status()
29
+
30
+ # Kiểm tra phản hồi chứa trường embedding không
31
+ data = response.json()
32
+ if "embedding" not in data:
33
+ raise ValueError(f"Phản hồi không có 'embedding': {data}")
34
+ return data["embedding"]['values']
35
+
36
  except requests.exceptions.RequestException as e:
37
  logging.warning(f"Lỗi embedding (lần {i+1}/{retries}, timeout={current_timeout}s): {e}")
38
  if i < retries - 1:
 
40
  else:
41
  raise
42
 
43
+