dc6079821b
Docs Tests / Check for file changes (push) Has been cancelled
Docs Tests / Test Documentation (push) Has been cancelled
Docs Tests / Documentation Linting Checks (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.10, test-performance) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.10, test-policies) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.8, test-cli) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.8, test-core-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.8, test-full-model-training) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.8, test-nlu-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.8, test-nlu-predictors) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.8, test-other-unit-tests) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.8, test-performance) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.8, test-policies) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.9, test-cli) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.9, test-core-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.9, test-full-model-training) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.9, test-nlu-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.9, test-nlu-predictors) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.9, test-other-unit-tests) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.9, test-performance) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.9, test-policies) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.10, test-cli) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.10, test-core-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.10, test-full-model-training) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.10, test-nlu-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.10, test-nlu-predictors) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.10, test-other-unit-tests) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.10, test-performance) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.10, test-policies) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.8, test-cli) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.8, test-core-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.8, test-full-model-training) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.8, test-nlu-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.8, test-nlu-predictors) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.8, test-other-unit-tests) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.8, test-performance) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.8, test-policies) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.9, test-cli) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.9, test-core-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.9, test-full-model-training) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.9, test-nlu-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.9, test-nlu-predictors) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.9, test-other-unit-tests) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.9, test-performance) (push) Has been cancelled
Continuous Integration / Run Tests (windows-2022, 3.9, test-policies) (push) Has been cancelled
Continuous Integration / Run Flaky Tests (ubuntu-24.04, 3.10) (push) Has been cancelled
Continuous Integration / Run Flaky Tests (ubuntu-24.04, 3.8) (push) Has been cancelled
Continuous Integration / Run Flaky Tests (ubuntu-24.04, 3.9) (push) Has been cancelled
Continuous Integration / Run Flaky Tests (windows-2022, 3.10) (push) Has been cancelled
Continuous Integration / Run Flaky Tests (windows-2022, 3.8) (push) Has been cancelled
Continuous Integration / Run Flaky Tests (windows-2022, 3.9) (push) Has been cancelled
Continuous Integration / Check for file changes (push) Has been cancelled
Continuous Integration / Wait for docs tests (push) Has been cancelled
Continuous Integration / Code Quality (push) Has been cancelled
Continuous Integration / Check for changelog (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.10, test-cli) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.10, test-core-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.10, test-full-model-training) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.10, test-nlu-featurizers) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.10, test-nlu-predictors) (push) Has been cancelled
Continuous Integration / Run Tests (ubuntu-24.04, 3.10, test-other-unit-tests) (push) Has been cancelled
Continuous Integration / Upload coverage reports to codeclimate (push) Has been cancelled
Continuous Integration / Run Non-Sequential Integration Tests (push) Has been cancelled
Continuous Integration / Run Broker Integration Tests (push) Has been cancelled
Continuous Integration / Run Sequential Integration Tests (push) Has been cancelled
Continuous Integration / Build Docker base images and setup environment (push) Has been cancelled
Continuous Integration / Build Docker (default) (push) Has been cancelled
Continuous Integration / Build Docker (full) (push) Has been cancelled
Continuous Integration / Build Docker (mitie-en) (push) Has been cancelled
Continuous Integration / Build Docker (spacy-de) (push) Has been cancelled
Continuous Integration / Build Docker (spacy-en) (push) Has been cancelled
Continuous Integration / Build Docker (spacy-it) (push) Has been cancelled
Continuous Integration / Deploy to PyPI (push) Has been cancelled
Continuous Integration / Notify Slack & Publish Release Notes (push) Has been cancelled
Publish Documentation / Evaluate release tag (push) Has been cancelled
Publish Documentation / Prebuild Docs (push) Has been cancelled
Publish Documentation / Preview Docs (push) Has been cancelled
Publish Documentation / Check for file changes (push) Has been cancelled
Publish Documentation / Publish Docs (push) Has been cancelled
Automatic PR Merger / mergepal (push) Has been cancelled
CI Github Actions / Run Tests (push) Has been cancelled
Semgrep / Semgrep Workflow Security Scan (push) Has been cancelled
120 lines
3.8 KiB
Python
120 lines
3.8 KiB
Python
from rasa.engine.caching import TrainingCache
|
|
from rasa.engine.graph import ExecutionContext, GraphNode, GraphSchema, SchemaNode
|
|
from rasa.engine.storage.storage import ModelStorage
|
|
from rasa.engine.training import fingerprinting
|
|
from rasa.engine.training.components import PrecomputedValueProvider
|
|
from rasa.engine.training.hooks import TrainingHook
|
|
from tests.engine.graph_components_test_classes import CacheableComponent, CacheableText
|
|
|
|
|
|
def test_training_hook_saves_to_cache(
|
|
default_model_storage: ModelStorage, temp_cache: TrainingCache
|
|
):
|
|
# We need an execution context so the hook can determine the class of the graph
|
|
# component
|
|
execution_context = ExecutionContext(
|
|
GraphSchema(
|
|
{
|
|
"hello": SchemaNode(
|
|
needs={},
|
|
constructor_name="create",
|
|
fn="run",
|
|
config={},
|
|
uses=CacheableComponent,
|
|
)
|
|
}
|
|
),
|
|
"1",
|
|
)
|
|
node = GraphNode(
|
|
node_name="hello",
|
|
component_class=CacheableComponent,
|
|
constructor_name="create",
|
|
component_config={},
|
|
fn_name="run",
|
|
inputs={"suffix": "input_node"},
|
|
eager=False,
|
|
model_storage=default_model_storage,
|
|
resource=None,
|
|
execution_context=execution_context,
|
|
hooks=[
|
|
TrainingHook(
|
|
cache=temp_cache,
|
|
model_storage=default_model_storage,
|
|
pruned_schema=execution_context.graph_schema,
|
|
)
|
|
],
|
|
)
|
|
|
|
node(("input_node", "Joe"))
|
|
|
|
# This is the same key that the hook will generate
|
|
fingerprint_key = fingerprinting.calculate_fingerprint_key(
|
|
graph_component_class=CacheableComponent,
|
|
config={"prefix": "Hello "},
|
|
inputs={"suffix": "Joe"},
|
|
)
|
|
|
|
output_fingerprint_key = temp_cache.get_cached_output_fingerprint(fingerprint_key)
|
|
assert output_fingerprint_key
|
|
|
|
cached_result = temp_cache.get_cached_result(
|
|
output_fingerprint_key=output_fingerprint_key,
|
|
model_storage=default_model_storage,
|
|
node_name="hello",
|
|
)
|
|
assert isinstance(cached_result, CacheableText)
|
|
assert cached_result.text == "Hello Joe"
|
|
|
|
|
|
def test_training_hook_does_not_cache_cached_component(
|
|
default_model_storage: ModelStorage, temp_cache: TrainingCache
|
|
):
|
|
# We need an execution context so the hook can determine the class of the graph
|
|
# component
|
|
execution_context = ExecutionContext(
|
|
GraphSchema(
|
|
{
|
|
"hello": SchemaNode(
|
|
needs={},
|
|
constructor_name="create",
|
|
fn="run",
|
|
config={},
|
|
uses=PrecomputedValueProvider,
|
|
)
|
|
}
|
|
),
|
|
"1",
|
|
)
|
|
node = GraphNode(
|
|
node_name="hello",
|
|
component_class=PrecomputedValueProvider,
|
|
constructor_name="create",
|
|
component_config={"output": CacheableText("hi")},
|
|
fn_name="get_value",
|
|
inputs={},
|
|
eager=False,
|
|
model_storage=default_model_storage,
|
|
resource=None,
|
|
execution_context=execution_context,
|
|
hooks=[
|
|
TrainingHook(
|
|
cache=temp_cache,
|
|
model_storage=default_model_storage,
|
|
pruned_schema=execution_context.graph_schema,
|
|
)
|
|
],
|
|
)
|
|
|
|
node(("input_node", "Joe"))
|
|
|
|
# This is the same key that the hook will generate
|
|
fingerprint_key = fingerprinting.calculate_fingerprint_key(
|
|
graph_component_class=PrecomputedValueProvider,
|
|
config={"output": CacheableText("hi")},
|
|
inputs={},
|
|
)
|
|
|
|
# The hook should not cache the output of a PrecomputedValueProvider
|
|
assert not temp_cache.get_cached_output_fingerprint(fingerprint_key)
|