Skip to content

Commit 4af8d4c

Browse files
Fix prompt tests for schema_constraints and Pydantic V2 deprecation
1 parent 09f4300 commit 4af8d4c

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

lexical-graph/src/graphrag_toolkit/lexical_graph/indexing/extract/stages/schema_filter_stage.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from llama_index.core.schema import BaseNode, TransformComponent
88
from llama_index.core.bridge.pydantic import Field
9+
from pydantic import ConfigDict
910

1011
from graphrag_toolkit.lexical_graph.indexing.extract.extraction_stage import ExtractionStage
1112
from graphrag_toolkit.lexical_graph.indexing.extract.extraction_schema import ExtractionSchema
@@ -20,8 +21,7 @@ class SchemaFilter(TransformComponent):
2021

2122
extraction_schema: ExtractionSchema = Field(description='Extraction schema for filtering')
2223

23-
class Config:
24-
arbitrary_types_allowed = True
24+
model_config = ConfigDict(arbitrary_types_allowed=True)
2525

2626
def __call__(self, nodes: Sequence[BaseNode], **kwargs) -> Sequence[BaseNode]:
2727
if not self.extraction_schema.strict:

lexical-graph/src/graphrag_toolkit/lexical_graph/indexing/extract/topic_extractor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,4 +234,4 @@ def blocking_llm_call():
234234
(topics, garbage) = parse_extracted_topics(raw_response)
235235
else:
236236
(topics, garbage) = parse_extracted_topics(raw_response)
237-
return (topics, garbage)
237+
return (topics, garbage)

lexical-graph/tests/unit/indexing/test_prompts.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,19 +131,23 @@ def test_extract_topics_substitution(self):
131131
text = "GraphRAG is a framework."
132132
preferred_topics = "Technology, Software"
133133
preferred_entity_classifications = "Company, Product"
134+
schema_constraints = "Focus on Technology entities."
134135

135136
formatted_prompt = EXTRACT_TOPICS_PROMPT.format(
136137
text=text,
137138
preferred_topics=preferred_topics,
138-
preferred_entity_classifications=preferred_entity_classifications
139+
preferred_entity_classifications=preferred_entity_classifications,
140+
schema_constraints=schema_constraints
139141
)
140142

141143
assert text in formatted_prompt
142144
assert preferred_topics in formatted_prompt
143145
assert preferred_entity_classifications in formatted_prompt
146+
assert schema_constraints in formatted_prompt
144147
assert '{text}' not in formatted_prompt
145148
assert '{preferred_topics}' not in formatted_prompt
146149
assert '{preferred_entity_classifications}' not in formatted_prompt
150+
assert '{schema_constraints}' not in formatted_prompt
147151

148152
def test_domain_entity_classifications_substitution(self):
149153
"""Verify DOMAIN_ENTITY_CLASSIFICATIONS_PROMPT variable substitution works correctly."""
@@ -250,7 +254,7 @@ def test_prompts_have_no_unintended_placeholders(self):
250254
# Define expected placeholders for each prompt
251255
expected_placeholders = {
252256
'EXTRACT_PROPOSITIONS_PROMPT': ['{source_info}', '{text}'],
253-
'EXTRACT_TOPICS_PROMPT': ['{text}', '{preferred_topics}', '{preferred_entity_classifications}'],
257+
'EXTRACT_TOPICS_PROMPT': ['{text}', '{preferred_topics}', '{preferred_entity_classifications}', '{schema_constraints}'],
254258
'DOMAIN_ENTITY_CLASSIFICATIONS_PROMPT': ['{text_chunks}', '{existing_classifications}'],
255259
'RANK_ENTITY_CLASSIFICATIONS_PROMPT': ['{classifications}']
256260
}

0 commit comments

Comments
 (0)