refactor llm/embedding flow
Browse files- app/gemini_client.py +6 -2
- app/sheets.py +1 -1
app/gemini_client.py
CHANGED
@@ -13,12 +13,16 @@ class GeminiClient:
|
|
13 |
def generate_text(self, prompt: str, **kwargs) -> str:
|
14 |
try:
|
15 |
response = self._model.generate_content(prompt, **kwargs)
|
16 |
-
|
|
|
17 |
# response có thể là GenerativeModelResponse, lấy text hoặc trả về str
|
18 |
if hasattr(response, 'text'):
|
|
|
19 |
return response.text
|
20 |
elif hasattr(response, 'candidates') and response.candidates:
|
|
|
21 |
return response.candidates[0].content.parts[0].text
|
|
|
22 |
return str(response)
|
23 |
except Exception as e:
|
24 |
logger.error(f"[GEMINI] Error: {e}")
|
@@ -38,7 +42,7 @@ class GeminiClient:
|
|
38 |
content=text,
|
39 |
task_type="retrieval_query"
|
40 |
)
|
41 |
-
logger.info(f"[GEMINI][EMBEDDING][RAW_RESPONSE] {response}")
|
42 |
return response['embedding']
|
43 |
except Exception as e:
|
44 |
logger.error(f"[GEMINI][EMBEDDING] Error: {e}")
|
|
|
13 |
def generate_text(self, prompt: str, **kwargs) -> str:
|
14 |
try:
|
15 |
response = self._model.generate_content(prompt, **kwargs)
|
16 |
+
if hasattr(response, 'usage_metadata'):
|
17 |
+
logger.info(f"[GEMINI][USAGE] Prompt Token Count: {response.usage_metadata.prompt_token_count} - Candidate Token Count: {response.usage_metadata.candidates_token_count} - Total Token Count: {response.usage_metadata.total_token_count}")
|
18 |
# response có thể là GenerativeModelResponse, lấy text hoặc trả về str
|
19 |
if hasattr(response, 'text'):
|
20 |
+
logger.info(f"[GEMINI][TEXT_RESPONSE] {response.text}")
|
21 |
return response.text
|
22 |
elif hasattr(response, 'candidates') and response.candidates:
|
23 |
+
logger.info(f"[GEMINI][CANDIDATES_RESPONSE] {response.candidates[0].content.parts[0].text}")
|
24 |
return response.candidates[0].content.parts[0].text
|
25 |
+
logger.info(f"[GEMINI][RAW_RESPONSE] {response}")
|
26 |
return str(response)
|
27 |
except Exception as e:
|
28 |
logger.error(f"[GEMINI] Error: {e}")
|
|
|
42 |
content=text,
|
43 |
task_type="retrieval_query"
|
44 |
)
|
45 |
+
logger.info(f"[GEMINI][EMBEDDING][RAW_RESPONSE] {response['embedding'][:10]} ..... {response['embedding'][-10:]}")
|
46 |
return response['embedding']
|
47 |
except Exception as e:
|
48 |
logger.error(f"[GEMINI][EMBEDDING] Error: {e}")
|
app/sheets.py
CHANGED
@@ -146,7 +146,7 @@ class SheetsClient:
|
|
146 |
range=SHEET_RANGE
|
147 |
).execute()
|
148 |
values = result.get('values', [])
|
149 |
-
logger.info(f"[DEBUG] Gsheet values {values}")
|
150 |
ts = datetime.now().isoformat()
|
151 |
# Đảm bảo timestamp luôn là list
|
152 |
if timestamp is None:
|
|
|
146 |
range=SHEET_RANGE
|
147 |
).execute()
|
148 |
values = result.get('values', [])
|
149 |
+
# logger.info(f"[DEBUG] Gsheet values {values}")
|
150 |
ts = datetime.now().isoformat()
|
151 |
# Đảm bảo timestamp luôn là list
|
152 |
if timestamp is None:
|