update sync for executive dashboard ai insight

This commit is contained in:
Alberto-Audrix committed 2026-10-05 14:10:52 +07:00
1 parent 3fdd9b936f
commit 3f5db48b16
2 files changed
+21 -10

No files matched your search

+12 -3
View File
@@ -231,9 +231,10 @@ def build_ops_export(
if cycle is not None:
series_filter["cycle_id"] = cycle.pk
def series(model, serializer_class, order_fields=("date", "pk")):
def series(model, serializer_class, order_fields=("date", "pk"), override_filter=None):
fltr = override_filter if override_filter is not None else series_filter
qs = (
model.objects.filter(**series_filter)
model.objects.filter(**fltr)
.select_related("cycle", "cycle__kandang")
.order_by(*order_fields)
)
@@ -241,6 +242,12 @@ def build_ops_export(
qs, serializer_class, page=page, page_size=page_size, site_id=site.pk
)
ai_insight_filter = (
{"cycle_id": cycle.pk}
if cycle is not None
else {"cycle__kandang__site_id": site.pk}
)
return {
"exported_at": timezone.now().isoformat(),
"from": date_from.isoformat(),
@@ -256,7 +263,9 @@ def build_ops_export(
"feed_sacks": series(FeedSacks, FeedSacksSerializer),
"chicken_countings": series(ChickenCounting, ChickenCountingSerializer),
"chicken_weights": series(ChickenWeight, ChickenWeightSerializer),
"ai_insights": series(AIInsight, AIInsightSerializer),
"ai_insights": series(
AIInsight, AIInsightSerializer, override_filter=ai_insight_filter
),
},
}
+9 -7
View File
@@ -603,13 +603,15 @@ export const PageAiInsight: React.FC<PageAiInsightProps> = ({
}
const text = apiResult.insight_text ?? '';
const parsed =
apiResult.summary || apiResult.insight
? {
summary: apiResult.summary || '',
insight: apiResult.insight || '',
}
: parseAiResult(text);
let parsed: { summary: string; insight: string } | null = null;
if (apiResult.summary || apiResult.insight) {
parsed = {
summary: apiResult.summary || '',
insight: apiResult.insight || apiResult.insight_text || '',
};
} else {
parsed = parseAiResult(text);
}
if (!parsed || (!parsed.summary && !parsed.insight)) {
throw new Error('Respons AI tidak dapat diproses.');