Add FreshRSS ingestion and rule filtering
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
[
|
||||
{
|
||||
"rule_id": "drop-low-content",
|
||||
"enabled": true,
|
||||
"stop_on_match": true,
|
||||
"conditions_all": [
|
||||
{ "field": "article.quality_flags.is_low_content", "op": "eq", "value": true }
|
||||
],
|
||||
"action": {
|
||||
"decision": "drop",
|
||||
"reason": "Extracted article quality is too low.",
|
||||
"labels": ["quality", "low-content"],
|
||||
"priority": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"rule_id": "review-truncated-content",
|
||||
"enabled": true,
|
||||
"stop_on_match": false,
|
||||
"conditions_all": [
|
||||
{ "field": "article.quality_flags.is_truncated", "op": "eq", "value": true }
|
||||
],
|
||||
"action": {
|
||||
"decision": "review",
|
||||
"reason": "Extracted article may be truncated.",
|
||||
"labels": ["quality", "truncated"],
|
||||
"priority": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"rule_id": "review-paywalled-content",
|
||||
"enabled": true,
|
||||
"stop_on_match": false,
|
||||
"conditions_all": [
|
||||
{ "field": "article.quality_flags.is_paywalled", "op": "eq", "value": true }
|
||||
],
|
||||
"action": {
|
||||
"decision": "review",
|
||||
"reason": "Article may be behind a paywall.",
|
||||
"labels": ["quality", "paywall"],
|
||||
"priority": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"rule_id": "drop-ephemeral-news",
|
||||
"enabled": true,
|
||||
"stop_on_match": true,
|
||||
"conditions_all": [
|
||||
{ "field": "summary.category", "op": "eq", "value": "资讯" },
|
||||
{ "field": "summary.worth_keeping", "op": "eq", "value": false }
|
||||
],
|
||||
"action": {
|
||||
"decision": "drop",
|
||||
"reason": "News-like content marked as not worth keeping.",
|
||||
"labels": ["summary", "ephemeral-news"],
|
||||
"priority": 90
|
||||
}
|
||||
},
|
||||
{
|
||||
"rule_id": "keep-worth-keeping-method",
|
||||
"enabled": true,
|
||||
"stop_on_match": false,
|
||||
"conditions_all": [
|
||||
{ "field": "summary.worth_keeping", "op": "eq", "value": true },
|
||||
{ "field": "summary.category", "op": "in", "value": ["方法论", "工具实践"] }
|
||||
],
|
||||
"action": {
|
||||
"decision": "keep",
|
||||
"reason": "Structured summary marked the content as worth keeping in a durable category.",
|
||||
"labels": ["summary", "durable"],
|
||||
"priority": 80
|
||||
}
|
||||
},
|
||||
{
|
||||
"rule_id": "keep-interest-topic",
|
||||
"enabled": true,
|
||||
"stop_on_match": false,
|
||||
"conditions_all": [
|
||||
{ "field": "summary.topics", "op": "overlap", "value": { "from_field": "context.interest_topics" } }
|
||||
],
|
||||
"action": {
|
||||
"decision": "keep",
|
||||
"reason": "Topics overlap with current interest profile.",
|
||||
"labels": ["interest", "topic-match"],
|
||||
"priority": 75
|
||||
}
|
||||
},
|
||||
{
|
||||
"rule_id": "review-worth-keeping-other",
|
||||
"enabled": true,
|
||||
"stop_on_match": false,
|
||||
"conditions_all": [
|
||||
{ "field": "summary.worth_keeping", "op": "eq", "value": true }
|
||||
],
|
||||
"action": {
|
||||
"decision": "review",
|
||||
"reason": "Worth-keeping signal is positive but no stronger keep rule matched.",
|
||||
"labels": ["summary", "needs-review"],
|
||||
"priority": 60
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user