Skip to content

Commit

Permalink
Merge branch 'main' into docs-dm2
Browse files Browse the repository at this point in the history
  • Loading branch information
m-vdb committed Sep 21, 2023
2 parents 26fef3e + 3f51e5e commit 141480e
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 10 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/continous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -906,7 +906,7 @@ jobs:
# Base MITIE image
BASE_MITIE_IMAGE_HASH=${{ hashFiles('docker/Dockerfile.base-mitie') }}
MAKEFILE_MITIE_HASH=${{ hashFiles('Makefile') }}
echo "base_mitie_image_hash=${BASE_MITIE_IMAGE_HASH:0:50}-${MAKEFILE_MITIE_HASH:0:50}" >> $GITHUB_OUTPUT
echo "base_mitie_image_hash=${BASE_MITIE_IMAGE_HASH}" >> $GITHUB_OUTPUT
BASE_IMAGE_MITIE_EXISTS=$((docker manifest inspect rasa/rasa:base-mitie-${BASE_MITIE_IMAGE_HASH:0:50}-${MAKEFILE_MITIE_HASH:0:50} &> /dev/null && echo true || echo false) || true)
echo "base_mitie_exists=${BASE_IMAGE_MITIE_EXISTS}" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -1095,8 +1095,6 @@ jobs:
IS_NEWEST_VERSION=${{ needs.build_docker_base_images_and_set_env.outputs.is_newest_version }}
docker buildx bake --set *.platform=linux/amd64,linux/arm64 -f docker/docker-bake.hcl ${{ matrix.image }} --push
docker buildx bake --set *.platform=linux/amd64 -f docker/docker-bake.hcl ${{ matrix.image }} --load
docker buildx bake --set *.platform=linux/arm64 -f docker/docker-bake.hcl ${{ matrix.image }} --load
# Tag the image as latest
if [[ "${IS_NEWEST_VERSION}" == "true" ]]; then
Expand All @@ -1107,9 +1105,11 @@ jobs:
fi
LATEST_TAG=$(echo $RELEASE_TAG | sed 's/'$IMAGE_TAG'/latest/g')
docker tag rasa/rasa:${RELEASE_TAG} rasa/rasa:${LATEST_TAG}
docker push rasa/rasa:${LATEST_TAG}
# This will not build the image from ground up, but will only tag the existing image with LATEST_TAG
IMAGE_TAG=${LATEST_TAG} docker buildx bake --set *.platform=linux/amd64,linux/arm64 -f docker/docker-bake.hcl ${{ matrix.image }}
# Push tagged image
IMAGE_TAG=${LATEST_TAG} docker buildx bake --set *.platform=linux/amd64,linux/arm64 -f docker/docker-bake.hcl ${{ matrix.image }} --push
fi
deploy:
Expand Down
4 changes: 4 additions & 0 deletions 3.7.0b1/main_plain/.config/rasa/global.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
metrics:
enabled: true
rasa_user_id: 003ff8fbd6e04031b5597b37356022d4
date: 2023-09-12 13:20:59.423434
1 change: 1 addition & 0 deletions changelog/12790.bugfix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fixed `KeyError` which resulted when `domain_responses` doesn't exist as a keyword argument while using a custom action dispatcher with nlg server.
1 change: 1 addition & 0 deletions changelog/1493.improvement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Telemetry data is only send for licensed users.
1 change: 0 additions & 1 deletion docs/docs/production/setting-up-ci-cd.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ jobs:
- name: Rasa Train and Test GitHub Action
uses: RasaHQ/rasa-train-test-gha@main
with:
requirements_file: requirements.txt
data_validate: true
rasa_train: true
cross_validation: true
Expand Down
2 changes: 1 addition & 1 deletion rasa/core/nlg/callback.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ async def generate(
**kwargs: Any,
) -> Dict[Text, Any]:
"""Retrieve a named response from the domain using an endpoint."""
domain_responses = kwargs.pop("domain_responses")
domain_responses = kwargs.pop("domain_responses", None)
response_id = self.fetch_response_id(
utter_action, tracker, output_channel, domain_responses
)
Expand Down
5 changes: 5 additions & 0 deletions rasa/telemetry.py
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,11 @@ def _send_event(
logger.debug("Skipping request to external service: telemetry key not set.")
return

if "license_hash" not in context:
# only send telemetry data for customers
logger.debug("Skipping telemetry reporting: no license hash found.")
return

headers = segment_request_header(write_key)

resp = requests.post(
Expand Down
22 changes: 20 additions & 2 deletions tests/test_telemetry.py
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,9 @@ def test_segment_gets_called(monkeypatch: MonkeyPatch):
with responses.RequestsMock() as rsps:
rsps.add(responses.POST, "https://api.segment.io/v1/track", json={})

telemetry._track("test event", {"foo": "bar"}, {"foobar": "baz"})
telemetry._track(
"test event", {"foo": "bar"}, {"foobar": "baz", "license_hash": "foobar"}
)

assert len(rsps.calls) == 1
r = rsps.calls[0]
Expand All @@ -274,11 +276,27 @@ def test_segment_does_not_raise_exception_on_failure(monkeypatch: MonkeyPatch):
rsps.add(responses.POST, "https://api.segment.io/v1/track", body="", status=505)

# this call should complete without throwing an exception
telemetry._track("test event", {"foo": "bar"}, {"foobar": "baz"})
telemetry._track(
"test event", {"foo": "bar"}, {"foobar": "baz", "license_hash": "foobar"}
)

assert rsps.assert_call_count("https://api.segment.io/v1/track", 1)


def test_segment_does_not_get_called_without_license(monkeypatch: MonkeyPatch):
monkeypatch.setenv("RASA_TELEMETRY_ENABLED", "true")
monkeypatch.setenv("RASA_TELEMETRY_WRITE_KEY", "foobar")
telemetry.initialize_telemetry()

with responses.RequestsMock(assert_all_requests_are_fired=False) as rsps:
rsps.add(responses.POST, "https://api.segment.io/v1/track", body="", status=505)

# this call should complete without throwing an exception
telemetry._track("test event", {"foo": "bar"}, {"foobar": "baz"})

assert rsps.assert_call_count("https://api.segment.io/v1/track", 0)


def test_environment_write_key_overwrites_key_file(monkeypatch: MonkeyPatch):
monkeypatch.setenv("RASA_TELEMETRY_WRITE_KEY", "foobar")
assert telemetry.telemetry_write_key() == "foobar"
Expand Down

0 comments on commit 141480e

Please sign in to comment.