fix retry error
Browse files- app/embedding.py +1 -1
- app/facebook.py +2 -0
- app/sheets.py +1 -0
- app/supabase_db.py +2 -2
app/embedding.py
CHANGED
|
@@ -16,7 +16,7 @@ class EmbeddingClient:
|
|
| 16 |
self._client = httpx.AsyncClient()
|
| 17 |
|
| 18 |
@timing_decorator
|
| 19 |
-
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))
|
| 20 |
async def create_embedding(self, text: str) -> List[float]:
|
| 21 |
"""
|
| 22 |
Tạo embedding vector từ text bằng dịch vụ embedding (ví dụ OpenAI).
|
|
|
|
| 16 |
self._client = httpx.AsyncClient()
|
| 17 |
|
| 18 |
@timing_decorator
|
| 19 |
+
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10), reraise=True)
|
| 20 |
async def create_embedding(self, text: str) -> List[float]:
|
| 21 |
"""
|
| 22 |
Tạo embedding vector từ text bằng dịch vụ embedding (ví dụ OpenAI).
|
app/facebook.py
CHANGED
|
@@ -18,6 +18,7 @@ class FacebookClient:
|
|
| 18 |
self.app_secret = app_secret
|
| 19 |
self._client = httpx.AsyncClient()
|
| 20 |
|
|
|
|
| 21 |
async def verify_webhook(self, token: str, challenge: str, verify_token: str) -> int:
|
| 22 |
"""
|
| 23 |
Xác thực webhook Facebook bằng verify_token và trả về challenge.
|
|
@@ -69,6 +70,7 @@ class FacebookClient:
|
|
| 69 |
logger.error(f"Error sending message to Facebook: {e}")
|
| 70 |
raise HTTPException(status_code=500, detail="Failed to send message to Facebook")
|
| 71 |
|
|
|
|
| 72 |
def parse_message(self, body: Dict[str, Any]) -> Optional[Dict[str, Any]]:
|
| 73 |
"""
|
| 74 |
Parse message từ payload Facebook webhook.
|
|
|
|
| 18 |
self.app_secret = app_secret
|
| 19 |
self._client = httpx.AsyncClient()
|
| 20 |
|
| 21 |
+
@timing_decorator
|
| 22 |
async def verify_webhook(self, token: str, challenge: str, verify_token: str) -> int:
|
| 23 |
"""
|
| 24 |
Xác thực webhook Facebook bằng verify_token và trả về challenge.
|
|
|
|
| 70 |
logger.error(f"Error sending message to Facebook: {e}")
|
| 71 |
raise HTTPException(status_code=500, detail="Failed to send message to Facebook")
|
| 72 |
|
| 73 |
+
@timing_decorator
|
| 74 |
def parse_message(self, body: Dict[str, Any]) -> Optional[Dict[str, Any]]:
|
| 75 |
"""
|
| 76 |
Parse message từ payload Facebook webhook.
|
app/sheets.py
CHANGED
|
@@ -26,6 +26,7 @@ class SheetsClient:
|
|
| 26 |
self.creds = None
|
| 27 |
self.service = None
|
| 28 |
|
|
|
|
| 29 |
def authenticate(self) -> None:
|
| 30 |
"""
|
| 31 |
Xác thực với Google Sheets API, tạo self.service.
|
|
|
|
| 26 |
self.creds = None
|
| 27 |
self.service = None
|
| 28 |
|
| 29 |
+
@timing_decorator
|
| 30 |
def authenticate(self) -> None:
|
| 31 |
"""
|
| 32 |
Xác thực với Google Sheets API, tạo self.service.
|
app/supabase_db.py
CHANGED
|
@@ -21,9 +21,9 @@ class SupabaseClient:
|
|
| 21 |
Output: access_token (str) hoặc None nếu không có.
|
| 22 |
"""
|
| 23 |
try:
|
| 24 |
-
response = self.client.table('
|
| 25 |
if response.data and len(response.data) > 0:
|
| 26 |
-
return response.data[0]['
|
| 27 |
return None
|
| 28 |
except Exception as e:
|
| 29 |
logger.error(f"Error getting page token: {e}")
|
|
|
|
| 21 |
Output: access_token (str) hoặc None nếu không có.
|
| 22 |
"""
|
| 23 |
try:
|
| 24 |
+
response = self.client.table('PageTokens').select('token').eq('id', page_id).execute()
|
| 25 |
if response.data and len(response.data) > 0:
|
| 26 |
+
return response.data[0]['token']
|
| 27 |
return None
|
| 28 |
except Exception as e:
|
| 29 |
logger.error(f"Error getting page token: {e}")
|