Skip to content

Commit 346d324

Browse files
committed
Update code
1 parent 4dc3800 commit 346d324

File tree

6 files changed

+57
-51
lines changed

6 files changed

+57
-51
lines changed

backend/apps/ai/agent/tools/rag/retriever.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@
2121
class Retriever:
2222
"""A class for retrieving relevant text chunks for a RAG."""
2323

24-
SUPPORTED_ENTITY_TYPES = ("event", "project", "chapter", "committee", "message")
24+
SUPPORTED_ENTITY_TYPES = (
25+
"chapter",
26+
"committee",
27+
"event",
28+
"message",
29+
"project",
30+
)
2531

2632
def __init__(self, embedding_model: str = "text-embedding-3-small"):
2733
"""Initialize the Retriever.

backend/apps/ai/common/base/context_command.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def process_context_batch(self, entities: list[Model]) -> int:
3030

3131
if Context.update_data(
3232
content=full_content,
33-
content_object=entity,
33+
entity=entity,
3434
source=self.source_name(),
3535
):
3636
processed += 1

backend/apps/ai/models/context.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ def __str__(self):
4444
@staticmethod
4545
def update_data(
4646
content: str,
47-
content_object,
47+
entity,
4848
source: str = "",
4949
*,
5050
save: bool = True,
5151
) -> "Context":
5252
"""Create or update context for a given entity."""
53-
entity_type = ContentType.objects.get_for_model(content_object)
54-
entity_id = content_object.pk
53+
entity_type = ContentType.objects.get_for_model(entity)
54+
entity_id = entity.pk
5555

5656
try:
5757
context = Context.objects.get(entity_type=entity_type, entity_id=entity_id)

backend/tests/apps/ai/agent/tools/rag/retriever_test.py

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,11 @@ def test_get_source_name_with_name(self):
105105
):
106106
retriever = Retriever()
107107

108-
content_object = MagicMock()
109-
content_object.name = "Test Name"
110-
content_object.title = "Test Title"
108+
entity = MagicMock()
109+
entity.name = "Test Name"
110+
entity.title = "Test Title"
111111

112-
result = retriever.get_source_name(content_object)
112+
result = retriever.get_source_name(entity)
113113
assert result == "Test Name"
114114

115115
def test_get_source_name_with_title(self):
@@ -120,12 +120,12 @@ def test_get_source_name_with_title(self):
120120
):
121121
retriever = Retriever()
122122

123-
content_object = MagicMock()
124-
content_object.name = None
125-
content_object.title = "Test Title"
126-
content_object.login = "test_login"
123+
entity = MagicMock()
124+
entity.name = None
125+
entity.title = "Test Title"
126+
entity.login = "test_login"
127127

128-
result = retriever.get_source_name(content_object)
128+
result = retriever.get_source_name(entity)
129129
assert result == "Test Title"
130130

131131
def test_get_source_name_with_login(self):
@@ -136,13 +136,13 @@ def test_get_source_name_with_login(self):
136136
):
137137
retriever = Retriever()
138138

139-
content_object = MagicMock()
140-
content_object.name = None
141-
content_object.title = None
142-
content_object.login = "test_login"
143-
content_object.key = "test_key"
139+
entity = MagicMock()
140+
entity.name = None
141+
entity.title = None
142+
entity.login = "test_login"
143+
entity.key = "test_key"
144144

145-
result = retriever.get_source_name(content_object)
145+
result = retriever.get_source_name(entity)
146146
assert result == "test_login"
147147

148148
def test_get_source_name_fallback_to_str(self):
@@ -153,15 +153,15 @@ def test_get_source_name_fallback_to_str(self):
153153
):
154154
retriever = Retriever()
155155

156-
content_object = MagicMock()
157-
content_object.name = None
158-
content_object.title = None
159-
content_object.login = None
160-
content_object.key = None
161-
content_object.summary = None
162-
content_object.__str__ = MagicMock(return_value="String representation")
163-
164-
result = retriever.get_source_name(content_object)
156+
entity = MagicMock()
157+
entity.name = None
158+
entity.title = None
159+
entity.login = None
160+
entity.key = None
161+
entity.summary = None
162+
entity.__str__ = MagicMock(return_value="String representation")
163+
164+
result = retriever.get_source_name(entity)
165165
assert result == "String representation"
166166

167167
def test_get_additional_context_chapter(self):
@@ -172,21 +172,21 @@ def test_get_additional_context_chapter(self):
172172
):
173173
retriever = Retriever()
174174

175-
content_object = MagicMock()
176-
content_object.suggested_location = "New York"
177-
content_object.region = "North America"
178-
content_object.country = "USA"
179-
content_object.postal_code = "10001"
180-
content_object.currency = "USD"
181-
content_object.meetup_group = "OWASP NYC"
182-
content_object.tags = ["security", "web"]
183-
content_object.topics = ["OWASP Top 10"]
184-
content_object.leaders_raw = ["John Doe", "Jane Smith"]
185-
content_object.related_urls = ["https://example.com"]
186-
content_object.is_active = True
187-
content_object.url = "https://owasp.org/chapter"
188-
189-
result = retriever.get_additional_context(content_object, "chapter")
175+
chapter = MagicMock()
176+
chapter.suggested_location = "New York"
177+
chapter.region = "North America"
178+
chapter.country = "USA"
179+
chapter.postal_code = "10001"
180+
chapter.currency = "USD"
181+
chapter.meetup_group = "OWASP NYC"
182+
chapter.tags = ["security", "web"]
183+
chapter.topics = ["OWASP Top 10"]
184+
chapter.leaders_raw = ["John Doe", "Jane Smith"]
185+
chapter.related_urls = ["https://example.com"]
186+
chapter.is_active = True
187+
chapter.url = "https://owasp.org/chapter"
188+
189+
result = retriever.get_additional_context(chapter, "chapter")
190190

191191
expected_keys = [
192192
"location",
@@ -418,13 +418,13 @@ def test_extract_content_types_from_query_no_matches(self):
418418

419419
def test_supported_content_types(self):
420420
"""Test that supported content types are defined correctly."""
421-
assert Retriever.SUPPORTED_ENTITY_TYPES == (
422-
"event",
423-
"project",
421+
assert set(Retriever.SUPPORTED_ENTITY_TYPES) == {
424422
"chapter",
425423
"committee",
424+
"event",
426425
"message",
427-
)
426+
"project",
427+
}
428428

429429
@patch("apps.ai.agent.tools.rag.retriever.Chunk")
430430
def test_retrieve_with_app_label_content_types(self, mock_chunk):

backend/tests/apps/ai/common/base/context_command_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def test_process_context_batch_success(
113113
assert result == 1
114114
mock_context_class.update_data.assert_called_once_with(
115115
content="metadata content\n\nprose content",
116-
content_object=mock_entity,
116+
entity=mock_entity,
117117
source="owasp_test_entity",
118118
)
119119
mock_write.assert_called_once_with("Created context for test-key-123")
@@ -157,7 +157,7 @@ def test_process_context_batch_multiple_entities(
157157
calls = mock_context_class.update_data.call_args_list
158158
for i, call in enumerate(calls):
159159
_, kwargs = call
160-
assert kwargs["content_object"] == entities[i]
160+
assert kwargs["entity"] == entities[i]
161161
assert kwargs["content"] == "metadata content\n\nprose content"
162162
assert kwargs["source"] == "owasp_test_entity"
163163

backend/tests/apps/ai/management/commands/ai_update_committee_context_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ def test_process_context_batch_success(self, command, mock_committee):
166166
assert result == 1
167167
mock_context_class.update_data.assert_called_once_with(
168168
content="Metadata\n\nContent",
169-
content_object=mock_committee,
169+
entity=mock_committee,
170170
source="owasp_committee",
171171
)
172172
mock_write.assert_called_once_with("Created context for test-committee")

0 commit comments

Comments
 (0)