B1acB1rd commited on
Commit ·
3f2c201
1
Parent(s): 8db5262
Fix numpy array boolean error - convert embedding to list
Browse files
backend/ingestion/scheduler.py
CHANGED
|
@@ -319,7 +319,7 @@ class IngestionScheduler:
|
|
| 319 |
competition_level=roi_result["competition_level"],
|
| 320 |
social_engagement=raw.get("social_engagement", 0),
|
| 321 |
extra_data=enhanced_metadata,
|
| 322 |
-
embedding=embedding
|
| 323 |
)
|
| 324 |
|
| 325 |
db.add(opportunity)
|
|
|
|
| 319 |
competition_level=roi_result["competition_level"],
|
| 320 |
social_engagement=raw.get("social_engagement", 0),
|
| 321 |
extra_data=enhanced_metadata,
|
| 322 |
+
embedding=embedding.tolist() if hasattr(embedding, 'tolist') else embedding
|
| 323 |
)
|
| 324 |
|
| 325 |
db.add(opportunity)
|
backend/intelligence/novelty.py
CHANGED
|
@@ -49,11 +49,13 @@ class NoveltyDetector:
|
|
| 49 |
Returns:
|
| 50 |
dict with novelty_score, is_duplicate, most_similar_id
|
| 51 |
"""
|
| 52 |
-
if not embedding
|
|
|
|
| 53 |
return {
|
| 54 |
"novelty_score": 1.0,
|
| 55 |
"is_duplicate": False,
|
| 56 |
-
"most_similar_id": None
|
|
|
|
| 57 |
}
|
| 58 |
|
| 59 |
# Get recent opportunities with embeddings
|
|
@@ -74,7 +76,7 @@ class NoveltyDetector:
|
|
| 74 |
most_similar_id = None
|
| 75 |
|
| 76 |
for opp in recent:
|
| 77 |
-
if opp.embedding:
|
| 78 |
similarity = self.cosine_similarity(embedding, opp.embedding)
|
| 79 |
if similarity > max_similarity:
|
| 80 |
max_similarity = similarity
|
|
|
|
| 49 |
Returns:
|
| 50 |
dict with novelty_score, is_duplicate, most_similar_id
|
| 51 |
"""
|
| 52 |
+
# Check if embedding is None or empty (numpy arrays can't use 'if not embedding')
|
| 53 |
+
if embedding is None or (hasattr(embedding, '__len__') and len(embedding) == 0):
|
| 54 |
return {
|
| 55 |
"novelty_score": 1.0,
|
| 56 |
"is_duplicate": False,
|
| 57 |
+
"most_similar_id": None,
|
| 58 |
+
"is_new": True
|
| 59 |
}
|
| 60 |
|
| 61 |
# Get recent opportunities with embeddings
|
|
|
|
| 76 |
most_similar_id = None
|
| 77 |
|
| 78 |
for opp in recent:
|
| 79 |
+
if opp.embedding is not None and len(opp.embedding) > 0:
|
| 80 |
similarity = self.cosine_similarity(embedding, opp.embedding)
|
| 81 |
if similarity > max_similarity:
|
| 82 |
max_similarity = similarity
|