Skip to content

Commit 7a17d27

Browse files
updates
1 parent 01a9ea1 commit 7a17d27

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

cookbook/knowledge/filters/filtering_with_conditions.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from agno.agent import Agent
2-
from agno.knowledge.filters import AND, EQ, GT, IN, LT, NOT, OR
2+
from agno.knowledge.filters import AND, EQ, IN, NOT
33
from agno.knowledge.knowledge import Knowledge
44
from agno.utils.media import (
55
SampleDataFileExtension,
@@ -72,21 +72,36 @@
7272

7373
# Step 2: Query the knowledge base with different filter combinations
7474
# ------------------------------------------------------------------------------
75-
na_sales = Agent(
75+
sales_agent = Agent(
7676
knowledge=knowledge,
7777
search_knowledge=True,
7878
)
7979

80-
na_sales.print_response(
80+
print("--------------------------------")
81+
print("Using IN operator")
82+
sales_agent.print_response(
8183
"Describe revenue performance for the region",
8284
# knowledge_filters=[{"region": "north_america", "data_type": "sales"}],
83-
knowledge_filters=[(IN("region", ["north_america"]))],
85+
knowledge_filters=[(IN("region", ["north_america", "europe"]))],
8486
markdown=True,
8587
)
8688

87-
na_sales.print_response(
89+
print("--------------------------------")
90+
print("Using NOT operator")
91+
sales_agent.print_response(
8892
"Describe revenue performance for the region",
8993
# knowledge_filters=[{"region": "north_america", "data_type": "sales"}],
9094
knowledge_filters=[NOT(IN("region", ["north_america"]))],
9195
markdown=True,
9296
)
97+
98+
print("--------------------------------")
99+
print("Using AND operator")
100+
sales_agent.print_response(
101+
"Describe revenue performance for the region",
102+
# knowledge_filters=[{"region": "north_america", "data_type": "sales"}],
103+
knowledge_filters=[
104+
AND(EQ("data_type", "sales"), NOT(EQ("region", "north_america")))
105+
],
106+
markdown=True,
107+
)

libs/agno/agno/knowledge/knowledge.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1477,8 +1477,7 @@ def validate_filters(self, filters: Optional[Any]) -> Tuple[Dict[str, Any], List
14771477
else:
14781478
invalid_keys.append(key)
14791479
log_debug(f"Invalid filter key: {key} - not present in knowledge base")
1480-
elif isinstance(filters, list):
1481-
print("FILTERS ARE A LIST")
1480+
14821481
return valid_filters, invalid_keys
14831482

14841483
def add_filters(self, metadata: Dict[str, Any]) -> None:

0 commit comments

Comments
 (0)