From 9152620b85ffad4e893f28617530a5fe0c081d66 Mon Sep 17 00:00:00 2001 From: lievan Date: Sun, 12 Jan 2025 16:14:33 -0500 Subject: [PATCH 01/15] tests --- .../_evaluators/ragas/answer_relevancy.py | 151 ++++++++++++++++++ ddtrace/llmobs/_evaluators/ragas/base.py | 12 ++ ddtrace/llmobs/_evaluators/ragas/models.py | 5 + ddtrace/llmobs/_evaluators/runner.py | 2 + 4 files changed, 170 insertions(+) create mode 100644 ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py diff --git a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py new file mode 100644 index 00000000000..bdd9dc6da2d --- /dev/null +++ b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py @@ -0,0 +1,151 @@ +import math +from typing import Optional +from typing import Tuple +from typing import Union + +from ddtrace.internal.logger import get_logger +from ddtrace.llmobs._constants import EVALUATION_SPAN_METADATA +from ddtrace.llmobs._evaluators.ragas.base import BaseRagasEvaluator +from ddtrace.llmobs._evaluators.ragas.base import _get_ml_app_for_ragas_trace + + +logger = get_logger(__name__) + + +class RagasAnswerRelevancyEvaluator(BaseRagasEvaluator): + """A class used by EvaluatorRunner to conduct ragas answer relevancy evaluations + on LLM Observability span events. The job of an Evaluator is to take a span and + submit evaluation metrics based on the span's attributes. + """ + + LABEL = "ragas_answer_relevancy" + METRIC_TYPE = "score" + + def __init__(self, llmobs_service): + """ + Initialize an evaluator that uses the ragas library to generate a context precision score on finished LLM spans. + + answer relevancy focuses on assessing how pertinent the generated answer is to a given question. + A lower score is assigned to answers that are incomplete or contain redundant information and higher scores + indicate better relevancy. This metric is computed using the question, contexts, and answer. + + For more information, see https://docs.ragas.io/en/latest/concepts/metrics/available_metrics/answer_relevance/ + + The `ragas.metrics.answer_relevancy` instance is used for answer relevancy scores. + If there is no llm attribute set on this instance, it will be set to the + default `llm_factory()` from ragas which uses openai. + If there is no embedding attribute set on this instance, it will be to to the + default `embedding_factory()` from ragas which uses openai + + :param llmobs_service: An instance of the LLM Observability service used for tracing the evaluation and + submitting evaluation metrics. + + Raises: NotImplementedError if the ragas library is not found or if ragas version is not supported. + """ + super().__init__(llmobs_service) + self.ragas_answer_relevancy_instance = self._get_answer_relevancy_instance() + self.answer_relevancy_output_parser = self.mini_ragas.RagasoutputParser( + pydantic_object=self.mini_ragas.AnswerRelevanceClassification + ) + + def _get_answer_relevancy_instance(self): + """ + This helper function ensures the answer relevancy instance used in + ragas evaluator is updated with the latest ragas answer relevancy instance + instance AND has an non-null llm + """ + if self.mini_ragas.answer_relevancy is None: + return None + ragas_answer_relevancy_instance = self.mini_ragas.answer_relevancy + if not ragas_answer_relevancy_instance.llm: + ragas_answer_relevancy_instance.llm = self.mini_ragas.llm_factory() + if not ragas_answer_relevancy_instance.embeddings: + ragas_answer_relevancy_instance.embeddings = self.mini_ragas.embedding_factory() + return ragas_answer_relevancy_instance + + def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]]: + """ + Performs a answer relevancy evaluation on an llm span event, returning either + - answer relevancy score (float) OR failure reason (str) + - evaluation metadata (dict) + If the ragas answer relevancy instance does not have `llm` set, we set `llm` using the `llm_factory()` + method from ragas which currently defaults to openai's gpt-4o-turbo. + """ + self.ragas_answer_relevancy_instance = self._get_answer_relevancy_instance() + if not self.ragas_answer_relevancy_instance: + return "fail_answer_relevancy_is_none", {} + + evaluation_metadata = {} # type: dict[str, Union[str, dict, list]] + trace_metadata = {} # type: dict[str, Union[str, dict, list]] + + # initialize data we annotate for tracing ragas + score, question, answer, answer_classifications = ( + math.nan, + None, + None, + None, + ) + + with self.llmobs_service.workflow( + "dd-ragas.answer_relevancy", ml_app=_get_ml_app_for_ragas_trace(span_event) + ) as ragas_ar_workflow: + try: + evaluation_metadata[EVALUATION_SPAN_METADATA] = self.llmobs_service.export_span(span=ragas_ar_workflow) + + cp_inputs = self._extract_evaluation_inputs_from_span(span_event) + if cp_inputs is None: + logger.debug( + "Failed to extract question and contexts from " + "span sampled for `ragas_answer_relevancy` evaluation" + ) + return "fail_extract_answer_relevancy_inputs", evaluation_metadata + + question = cp_inputs["question"] + contexts = cp_inputs["contexts"] + answer = cp_inputs["answer"] + + prompt = self.ragas_answer_relevancy_instance.question_generation.format( + answer=answer, + context="\n".join(contexts), + ) + + # 'strictness' is a parameter that can be set to control the number of generations + trace_metadata["strictness"] = self.ragas_answer_relevancy_instance.strictness + result = self.ragas_answer_relevancy_instance.llm.generate_text( + prompt, n=self.ragas_answer_relevancy_instance.strictness + ) + + try: + answers = [self.answer_relevancy_output_parser.parse(res.text) for res in result.generations[0]] + answers = [answer for answer in answers if answer is not None] + except Exception as e: + logger.debug("Failed to parse answer relevancy output: %s", e) + return "fail_parse_answer_relevancy_output", evaluation_metadata + + gen_questions = [answer.question for answer in answers] + answer_classifications = [ + {"question": answer.question, "noncommittal": answer.noncommittal} for answer in answers + ] + trace_metadata["answer_classifications"] = answer_classifications + if all(q == "" for q in gen_questions): + logger.warning("Invalid JSON response. Expected dictionary with key 'question'") + return "fail_parse_answer_relevancy_output", evaluation_metadata + + # calculate cosine similarity between the question and generated questions + with self.llmobs_service.workflow("dd-ragas.calculate_similarity") as ragas_cs_workflow: + cosine_sim = self.ragas_answer_relevancy_instance.calculate_similarity(question, gen_questions) + self.llmobs_service.annotate( + span=ragas_cs_workflow, + input_data={"question": question, "generated_questions": gen_questions}, + output_data=cosine_sim.mean(), + ) + + score = cosine_sim.mean() * int(not any(answer.noncommittal for answer in answers)) + return score, evaluation_metadata + finally: + self.llmobs_service.annotate( + span=ragas_ar_workflow, + input_data=span_event, + output_data=score, + metadata=trace_metadata, + ) diff --git a/ddtrace/llmobs/_evaluators/ragas/base.py b/ddtrace/llmobs/_evaluators/ragas/base.py index 23aa4cd3caa..fdb2d8891e9 100644 --- a/ddtrace/llmobs/_evaluators/ragas/base.py +++ b/ddtrace/llmobs/_evaluators/ragas/base.py @@ -56,6 +56,14 @@ def __init__(self): self.get_segmenter = get_segmenter + from ragas.metrics import answer_relevancy + + self.answer_relevancy = answer_relevancy + + from ragas.embeddings import embedding_factory + + self.embedding_factory = embedding_factory + from ddtrace.llmobs._evaluators.ragas.models import StatementFaithfulnessAnswers self.StatementFaithfulnessAnswers = StatementFaithfulnessAnswers @@ -64,6 +72,10 @@ def __init__(self): self.StatementsAnswers = StatementsAnswers + from ddtrace.llmobs._evaluators.ragas.models import AnswerRelevanceClassification + + self.AnswerRelevanceClassification = AnswerRelevanceClassification + def _get_ml_app_for_ragas_trace(span_event: dict) -> str: """ diff --git a/ddtrace/llmobs/_evaluators/ragas/models.py b/ddtrace/llmobs/_evaluators/ragas/models.py index 5ee4d433c33..80b76213d8e 100644 --- a/ddtrace/llmobs/_evaluators/ragas/models.py +++ b/ddtrace/llmobs/_evaluators/ragas/models.py @@ -11,6 +11,11 @@ """ +class AnswerRelevanceClassification(BaseModel): + question: str + noncommittal: int + + class StatementFaithfulnessAnswer(BaseModel): statement: str = Field(..., description="the original statement, word-by-word") reason: str = Field(..., description="the reason of the verdict") diff --git a/ddtrace/llmobs/_evaluators/runner.py b/ddtrace/llmobs/_evaluators/runner.py index 3d26998f1b4..45139bd2ca0 100644 --- a/ddtrace/llmobs/_evaluators/runner.py +++ b/ddtrace/llmobs/_evaluators/runner.py @@ -8,6 +8,7 @@ from ddtrace.internal.periodic import PeriodicService from ddtrace.internal.telemetry import telemetry_writer from ddtrace.internal.telemetry.constants import TELEMETRY_APM_PRODUCT +from ddtrace.llmobs._evaluators.ragas.answer_relevancy import RagasAnswerRelevancyEvaluator from ddtrace.llmobs._evaluators.ragas.faithfulness import RagasFaithfulnessEvaluator from ddtrace.llmobs._evaluators.sampler import EvaluatorRunnerSampler @@ -17,6 +18,7 @@ SUPPORTED_EVALUATORS = { RagasFaithfulnessEvaluator.LABEL: RagasFaithfulnessEvaluator, + RagasAnswerRelevancyEvaluator.LABEL: RagasAnswerRelevancyEvaluator, } From 636c24175613af8ad73b820c64810b4a705d7bde Mon Sep 17 00:00:00 2001 From: lievan Date: Sun, 12 Jan 2025 16:28:43 -0500 Subject: [PATCH 02/15] tests --- .../_evaluators/ragas/answer_relevancy.py | 12 +- tests/llmobs/_utils.py | 58 ++ tests/llmobs/conftest.py | 9 + ....emits_traces_and_evaluations_on_exit.yaml | 595 ++++++++++++++++++ ...t_ragas_answer_relevancy_emits_traces.yaml | 552 ++++++++++++++++ ...s_answer_relevancy_submits_evaluation.yaml | 558 ++++++++++++++++ ...s_evaluation_on_span_with_custom_keys.yaml | 552 ++++++++++++++++ ...ion_on_span_with_question_in_messages.yaml | 552 ++++++++++++++++ tests/llmobs/test_llmobs_ragas_evaluators.py | 221 +++++++ 9 files changed, 3103 insertions(+), 6 deletions(-) create mode 100644 tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml create mode 100644 tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml create mode 100644 tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml create mode 100644 tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml create mode 100644 tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml diff --git a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py index bdd9dc6da2d..8f4cbfb47bd 100644 --- a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py +++ b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py @@ -44,8 +44,8 @@ def __init__(self, llmobs_service): """ super().__init__(llmobs_service) self.ragas_answer_relevancy_instance = self._get_answer_relevancy_instance() - self.answer_relevancy_output_parser = self.mini_ragas.RagasoutputParser( - pydantic_object=self.mini_ragas.AnswerRelevanceClassification + self.answer_relevancy_output_parser = self.ragas_dependencies.RagasoutputParser( + pydantic_object=self.ragas_dependencies.AnswerRelevanceClassification ) def _get_answer_relevancy_instance(self): @@ -54,13 +54,13 @@ def _get_answer_relevancy_instance(self): ragas evaluator is updated with the latest ragas answer relevancy instance instance AND has an non-null llm """ - if self.mini_ragas.answer_relevancy is None: + if self.ragas_dependencies.answer_relevancy is None: return None - ragas_answer_relevancy_instance = self.mini_ragas.answer_relevancy + ragas_answer_relevancy_instance = self.ragas_dependencies.answer_relevancy if not ragas_answer_relevancy_instance.llm: - ragas_answer_relevancy_instance.llm = self.mini_ragas.llm_factory() + ragas_answer_relevancy_instance.llm = self.ragas_dependencies.llm_factory() if not ragas_answer_relevancy_instance.embeddings: - ragas_answer_relevancy_instance.embeddings = self.mini_ragas.embedding_factory() + ragas_answer_relevancy_instance.embeddings = self.ragas_dependencies.embedding_factory() return ragas_answer_relevancy_instance def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]]: diff --git a/tests/llmobs/_utils.py b/tests/llmobs/_utils.py index 4e60a8f3996..5a39ddf67bc 100644 --- a/tests/llmobs/_utils.py +++ b/tests/llmobs/_utils.py @@ -712,3 +712,61 @@ def _expected_ragas_faithfulness_spans(ragas_inputs=None): "tags": expected_ragas_trace_tags(), }, ] + + +def _expected_ragas_answer_relevancy_spans(ragas_inputs=None): + if not ragas_inputs: + ragas_inputs = default_ragas_inputs + return [ + { + "trace_id": mock.ANY, + "span_id": mock.ANY, + "parent_id": "undefined", + "name": "dd-ragas.answer_relevancy", + "start_ns": mock.ANY, + "duration": mock.ANY, + "status": "ok", + "meta": { + "span.kind": "workflow", + "input": {"value": mock.ANY}, + "output": {"value": mock.ANY}, + "metadata": {"answer_classifications": mock.ANY, "strictness": mock.ANY}, + }, + "metrics": {}, + "tags": expected_ragas_trace_tags(), + }, + { + "trace_id": mock.ANY, + "span_id": mock.ANY, + "parent_id": mock.ANY, + "name": "dd-ragas.extract_evaluation_inputs_from_span", + "start_ns": mock.ANY, + "duration": mock.ANY, + "status": "ok", + "meta": { + "span.kind": "workflow", + "input": {"value": mock.ANY}, + "output": {"value": mock.ANY}, + "metadata": {}, + }, + "metrics": {}, + "tags": expected_ragas_trace_tags(), + }, + { + "trace_id": mock.ANY, + "span_id": mock.ANY, + "parent_id": mock.ANY, + "name": "dd-ragas.calculate_similarity", + "start_ns": mock.ANY, + "duration": mock.ANY, + "status": "ok", + "meta": { + "span.kind": "workflow", + "input": {"value": mock.ANY}, + "output": {"value": mock.ANY}, + "metadata": {}, + }, + "metrics": {}, + "tags": expected_ragas_trace_tags(), + }, + ] diff --git a/tests/llmobs/conftest.py b/tests/llmobs/conftest.py index 5a63b7e2b8f..2345189d72f 100644 --- a/tests/llmobs/conftest.py +++ b/tests/llmobs/conftest.py @@ -150,6 +150,15 @@ def reset_ragas_faithfulness_llm(): ragas.metrics.faithfulness.llm = previous_llm +@pytest.fixture +def reset_ragas_answer_relevancy_llm(): + import ragas + + previous_llm = ragas.metrics.answer_relevancy.llm + yield + ragas.metrics.answer_relevancy.llm = previous_llm + + @pytest.fixture def mock_ragas_evaluator(mock_llmobs_eval_metric_writer, ragas): patcher = mock.patch("ddtrace.llmobs._evaluators.ragas.faithfulness.RagasFaithfulnessEvaluator.evaluate") diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml new file mode 100644 index 00000000000..e857435d05e --- /dev/null +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml @@ -0,0 +1,595 @@ +interactions: +- request: + body: '{"messages": [{"content": "Generate a question for the given answer and + Identify if answer is noncommittal. Give noncommittal as 1 if the answer is + noncommittal and 0 if the answer is committal. A noncommittal answer is one + that is evasive, vague, or ambiguous. For example, \"I don''t know\" or \"I''m + not sure\" are noncommittal answers\n\nThe output should be a well-formatted + JSON instance that conforms to the JSON schema below.\n\nAs an example, for + the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": + \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, + \"required\": [\"foo\"]}\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted + instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} + is not well-formatted.\n\nHere is the output JSON schema:\n```\n{\"type\": \"object\", + \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, + \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": + [\"question\", \"noncommittal\"]}\n```\n\nDo not return any preamble or explanations, + return only a pure JSON string surrounded by triple backticks (```).\n\nExamples:\n\nanswer: + \"Albert Einstein was born in Germany.\"\ncontext: \"Albert Einstein was a German-born + theoretical physicist who is widely held to be one of the greatest and most + influential scientists of all time\"\noutput: ```{\"question\": \"Where was + Albert Einstein born?\", \"noncommittal\": 0}```\n\nanswer: \"It can change + its skin color based on the temperature of its environment.\"\ncontext: \"A + recent scientific study has discovered a new species of frog in the Amazon rainforest + that has the unique ability to change its skin color based on the temperature + of its environment.\"\noutput: ```{\"question\": \"What unique ability does + the newly discovered species of frog have?\", \"noncommittal\": 0}```\n\nanswer: + \"Everest\"\ncontext: \"The tallest mountain on Earth, measured from sea level, + is a renowned peak located in the Himalayas.\"\noutput: ```{\"question\": \"What + is the tallest mountain on Earth?\", \"noncommittal\": 0}```\n\nanswer: \"I + don''t know about the groundbreaking feature of the smartphone invented in + 2023 as am unaware of information beyond 2022. \"\ncontext: \"In 2023, a groundbreaking + invention was announced: a smartphone with a battery life of one month, revolutionizing + the way people use mobile technology.\"\noutput: ```{\"question\": \"What was + the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": + 1}```\n\nYour actual task:\n\nanswer: \"The capital of France is Paris\"\ncontext: + \"The capital of France is Paris.\"\noutput: \n", "role": "user"}], "model": + "gpt-4o-mini", "n": 3, "stream": false, "temperature": 0.3}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '2795' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//7FQ9b9swEN31K4ibrcJW7cjxUmTox1KgS9ChLiSaOllMKB5DnoI2hv97 + QVm2ZKQFureLhvfund498nhIhABdwUaAaiSr1pn0jl7a1f1z9vnTU252t8u7LnxZ39PL0n18TzCL + Cto9oOKz6o2i1hlkTfZEK4+SMXZd5G9v8kWeZaueaKlCE2V7x+mS0lZbnWbzbJnO83SxHtQNaYUB + NuJbIoQQh/4bfdoKf8BGzGdnpMUQ5B5hcykSAjyZiIAMQQeWlmE2kooso+2tl2V52MJThyE638JG + bOFrI1noILhBoaTTLI2gWnzw0ip8t4WZ2IIlq6htNbM0UTU/lmU5/YfHugsyzmk7Ywb8eDFtaO88 + 7cLAX/BaWx2awqMMZKPBwOQgmYhfJbH4n8SQRPbvJZEI8b1fmO5qXnCeWscF0yPa2PAmGxYGxj2d + sLcDycTSTPD1mbjqV1TIUpswiReUVA1Wo3TcT9lVmibE9Ahfu/ld79Pk2u7/pv1IKIWOsSqcx0qr + 64nHMo/xGftT2SXl3jAE9M9aYcEafTyJCmvZmdNFgvAzMLZFre0evfP6dJtqV+QZVrncrZYKkmPy + CwAA//8DAIA9R+1vBQAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 90103a814d728c95-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:27:05 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=aJ4R0kkpaxiEMdCstkLewG5Nh0tBCqgc5F.29qHH6B4-1736717225-1.0.1.1-Ji0eU618Eq.5WZHXNzzybdmhfWtdnTdOm9TqeAUiCIBI7dkUKlDlfxIOGQtWT0zEg2EaFnva77ZlB.cFugQopQ; + path=/; expires=Sun, 12-Jan-25 21:57:05 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=kbuyalAPIltxRTIUg4u9ZlzDKAzkaUj449PNLBx.riM-1736717225715-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - datadog-staging + openai-processing-ms: + - '423' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999320' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_6e4dbefc369fcecaeaa7e00a35495642 + status: + code: 200 + message: OK +- request: + body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '114' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + AAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 90103a85d8dd8c06-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:27:06 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=VXzk3nk1CWzL7FGPI6EmhWWoD6Bc4NzmNshBDQ7dDys-1736717226-1.0.1.1-F6sq6nVBxq6yBwdb__3rCk3syjhFWivs9_W4UgVMTYOcquO7JaIFab00k3g95dG3rhP7qebeUHKii76BrujPyQ; + path=/; expires=Sun, 12-Jan-25 21:57:06 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=0MM4NuBm9A7mYDVlk8AvMMc3tyw0Q_rQxThzsgOYT1I-1736717226095-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '76' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-7d694cd6b8-pzrbf + x-envoy-upstream-service-time: + - '59' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999993' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_7abaddda3978c44c0da7c855c38572a0 + status: + code: 200 + message: OK +- request: + body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30], [3923, 374, 279, 6864, + 315, 9822, 30], [3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '192' + content-type: + - application/json + cookie: + - __cf_bm=VXzk3nk1CWzL7FGPI6EmhWWoD6Bc4NzmNshBDQ7dDys-1736717226-1.0.1.1-F6sq6nVBxq6yBwdb__3rCk3syjhFWivs9_W4UgVMTYOcquO7JaIFab00k3g95dG3rhP7qebeUHKii76BrujPyQ; + _cfuvid=0MM4NuBm9A7mYDVlk8AvMMc3tyw0Q_rQxThzsgOYT1I-1736717226095-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 90103a873b588c06-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:27:06 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '65' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-69b798f78c-5qp7w + x-envoy-upstream-service-time: + - '51' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999979' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_4993ab461c0f927c270fcb176565579c + status: + code: 200 + message: OK +- request: + body: '{"data": {"type": "evaluation_metric", "attributes": {"metrics": [{"join_on": + {"span": {"span_id": "17310091005419816873", "trace_id": "678433a90000000084bd9979a4509bd5"}}, + "label": "ragas_answer_relevancy", "metric_type": "score", "timestamp_ms": 1736717226392, + "score_value": 0.9999999999999996, "ml_app": "unnamed-ml-app", "tags": ["ddtrace.version:2.15.0.dev357+gf627038ff", + "ml_app:unnamed-ml-app"], "metadata": {"_dd.evaluation_span": {"span_id": "4512147893829326381", + "trace_id": "678433a900000000c6761fa019162c11"}}}]}}}' + headers: + Content-Type: + - application/json + DD-API-KEY: + - XXXXXX + method: POST + uri: https://api.datad0g.com/api/intake/llm-obs/v2/eval-metric + response: + body: + string: '{"data":{"id":"ec14c58b-cdce-4b70-8a10-26b2979ad114","type":"evaluation_metric","attributes":{"metrics":[{"id":"_jnkBtWsLV","join_on":{"span":{"trace_id":"678433a90000000084bd9979a4509bd5","span_id":"17310091005419816873"}},"timestamp_ms":1736717226392,"ml_app":"unnamed-ml-app","metric_type":"score","label":"ragas_answer_relevancy","score_value":0.9999999999999996,"tags":["ddtrace.version:2.15.0.dev357+gf627038ff","ml_app:unnamed-ml-app"],"metadata":{"_dd.evaluation_span":{"span_id":"4512147893829326381","trace_id":"678433a900000000c6761fa019162c11"}}}]}}}' + headers: + content-length: + - '562' + content-security-policy: + - frame-ancestors 'self'; report-uri https://logs.browser-intake-datadoghq.com/api/v2/logs?dd-api-key=pub293163a918901030b79492fe1ab424cf&dd-evp-origin=content-security-policy&ddsource=csp-report&ddtags=site%3Adatad0g.com + content-type: + - application/vnd.api+json + date: + - Sun, 12 Jan 2025 21:27:06 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + status: + code: 202 + message: Accepted +version: 1 diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml new file mode 100644 index 00000000000..292dc14efef --- /dev/null +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml @@ -0,0 +1,552 @@ +interactions: +- request: + body: '{"messages": [{"content": "Generate a question for the given answer and + Identify if answer is noncommittal. Give noncommittal as 1 if the answer is + noncommittal and 0 if the answer is committal. A noncommittal answer is one + that is evasive, vague, or ambiguous. For example, \"I don''t know\" or \"I''m + not sure\" are noncommittal answers\n\nThe output should be a well-formatted + JSON instance that conforms to the JSON schema below.\n\nAs an example, for + the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": + \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, + \"required\": [\"foo\"]}\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted + instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} + is not well-formatted.\n\nHere is the output JSON schema:\n```\n{\"type\": \"object\", + \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, + \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": + [\"question\", \"noncommittal\"]}\n```\n\nDo not return any preamble or explanations, + return only a pure JSON string surrounded by triple backticks (```).\n\nExamples:\n\nanswer: + \"Albert Einstein was born in Germany.\"\ncontext: \"Albert Einstein was a German-born + theoretical physicist who is widely held to be one of the greatest and most + influential scientists of all time\"\noutput: ```{\"question\": \"Where was + Albert Einstein born?\", \"noncommittal\": 0}```\n\nanswer: \"It can change + its skin color based on the temperature of its environment.\"\ncontext: \"A + recent scientific study has discovered a new species of frog in the Amazon rainforest + that has the unique ability to change its skin color based on the temperature + of its environment.\"\noutput: ```{\"question\": \"What unique ability does + the newly discovered species of frog have?\", \"noncommittal\": 0}```\n\nanswer: + \"Everest\"\ncontext: \"The tallest mountain on Earth, measured from sea level, + is a renowned peak located in the Himalayas.\"\noutput: ```{\"question\": \"What + is the tallest mountain on Earth?\", \"noncommittal\": 0}```\n\nanswer: \"I + don''t know about the groundbreaking feature of the smartphone invented in + 2023 as am unaware of information beyond 2022. \"\ncontext: \"In 2023, a groundbreaking + invention was announced: a smartphone with a battery life of one month, revolutionizing + the way people use mobile technology.\"\noutput: ```{\"question\": \"What was + the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": + 1}```\n\nYour actual task:\n\nanswer: \"The capital of France is Paris\"\ncontext: + \"The capital of France is Paris.\"\noutput: \n", "role": "user"}], "model": + "gpt-4o-mini", "n": 3, "stream": false, "temperature": 0.3}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '2795' + content-type: + - application/json + cookie: + - __cf_bm=oheO3zYPQqtzwCH36KcPYJSqTpJpQM2OWOWoKE2milY-1736717033-1.0.1.1-92pgnb67DubLHPDeJdheg8VlBIePfu48tfVPpY7wLqWglq9IGkPBUgc2yD9Aa_oyjkgXiUp1L4mo_SJ.HJ.5tw; + _cfuvid=XXBvi8ZnbakvKR5akrqMruvFPwz2ZOOI5i1D8OerBSw-1736717033837-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5N6hJS9PNBa2Qdg/cEAIkghLXmSRmHdvYEwRU/Xfk + NG1SLUjc4ZLDe/Mmb549PkaMgawhZyA6TqK3Kr43P5/ahD/ivbb79w9u83H3mts32bvsbf8Iq6Aw + hy8o6KJ6IUxvFZI0+kwLh5wwdE2yzS5LsmSzH4ne1KiCrLUUb03cSy3jdJ1u43UWJ/tJ3Rkp0EPO + PkWMMXYcv8GnrvE75Gy9uiA9es9bhPxaxBg4owIC3HvpiWuC1UwKown1aL2qqmMBXwf0wXkBOSvg + Q8eJSc+oQya4lcQVMw17cFwLfFXAihWgjRam7yURV0G1PlVVtfyHw2bwPMypB6Um/HQ1rUxrnTn4 + ib/ijdTSd6VD7o0OBj0ZC9FC/CyJ5H8SUxLpv5dExNjncWGGm3nBOtNbKsk8oQ4Nd+m0MDDv6YK9 + m0gyxNUC31+Im35ljcSl8ot4QXDRYT1L5/3kQy3Nglge4XM3v+t9nlzq9m/az4QQaAnr0jqspbid + eC5zGJ6xP5VdUx4Ng0f3TQosSaILJ1Fjwwd1vkjgf3jCvmykbtFZJ8+3qbFllmKd8cPLrYDoFP0C + AAD//wMAIiTjKW8FAAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 9010386439b78cc5-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:25:39 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - datadog-staging + openai-processing-ms: + - '345' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999320' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_e93edf076778fd73ab59e1807e6855ef + status: + code: 200 + message: OK +- request: + body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '114' + content-type: + - application/json + cookie: + - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; + _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + AAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 9010386878634252-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:25:39 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '61' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-5fb4cf648b-nvpv6 + x-envoy-upstream-service-time: + - '49' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999993' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_5e0dd0e1f86dd0822595f13a7ea92bf5 + status: + code: 200 + message: OK +- request: + body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30], [3923, 374, 279, 6864, + 315, 9822, 30], [3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '192' + content-type: + - application/json + cookie: + - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; + _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + AAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 90103869b9fb4252-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:25:39 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '108' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-69b798f78c-smdzw + x-envoy-upstream-service-time: + - '62' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999979' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_5a88f88b23cfb416b78889556c5fa089 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml new file mode 100644 index 00000000000..3c94c3b5957 --- /dev/null +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml @@ -0,0 +1,558 @@ +interactions: +- request: + body: '{"messages": [{"content": "Generate a question for the given answer and + Identify if answer is noncommittal. Give noncommittal as 1 if the answer is + noncommittal and 0 if the answer is committal. A noncommittal answer is one + that is evasive, vague, or ambiguous. For example, \"I don''t know\" or \"I''m + not sure\" are noncommittal answers\n\nThe output should be a well-formatted + JSON instance that conforms to the JSON schema below.\n\nAs an example, for + the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": + \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, + \"required\": [\"foo\"]}\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted + instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} + is not well-formatted.\n\nHere is the output JSON schema:\n```\n{\"type\": \"object\", + \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, + \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": + [\"question\", \"noncommittal\"]}\n```\n\nDo not return any preamble or explanations, + return only a pure JSON string surrounded by triple backticks (```).\n\nExamples:\n\nanswer: + \"Albert Einstein was born in Germany.\"\ncontext: \"Albert Einstein was a German-born + theoretical physicist who is widely held to be one of the greatest and most + influential scientists of all time\"\noutput: ```{\"question\": \"Where was + Albert Einstein born?\", \"noncommittal\": 0}```\n\nanswer: \"It can change + its skin color based on the temperature of its environment.\"\ncontext: \"A + recent scientific study has discovered a new species of frog in the Amazon rainforest + that has the unique ability to change its skin color based on the temperature + of its environment.\"\noutput: ```{\"question\": \"What unique ability does + the newly discovered species of frog have?\", \"noncommittal\": 0}```\n\nanswer: + \"Everest\"\ncontext: \"The tallest mountain on Earth, measured from sea level, + is a renowned peak located in the Himalayas.\"\noutput: ```{\"question\": \"What + is the tallest mountain on Earth?\", \"noncommittal\": 0}```\n\nanswer: \"I + don''t know about the groundbreaking feature of the smartphone invented in + 2023 as am unaware of information beyond 2022. \"\ncontext: \"In 2023, a groundbreaking + invention was announced: a smartphone with a battery life of one month, revolutionizing + the way people use mobile technology.\"\noutput: ```{\"question\": \"What was + the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": + 1}```\n\nYour actual task:\n\nanswer: \"The capital of France is Paris\"\ncontext: + \"The capital of France is Paris.\"\noutput: \n", "role": "user"}], "model": + "gpt-4o-mini", "n": 3, "stream": false, "temperature": 0.3}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '2795' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA+xUPW/bMBDd9SuIm63Ckp3I8VJ0SdE16MdQFxJNniSmFEmTp6aN4f9e0JYtGWmA + 7u2i4b17p3ePPO4TxkBJWDMQLSfROZ2+s8/q+eFht+PN/erjk9zlT48fPmd3728kfoJZVNjtIwo6 + q94I2zmNpKw50cIjJ4xds2JxW2TFfLE4Ep2VqKOscZQubdopo9J8ni/TeZFmq0HdWiUwwJp9TRhj + bH/8Rp9G4k9Ys/nsjHQYAm8Q1pcixsBbHRHgIahA3BDMRlJYQ2iO1quq2m9g12OIzjewZhv40nJi + KjBqkQnuFHHNbM3uPTcC325gxjZgrBG26xQR11E1P1RVNf2Hx7oPPM5peq0H/HAxrW3jvN2Ggb/g + tTIqtKVHHqyJBgNZB8lE/CKJ7H8SQxL5v5dEwti348L0V/OC87ZzVJL9jiY2vM2HhYFxTyfs3UCS + Ja4n+OpMXPUrJRJXOkziBcFFi3KUjvvJe6nshJge4Us3f+p9mlyZ5m/aj4QQ6Ahl6TxKJa4nHss8 + xmfstbJLykfDEND/UAJLUujjSUisea9PFwnCr0DYlbUyDXrn1ek21a4scpQF394sBSSH5DcAAAD/ + /wMAdUXwsG8FAAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 901035cf0cd15e7d-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:23:53 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=oheO3zYPQqtzwCH36KcPYJSqTpJpQM2OWOWoKE2milY-1736717033-1.0.1.1-92pgnb67DubLHPDeJdheg8VlBIePfu48tfVPpY7wLqWglq9IGkPBUgc2yD9Aa_oyjkgXiUp1L4mo_SJ.HJ.5tw; + path=/; expires=Sun, 12-Jan-25 21:53:53 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=XXBvi8ZnbakvKR5akrqMruvFPwz2ZOOI5i1D8OerBSw-1736717033837-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - datadog-staging + openai-processing-ms: + - '611' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999320' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_f56aea9903630bd134bc8065bab7e998 + status: + code: 200 + message: OK +- request: + body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '114' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + AAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 901035d6dfc6de99-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:23:54 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; + path=/; expires=Sun, 12-Jan-25 21:53:54 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '40' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-7b5bffd4c4-d7r9z + x-envoy-upstream-service-time: + - '31' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999993' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_a47eb6fba25ad422740aa4ec47a8fa88 + status: + code: 200 + message: OK +- request: + body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30], [3923, 374, 279, 6864, + 315, 9822, 30], [3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '192' + content-type: + - application/json + cookie: + - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; + _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + AAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 901035d8ae98de99-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:23:54 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '51' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-75cd6879cf-k9fl5 + x-envoy-upstream-service-time: + - '33' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999979' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_b971413950fced2c35232103e7abb6ca + status: + code: 200 + message: OK +version: 1 diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml new file mode 100644 index 00000000000..36fad874d9c --- /dev/null +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml @@ -0,0 +1,552 @@ +interactions: +- request: + body: '{"messages": [{"content": "Generate a question for the given answer and + Identify if answer is noncommittal. Give noncommittal as 1 if the answer is + noncommittal and 0 if the answer is committal. A noncommittal answer is one + that is evasive, vague, or ambiguous. For example, \"I don''t know\" or \"I''m + not sure\" are noncommittal answers\n\nThe output should be a well-formatted + JSON instance that conforms to the JSON schema below.\n\nAs an example, for + the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": + \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, + \"required\": [\"foo\"]}\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted + instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} + is not well-formatted.\n\nHere is the output JSON schema:\n```\n{\"type\": \"object\", + \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, + \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": + [\"question\", \"noncommittal\"]}\n```\n\nDo not return any preamble or explanations, + return only a pure JSON string surrounded by triple backticks (```).\n\nExamples:\n\nanswer: + \"Albert Einstein was born in Germany.\"\ncontext: \"Albert Einstein was a German-born + theoretical physicist who is widely held to be one of the greatest and most + influential scientists of all time\"\noutput: ```{\"question\": \"Where was + Albert Einstein born?\", \"noncommittal\": 0}```\n\nanswer: \"It can change + its skin color based on the temperature of its environment.\"\ncontext: \"A + recent scientific study has discovered a new species of frog in the Amazon rainforest + that has the unique ability to change its skin color based on the temperature + of its environment.\"\noutput: ```{\"question\": \"What unique ability does + the newly discovered species of frog have?\", \"noncommittal\": 0}```\n\nanswer: + \"Everest\"\ncontext: \"The tallest mountain on Earth, measured from sea level, + is a renowned peak located in the Himalayas.\"\noutput: ```{\"question\": \"What + is the tallest mountain on Earth?\", \"noncommittal\": 0}```\n\nanswer: \"I + don''t know about the groundbreaking feature of the smartphone invented in + 2023 as am unaware of information beyond 2022. \"\ncontext: \"In 2023, a groundbreaking + invention was announced: a smartphone with a battery life of one month, revolutionizing + the way people use mobile technology.\"\noutput: ```{\"question\": \"What was + the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": + 1}```\n\nYour actual task:\n\nanswer: \"France is indeed part of europe\"\ncontext: + \"irrelevant\\nFrance is part of europe\"\noutput: \n", "role": "user"}], "model": + "gpt-4o-mini", "n": 3, "stream": false, "temperature": 0.3}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '2802' + content-type: + - application/json + cookie: + - __cf_bm=oheO3zYPQqtzwCH36KcPYJSqTpJpQM2OWOWoKE2milY-1736717033-1.0.1.1-92pgnb67DubLHPDeJdheg8VlBIePfu48tfVPpY7wLqWglq9IGkPBUgc2yD9Aa_oyjkgXiUp1L4mo_SJ.HJ.5tw; + _cfuvid=XXBvi8ZnbakvKR5akrqMruvFPwz2ZOOI5i1D8OerBSw-1736717033837-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5JyjNlqTKZQULRVy4gkRQ4jqT1MXxeG0HLVT9d+Q2 + 22S1i8QdLj7Mm/f05tnjY8QYyBZKBmLPvRiMSt7Qr0N2f/hy93k7jgOXZlR3Hx7evvvU5VsBcWDQ + 7oDCP7JeCRqMQi9JX2BhkXsMqqviJi9WRXqTn4GBWlSB1hufrCkZpJZJlmbrJC2S1WZi70kKdFCy + rxFjjB3PZ/CpW3yAkqXxY2VA53iPUF6bGANLKlSAOyed59pDPIOCtEd9tt40zbGC+xFdcF5BySr4 + 6NjWci2QGW49o469Hy0ZvK0gZhVo0oKGQXrPVSCkp6ZplvIWu9HxMKIelZrqp6tfRb2xtHMTfq13 + Uku3ry1yRzp4c54MRAvysxBW/0MoWfZPhRAx9u28IeOTUcFYGoyvPX1HHQTzbMoF5sVcoPkEevJc + LeqbTfyCXt2i51K5RbIguNhjO1PnheRjK2kBLG/vuZuXtC+TS93/jfwMCIHGY1sbi60UTyee2yyG + f+tPbdeUz4bBof0hBdZeog030WLHR3V5Q+B+Oo9D3UndozVWXh5SZ+oiw7bgu9drAdEp+g0AAP// + AwD+wDfGYAUAAA== + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 901035e50b915e7d-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:23:56 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - datadog-staging + openai-processing-ms: + - '514' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999318' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_d2108c182e13b44d548fef8d1e3ea123 + status: + code: 200 + message: OK +- request: + body: '{"input": [[3957, 48687, 961, 315, 38634, 30]], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '111' + content-type: + - application/json + cookie: + - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; + _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + //8DADOe/03eIAAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 901035e948f6de99-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:23:57 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '47' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-6f955f97bb-whgff + x-envoy-upstream-service-time: + - '34' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999994' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_413efdb4f38064b41c519f6fb533a35f + status: + code: 200 + message: OK +- request: + body: '{"input": [[3957, 9822, 961, 315, 4606, 30], [3957, 9822, 961, 315, 4606, + 30], [3957, 9822, 961, 315, 4606, 30]], "model": "text-embedding-ada-002", "encoding_format": + "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '177' + content-type: + - application/json + cookie: + - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; + _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + bdagraWm8TsPa9UjPAEAAP//AwDXFfCAhGEAAA== + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 901035eb2e80de99-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:23:57 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '98' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-6979b7df47-xp4zb + x-envoy-upstream-service-time: + - '28' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999982' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_cc2f4270d700b7c3df4bd933010301b0 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml new file mode 100644 index 00000000000..8b239daa49e --- /dev/null +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml @@ -0,0 +1,552 @@ +interactions: +- request: + body: '{"messages": [{"content": "Generate a question for the given answer and + Identify if answer is noncommittal. Give noncommittal as 1 if the answer is + noncommittal and 0 if the answer is committal. A noncommittal answer is one + that is evasive, vague, or ambiguous. For example, \"I don''t know\" or \"I''m + not sure\" are noncommittal answers\n\nThe output should be a well-formatted + JSON instance that conforms to the JSON schema below.\n\nAs an example, for + the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": + \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, + \"required\": [\"foo\"]}\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted + instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} + is not well-formatted.\n\nHere is the output JSON schema:\n```\n{\"type\": \"object\", + \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, + \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": + [\"question\", \"noncommittal\"]}\n```\n\nDo not return any preamble or explanations, + return only a pure JSON string surrounded by triple backticks (```).\n\nExamples:\n\nanswer: + \"Albert Einstein was born in Germany.\"\ncontext: \"Albert Einstein was a German-born + theoretical physicist who is widely held to be one of the greatest and most + influential scientists of all time\"\noutput: ```{\"question\": \"Where was + Albert Einstein born?\", \"noncommittal\": 0}```\n\nanswer: \"It can change + its skin color based on the temperature of its environment.\"\ncontext: \"A + recent scientific study has discovered a new species of frog in the Amazon rainforest + that has the unique ability to change its skin color based on the temperature + of its environment.\"\noutput: ```{\"question\": \"What unique ability does + the newly discovered species of frog have?\", \"noncommittal\": 0}```\n\nanswer: + \"Everest\"\ncontext: \"The tallest mountain on Earth, measured from sea level, + is a renowned peak located in the Himalayas.\"\noutput: ```{\"question\": \"What + is the tallest mountain on Earth?\", \"noncommittal\": 0}```\n\nanswer: \"I + don''t know about the groundbreaking feature of the smartphone invented in + 2023 as am unaware of information beyond 2022. \"\ncontext: \"In 2023, a groundbreaking + invention was announced: a smartphone with a battery life of one month, revolutionizing + the way people use mobile technology.\"\noutput: ```{\"question\": \"What was + the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": + 1}```\n\nYour actual task:\n\nanswer: \"The capital of France is Paris\"\ncontext: + \"The capital of France is Paris.\"\noutput: \n", "role": "user"}], "model": + "gpt-4o-mini", "n": 3, "stream": false, "temperature": 0.3}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '2795' + content-type: + - application/json + cookie: + - __cf_bm=oheO3zYPQqtzwCH36KcPYJSqTpJpQM2OWOWoKE2milY-1736717033-1.0.1.1-92pgnb67DubLHPDeJdheg8VlBIePfu48tfVPpY7wLqWglq9IGkPBUgc2yD9Aa_oyjkgXiUp1L4mo_SJ.HJ.5tw; + _cfuvid=XXBvi8ZnbakvKR5akrqMruvFPwz2ZOOI5i1D8OerBSw-1736717033837-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5NyjNls2SC+KyXFdIq5WgKHGdSTOLYxt7soJW/Xfk + Nm1SLUjc4ZLDe/Mmb5493idCADVQClCdZNU7nX6wu+eMP3/8lA8vj5vl7v5h90CPZAbnniQsosJu + nlHxWfVG2d5pZLLmRCuPkjF2XRY3t8WyyG5WR6K3Deoo2zpOVzbtyVCaZ/kqzYp0eTeqO0sKA5Ti + SyKEEPvjN/o0Df6AUmSLM9JjCHKLUF6KhABvdURAhkCBpWFYTKSyhtEcrdd1vV/D9wFDdL6GUqzh + qZMsKAjuUCjpiKUWthX3XhqF79ewEGsw1ijb98QsdVRlh7qu5//w2A5BxjnNoPWIHy6mtd06bzdh + 5C94S4ZCV3mUwZpoMLB1kMzEr5JY/k9iTCL/95JIhPh6XJjhal5w3vaOK7bf0MSGt/m4MDDt6Yx9 + N5JsWeoZfncmrvpVDbIkHWbxgpKqw2aSTvsph4bsjJgf4Ws3v+t9mpzM9m/aT4RS6BibynlsSF1P + PJV5jM/Yn8ouKR8NQ0D/QgorJvTxJBps5aBPFwnCz8DYVy2ZLXrn6XSbWlcVOTaF3LxdKUgOyS8A + AAD//wMAZ1iuFm8FAAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 901035daad4e5e7d-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:23:55 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - datadog-staging + openai-processing-ms: + - '382' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999320' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_e6b9cd7beea5ab0a385042f6c9fc897a + status: + code: 200 + message: OK +- request: + body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '114' + content-type: + - application/json + cookie: + - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; + _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + AAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 901035de19f3de99-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:23:55 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '217' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-5ccf9c4d57-dcggj + x-envoy-upstream-service-time: + - '177' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999993' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_2adf1dd4f78871bdaa46665b7eb7b542 + status: + code: 200 + message: OK +- request: + body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30], [3923, 374, 279, 6864, + 315, 9822, 30], [3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '192' + content-type: + - application/json + cookie: + - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; + _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.52.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.52.0 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.13 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 901035e18daede99-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sun, 12 Jan 2025 21:23:56 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-ada-002 + openai-organization: + - datadog-staging + openai-processing-ms: + - '94' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-5fb4cf648b-8htmg + x-envoy-upstream-service-time: + - '73' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999979' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_09bfa82ad1c1f2cc5c8c0475724be82d + status: + code: 200 + message: OK +version: 1 diff --git a/tests/llmobs/test_llmobs_ragas_evaluators.py b/tests/llmobs/test_llmobs_ragas_evaluators.py index 251b2642040..c848a5b05a6 100644 --- a/tests/llmobs/test_llmobs_ragas_evaluators.py +++ b/tests/llmobs/test_llmobs_ragas_evaluators.py @@ -3,9 +3,11 @@ import mock import pytest +from ddtrace.llmobs._evaluators.ragas.answer_relevancy import RagasAnswerRelevancyEvaluator from ddtrace.llmobs._evaluators.ragas.faithfulness import RagasFaithfulnessEvaluator from ddtrace.span import Span from tests.llmobs._utils import _expected_llmobs_llm_span_event +from tests.llmobs._utils import _expected_ragas_answer_relevancy_spans from tests.llmobs._utils import _expected_ragas_faithfulness_spans from tests.llmobs._utils import _llm_span_with_expected_ragas_inputs_in_messages from tests.llmobs._utils import _llm_span_with_expected_ragas_inputs_in_prompt @@ -238,3 +240,222 @@ def test_llmobs_with_faithfulness_emits_traces_and_evals_on_exit(mock_writer_log assert status == 0, err assert out == b"" assert err == b"" + + +def test_ragas_answer_relevancy_init(ragas, llmobs): + rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) + assert rar_evaluator.llmobs_service == llmobs + assert rar_evaluator.ragas_answer_relevancy_instance == ragas.metrics.answer_relevancy + assert rar_evaluator.ragas_answer_relevancy_instance.llm == ragas.llms.llm_factory() + assert ( + rar_evaluator.ragas_answer_relevancy_instance.embeddings.embeddings + == ragas.embeddings.embedding_factory().embeddings + ) + assert ( + rar_evaluator.ragas_answer_relevancy_instance.embeddings.run_config + == ragas.embeddings.embedding_factory().run_config + ) + + +def test_ragas_answer_relevancy_throws_if_dependencies_not_present(llmobs, mock_ragas_dependencies_not_present, ragas): + with pytest.raises(NotImplementedError, match="Failed to load dependencies for `ragas_answer_relevancy` evaluator"): + RagasAnswerRelevancyEvaluator(llmobs) + + +def test_ragas_answer_relevancy_returns_none_if_inputs_extraction_fails(ragas, mock_llmobs_submit_evaluation, llmobs): + rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) + failure_msg, _ = rar_evaluator.evaluate(_llm_span_without_io()) + assert failure_msg == "fail_extract_answer_relevancy_inputs" + assert rar_evaluator.llmobs_service.submit_evaluation.call_count == 0 + + +def test_ragas_answer_relevancy_has_modified_answer_relevancy_instance( + ragas, mock_llmobs_submit_evaluation, reset_ragas_answer_relevancy_llm, llmobs +): + """Context precision instance used in ragas evaluator should match the global ragas context precision instance""" + from ragas.llms import BaseRagasLLM + from ragas.metrics import answer_relevancy + + class FirstDummyLLM(BaseRagasLLM): + def __init__(self): + super().__init__() + + def generate_text(self) -> str: + return "dummy llm" + + def agenerate_text(self) -> str: + return "dummy llm" + + answer_relevancy.llm = FirstDummyLLM() + + rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) + + assert rar_evaluator.ragas_answer_relevancy_instance.llm.generate_text() == "dummy llm" + + class SecondDummyLLM(BaseRagasLLM): + def __init__(self): + super().__init__() + + def generate_text(self) -> str: + return "second dummy llm" + + def agenerate_text(self) -> str: + return "second dummy llm" + + answer_relevancy.llm = SecondDummyLLM() + + rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) + + assert rar_evaluator.ragas_answer_relevancy_instance.llm.generate_text() == "second dummy llm" + + +@pytest.mark.vcr_logs +def test_ragas_answer_relevancy_submits_evaluation(ragas, llmobs, mock_llmobs_submit_evaluation): + """Test that evaluation is submitted for a valid llm span where question is in the prompt variables""" + rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) + llm_span = _llm_span_with_expected_ragas_inputs_in_prompt() + rar_evaluator.run_and_submit_evaluation(llm_span) + rar_evaluator.llmobs_service.submit_evaluation.assert_has_calls( + [ + mock.call( + span_context={ + "span_id": llm_span.get("span_id"), + "trace_id": llm_span.get("trace_id"), + }, + label=RagasAnswerRelevancyEvaluator.LABEL, + metric_type=RagasAnswerRelevancyEvaluator.METRIC_TYPE, + value=mock.ANY, + metadata={ + "_dd.evaluation_span": {"span_id": mock.ANY, "trace_id": mock.ANY}, + }, + ) + ] + ) + + +@pytest.mark.vcr_logs +def test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages( + ragas, llmobs, mock_llmobs_submit_evaluation +): + """Test that evaluation is submitted for a valid llm span where the last message content is the question""" + rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) + llm_span = _llm_span_with_expected_ragas_inputs_in_messages() + rar_evaluator.run_and_submit_evaluation(llm_span) + rar_evaluator.llmobs_service.submit_evaluation.assert_has_calls( + [ + mock.call( + span_context={ + "span_id": llm_span.get("span_id"), + "trace_id": llm_span.get("trace_id"), + }, + label=RagasAnswerRelevancyEvaluator.LABEL, + metric_type=RagasAnswerRelevancyEvaluator.METRIC_TYPE, + value=mock.ANY, + metadata={ + "_dd.evaluation_span": {"span_id": mock.ANY, "trace_id": mock.ANY}, + }, + ) + ] + ) + + +@pytest.mark.vcr_logs +def test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys( + ragas, llmobs, mock_llmobs_submit_evaluation +): + """Test that evaluation is submitted for a valid llm span where the last message content is the question""" + rf_evaluator = RagasAnswerRelevancyEvaluator(llmobs) + llm_span = _expected_llmobs_llm_span_event( + Span("dummy"), + prompt={ + "variables": { + "user_input": "Is france part of europe?", + "context_2": "irrelevant", + "context_3": "France is part of europe", + }, + "_dd_context_variable_keys": ["context_2", "context_3"], + "_dd_query_variable_keys": ["user_input"], + }, + output_messages=[{"content": "France is indeed part of europe"}], + ) + rf_evaluator.run_and_submit_evaluation(llm_span) + rf_evaluator.llmobs_service.submit_evaluation.assert_has_calls( + [ + mock.call( + span_context={ + "span_id": llm_span.get("span_id"), + "trace_id": llm_span.get("trace_id"), + }, + label=RagasAnswerRelevancyEvaluator.LABEL, + metric_type=RagasAnswerRelevancyEvaluator.METRIC_TYPE, + value=mock.ANY, + metadata={ + "_dd.evaluation_span": {"span_id": mock.ANY, "trace_id": mock.ANY}, + }, + ) + ] + ) + + +@pytest.mark.vcr_logs +def test_ragas_answer_relevancy_emits_traces(ragas, llmobs, llmobs_events): + rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) + rar_evaluator.evaluate(_llm_span_with_expected_ragas_inputs_in_prompt()) + + ragas_spans = [event for event in llmobs_events if event["name"].startswith("dd-ragas.")] + ragas_spans = sorted(ragas_spans, key=lambda d: d["start_ns"]) + + assert len(ragas_spans) == 3 + # check name, io, span kinds match + assert ragas_spans == _expected_ragas_answer_relevancy_spans() + + # verify the trace structure + root_span = ragas_spans[0] + root_span_id = root_span["span_id"] + assert root_span["parent_id"] == "undefined" + assert root_span["meta"] is not None + + root_span_trace_id = root_span["trace_id"] + for child_span in ragas_spans[1:]: + assert child_span["trace_id"] == root_span_trace_id + assert child_span["parent_id"] == root_span_id + + +def test_llmobs_with_answer_relevancy_emits_traces_and_evals_on_exit(mock_writer_logs, run_python_code_in_subprocess): + env = os.environ.copy() + pypath = [os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))] + if "PYTHONPATH" in env: + pypath.append(env["PYTHONPATH"]) + env.update( + { + "PYTHONPATH": ":".join(pypath), + "OPENAI_API_KEY": os.getenv("OPENAI_API_KEY", "dummy-openai-api-key"), + "_DD_LLMOBS_EVALUATOR_INTERVAL": "5", + "_DD_LLMOBS_EVALUATORS": "ragas_answer_relevancy", + "DD_TRACE_ENABLED": "0", + } + ) + out, err, status, pid = run_python_code_in_subprocess( + """ +import os +import time +import atexit +import mock +from ddtrace.llmobs import LLMObs +from ddtrace.internal.utils.http import Response +from tests.llmobs._utils import _llm_span_with_expected_ragas_inputs_in_messages +from tests.llmobs._utils import logs_vcr +ctx = logs_vcr.use_cassette( + "tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml" +) +ctx.__enter__() +atexit.register(lambda: ctx.__exit__()) +with mock.patch("ddtrace.internal.writer.HTTPWriter._send_payload", return_value=Response(status=200, body="{}")): + LLMObs.enable(api_key="dummy-api-key", site="datad0g.com", ml_app="unnamed-ml-app", agentless_enabled=True) + LLMObs._instance._evaluator_runner.enqueue(_llm_span_with_expected_ragas_inputs_in_messages(), None) +""", + env=env, + ) + assert status == 0, err + assert out == b"" + assert err == b"" From 118038b4e282df40caadc8a98703ef483f3e3c46 Mon Sep 17 00:00:00 2001 From: lievan Date: Mon, 13 Jan 2025 13:00:50 -0500 Subject: [PATCH 03/15] address yuns formatting comments --- ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py index 8f4cbfb47bd..ea6ee333a18 100644 --- a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py +++ b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py @@ -79,12 +79,7 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] trace_metadata = {} # type: dict[str, Union[str, dict, list]] # initialize data we annotate for tracing ragas - score, question, answer, answer_classifications = ( - math.nan, - None, - None, - None, - ) + score, question, answer, answer_classifications = (math.nan, None, None, None) with self.llmobs_service.workflow( "dd-ragas.answer_relevancy", ml_app=_get_ml_app_for_ragas_trace(span_event) @@ -109,7 +104,6 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] context="\n".join(contexts), ) - # 'strictness' is a parameter that can be set to control the number of generations trace_metadata["strictness"] = self.ragas_answer_relevancy_instance.strictness result = self.ragas_answer_relevancy_instance.llm.generate_text( prompt, n=self.ragas_answer_relevancy_instance.strictness From b77cd800e878cae726912835dbc1a256cbfa8e2d Mon Sep 17 00:00:00 2001 From: lievan Date: Mon, 13 Jan 2025 13:04:46 -0500 Subject: [PATCH 04/15] address formatting comment --- .../llmobs/_evaluators/ragas/answer_relevancy.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py index ea6ee333a18..129bfefc19a 100644 --- a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py +++ b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py @@ -79,7 +79,7 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] trace_metadata = {} # type: dict[str, Union[str, dict, list]] # initialize data we annotate for tracing ragas - score, question, answer, answer_classifications = (math.nan, None, None, None) + score, answer_classifications = (math.nan, None) with self.llmobs_service.workflow( "dd-ragas.answer_relevancy", ml_app=_get_ml_app_for_ragas_trace(span_event) @@ -95,13 +95,9 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] ) return "fail_extract_answer_relevancy_inputs", evaluation_metadata - question = cp_inputs["question"] - contexts = cp_inputs["contexts"] - answer = cp_inputs["answer"] - prompt = self.ragas_answer_relevancy_instance.question_generation.format( - answer=answer, - context="\n".join(contexts), + answer=cp_inputs["answer"], + context="\n".join(cp_inputs["contexts"]), ) trace_metadata["strictness"] = self.ragas_answer_relevancy_instance.strictness @@ -127,10 +123,12 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] # calculate cosine similarity between the question and generated questions with self.llmobs_service.workflow("dd-ragas.calculate_similarity") as ragas_cs_workflow: - cosine_sim = self.ragas_answer_relevancy_instance.calculate_similarity(question, gen_questions) + cosine_sim = self.ragas_answer_relevancy_instance.calculate_similarity( + cp_inputs["question"], gen_questions + ) self.llmobs_service.annotate( span=ragas_cs_workflow, - input_data={"question": question, "generated_questions": gen_questions}, + input_data={"question": cp_inputs["question"], "generated_questions": gen_questions}, output_data=cosine_sim.mean(), ) From 5c3e68ee3f1201d5014ff77c64f0f772678252c0 Mon Sep 17 00:00:00 2001 From: lievan Date: Mon, 13 Jan 2025 13:12:54 -0500 Subject: [PATCH 05/15] fix cassettes and tests --- ...t_ragas_answer_relevancy_emits_traces.yaml | 99 +++--- ...s_answer_relevancy_submits_evaluation.yaml | 64 ++-- ...s_evaluation_on_span_with_custom_keys.yaml | 286 +++++++++--------- ...ion_on_span_with_question_in_messages.yaml | 62 ++-- tests/llmobs/test_llmobs_ragas_evaluators.py | 1 + 5 files changed, 256 insertions(+), 256 deletions(-) diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml index 292dc14efef..797d4d90948 100644 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml @@ -47,8 +47,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=oheO3zYPQqtzwCH36KcPYJSqTpJpQM2OWOWoKE2milY-1736717033-1.0.1.1-92pgnb67DubLHPDeJdheg8VlBIePfu48tfVPpY7wLqWglq9IGkPBUgc2yD9Aa_oyjkgXiUp1L4mo_SJ.HJ.5tw; - _cfuvid=XXBvi8ZnbakvKR5akrqMruvFPwz2ZOOI5i1D8OerBSw-1736717033837-0.0.1.1-604800000 + - __cf_bm=_hIzBnwWi.JmgnHbV_n6n7dTonHCjj4Hjj1dK_lP_HM-1736791930-1.0.1.1-FQtSV2lRxJoGA8CwSbN_LOqQ9_xMHDhef7wv.IE18f.FxorCmPhShV1B_f0t7xt0BrUQ2MCcm7DSe_PKqPO8Pw; + _cfuvid=NzMJ2rX6F12KiO6Xumt0fto5GVsgGTOMKaKxoHmB6T0-1736791930617-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -74,20 +74,20 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5N6hJS9PNBa2Qdg/cEAIkghLXmSRmHdvYEwRU/Xfk - NG1SLUjc4ZLDe/Mmb549PkaMgawhZyA6TqK3Kr43P5/ahD/ivbb79w9u83H3mts32bvsbf8Iq6Aw - hy8o6KJ6IUxvFZI0+kwLh5wwdE2yzS5LsmSzH4ne1KiCrLUUb03cSy3jdJ1u43UWJ/tJ3Rkp0EPO - PkWMMXYcv8GnrvE75Gy9uiA9es9bhPxaxBg4owIC3HvpiWuC1UwKown1aL2qqmMBXwf0wXkBOSvg - Q8eJSc+oQya4lcQVMw17cFwLfFXAihWgjRam7yURV0G1PlVVtfyHw2bwPMypB6Um/HQ1rUxrnTn4 - ib/ijdTSd6VD7o0OBj0ZC9FC/CyJ5H8SUxLpv5dExNjncWGGm3nBOtNbKsk8oQ4Nd+m0MDDv6YK9 - m0gyxNUC31+Im35ljcSl8ot4QXDRYT1L5/3kQy3Nglge4XM3v+t9nlzq9m/az4QQaAnr0jqspbid - eC5zGJ6xP5VdUx4Ng0f3TQosSaILJ1Fjwwd1vkjgf3jCvmykbtFZJ8+3qbFllmKd8cPLrYDoFP0C - AAD//wMAIiTjKW8FAAA= + H4sIAAAAAAAAAwAAAP//7FRNi9swEL37V4g5x8XxJuuNL6VQdqFQ6KEf0HqxFXlsq5UlVRqXLiH/ + vchxYodtoff24sN788ZvnjQ6RIyBrCFnIDpOorcqfmXfvN52dp+++/D2fvfRPmmViM9yeDAPm/ew + Cgqz/4qCzqoXwvRWIUmjT7RwyAlD13V2c5vt1rub7Uj0pkYVZK2leGPiXmoZp0m6iZMsXt9N6s5I + gR5y9iVijLHD+A0+dY0/IWfJ6oz06D1vEfJLEWPgjAoIcO+lJ64JVjMpjCbUo/Wqqg4FfB/QB+cF + 5KyATx0nJj2jDpngVhJXzDTs3nEt8GUBK1aANlqYvpdEXAVVcqyqavkPh83geZhTD0pN+PFiWpnW + OrP3E3/BG6ml70qH3BsdDHoyFqKF+FkS6/9JTEmk/14SEWOP48IMV/OCdaa3VJL5hjo0vE2nhYF5 + TxfsbiLJEFcL/O5MXPUrayQulV/EC4KLDutZOu8nH2ppFsTyCJ+7+V3v0+RSt3/TfiaEQEtYl9Zh + LcX1xHOZw/CM/anskvJoGDy6H1JgSRJdOIkaGz6o00UC/+QJ+7KRukVnnTzdpsaWWYp1xvfbjYDo + GP0CAAD//wMAZIrvRG8FAAA= headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 9010386439b78cc5-EWR + - 90175a79ca654255-EWR Connection: - keep-alive Content-Encoding: @@ -95,7 +95,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:25:39 GMT + - Mon, 13 Jan 2025 18:12:15 GMT Server: - cloudflare Transfer-Encoding: @@ -109,7 +109,7 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '345' + - '475' openai-version: - '2020-10-01' strict-transport-security: @@ -127,7 +127,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_e93edf076778fd73ab59e1807e6855ef + - req_191e28b7867a389fcedd5912aab8d244 status: code: 200 message: OK @@ -146,8 +146,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; - _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; + _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -286,7 +286,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 9010386878634252-EWR + - 90175a7dffabc411-EWR Connection: - keep-alive Content-Encoding: @@ -294,7 +294,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:25:39 GMT + - Mon, 13 Jan 2025 18:12:16 GMT Server: - cloudflare Transfer-Encoding: @@ -312,15 +312,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '61' + - '85' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-5fb4cf648b-nvpv6 + - envoy-router-bd9f9f96-dx9w9 x-envoy-upstream-service-time: - - '49' + - '59' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -334,7 +334,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_5e0dd0e1f86dd0822595f13a7ea92bf5 + - req_1e18512287cee692278094f7f3f3c59c status: code: 200 message: OK @@ -354,8 +354,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; - _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; + _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -381,9 +381,9 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAA+x6yxKyOrTm/DzFrj21q+QmWZwZAoJySVQQtUeCioCIXBIgp/rdu/Dv6q6e9qBH - /8QqNWIgK98t67/+459//q2T4pH2//7nP/++867/97/Nn91v/e3f//znv//HP//8889//V7/r5GP - Knnc7/kn+w3/fZl/7o/x3//8R/jfn/yfQfO1u8+W6MYhSMbL90bVyXQIC6JngSazdhTgH7pmFhlk + H4sIAAAAAAAAA+x6SxOyOpfuvH/Frj21q+QmWXwzBATlkqggao8EFQERuSRAuvq/d+HbdU6d6Zl1 + 1Z5YpUYMZOW5Zf3nv/311991UjzS/u9//fX3O+/6v/99/ux+629//+uv//i3v/7666///L3+PyMf + VfK43/NP9hv++zL/3B/j3//6S/g/n/zfQfO1u8+W6MYhSMbL90bVyXQIC6JngSazdhTgH7pmFhlk j5WBVqr2WwlYWIefcKr2gwCS2FzZurzkaPDK8w0CJb1QAfKRT5LmUiCC8iGu0n8Srppqhfz9xcd1 c5aL+k5LHbTVU8OC/H17Ezl6A1qPnsFcfkmL6T64OUSX3iVb8bsK+7XUULiMvc5wcXwlU3B7RCjz 6gfTd0GOeE9bAW3Hlz/Px+Di/SBZcH3WMdvibNn294Nkg7ZoCbEpWXpdOq4MFEnNiy7PkVN0Rc0y @@ -477,27 +477,26 @@ interactions: XNYpSL4S/fK3drx4Yg7n1eCRx/dhFFLe2AaKjeUFa4FOzS7k7xzsrEO0M7SyFR+KGYF172pmzHp8 gmlbg+8bO7YJrac5+dMlRefo/iK7x+ZTdLdzJv3OL4g1n190avLMID6fbmx7ubhFpypCB+9ikRI3 WPfhcEurCyRZWjNPutCkI8vAgqNeVDjJdd+Tue2XwPZqQOWrlRfjulebH54ya7kcQ4q+lwpmvGWb - VWyE8maxnn75PFXcnrfTtQKA8XZyycZ5fMyRuk0Ft/PHY7/8XsiFsoK7HfP/5fd0+lLUNT+ZmMvv - LReT7+CDZe0i5i0PKv/pedg06ycLdkOeTHJxMSBF2YZtRykIpy4sb2jOm6hmNWsubQ2xhjOWNoQc - Hkc+tg/Vh1RwJ7YO75k3eRHaqyU5fefnG3iykqlHKFYUY3WpHflgpNsB9OZZkbm+eCdI6y3aLk8u - +/lL+uPnmHY9M/xL6PF0GCdNk4yCmKoYFfwKhxjy9MGYj4u0HS6efdTUNBaJGddDyOzJ79B8Ponl - Od/jeaPtkStGlMz6Iemc6/WIAl3rcT3z1UR7oQLUSwvmphJLhnjTYrDVI2G72DwUPOnJHsnntcsO - ez0r+kypBXjfrg6zNmVsypdmhdG83mQz3TrON9+0gZeodn/Oc7nQXSX4huEbq5+pLIasuqaI5LQi - W00pwm4F6w5mfUjfu8Wj7Sxpv9CifuOT3VsJi5G0DgZCPjDzE+Pd/YAF9FvP78w/XXkuFTgngkBM - ZbtLeG8edM2JDj3mlnYt2OlUlehb3TBGa5MXfKefFYjdqMUTrXVPSo/vGNppHcz8yzk3jtcU5utT - UVsZreh5IcDVO0bMcW3ZHGe8gUMwmeR33jP7tRQBCRhFfHk12TOcbC3/3h90iLjKh/iQHZFwfwhY - S48ETa8+NND91ol0+Ww4GnMxkcAhqMFi5D7RuAurfEVpxZljhK1J02MfwTGwvT/3M+LomyNDlu5z - HnRoWXW7bGHWyxhmvfF1cbaAf39dAf/jv/0/dBSIfzsK/nYU/O0o+NtR8Lej4G9Hwd+Ogr8dBX87 - Cv52FPztKPjbUfD/paPgfwIAAP//7N0xCsJAAATAPq8I1wdCSv8icpDDwsQL5gQb/y6nQfxCZNpt - 9gPDLlFAFBAFRAFRQBQQBUQBUUAUEAVEAVFAFBAFRAFRQBQQBfsSBQNRQBQQBUQBUUAUEAVEAVFA - FBAFRAFRQBQQBUQBUUAUEAVEAVFAFBAFRAFRQBQQBUQBUUAUEAV/Lgqatj2+XxDmPKapwoCSHqX7 - UoEujrHr++FzlXBf4zmFwyYQwnLL81JOJV/Sda3UYFsvCCWXOP3mTa16Ni8AAAD//wMAK1HZr4Rh - AAA= + VWyE8maxnn75PFXcnrfTtQKA8XZyycZ5fMyRuk0Ft/PHY7/8XsiFsoK7HfP/8Xs6fSnqmp9MzOX3 + lovJd/DBsnYR85YHlf/0PGya9ZMFuyFPJrm4GJCibMO2oxSEUxeWNzTnTVSzmjWXtoZYwxlLG0IO + jyMf24fqQyq4E1uH98ybvAjt1ZKcvvPzDTxZydQjFCuKsbrUjnww0u0AevOsyFxfvBOk9RZtlyeX + /fwl/fFzTLueGf4l9Hg6jJOmSUZBTFWMCn6FQwx5+mDMx0XaDhfPPmpqGovEjOshZPbkd2g+n8Ty + nO/xvNH2yBUjSmb9kHTO9XpEga71uJ75aqK9UAHqpQVzU4klQ7xpMdjqkbBdbB4KnvRkj+Tz2mWH + vZ4VfabUArxvV4dZmzI25Uuzwmheb7KZbh3nm2/awEtUuz/nuVzorhJ8w/CN1c9UFkNWXVNEclqR + raYUYbeCdQezPqTv3eLRdpa0X2hRv/HJ7q2ExUhaBwMhH5j5ifHufsAC+q3nd+afrjyXCpwTQSCm + st0lvDcPuuZEhx5zS7sW7HSqSvStbhijtckLvtPPCsRu1OKJ1ronpcd3DO20Dmb+5Zwbx2sK8/Wp + qK2MVvS8EODqHSPmuLZsjjPewCGYTPI775n9WoqABIwivrya7BlOtpZ/7w86RFzlQ3zIjki4PwSs + pUeCplcfGuh+60S6fDYcjbmYSOAQ1GAxcp9o3IVVvqK04swxwtak6bGP4BjY3p/7GXH0zZEhS/c5 + Dzq0rLpdtjDrZQyz3vi6OFvA37+ugP/69/+PjgLxn46CfzoK/uko+Kej4J+Ogn86Cv7pKPjf3VHw + 3wAAAP//7N0xCsJAAATAPq8I1wdCSv8icpDDwsQL5gQb/y6nQfxAGpl2m/3AsEsUEAVEAVFAFBAF + RAFRQBQQBUQBUUAUEAVEAVFAFBAFRAFRQBQQBUQBUbCLKBiIAqKAKCAKiAKigCggCogCooAoIAqI + AqKAKCAKiAKigCggCogCooAoIAqIAqKAKCAKiAKigCj4c1HQtO3x/YIw5zFNFQaU9Cjdlwp0cYxd + 3w+fq4T7Gs8pHDaBEJZbnpdyKvmSrmulBtt6QSi5xOk3b2rVs3kBAAD//wMAK1HZr4RhAAA= headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90103869b9fb4252-EWR + - 90175a816c84c411-EWR Connection: - keep-alive Content-Encoding: @@ -505,7 +504,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:25:39 GMT + - Mon, 13 Jan 2025 18:12:16 GMT Server: - cloudflare Transfer-Encoding: @@ -523,15 +522,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '108' + - '78' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-69b798f78c-smdzw + - envoy-router-5fb4cf648b-8fmfn x-envoy-upstream-service-time: - - '62' + - '44' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -545,7 +544,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_5a88f88b23cfb416b78889556c5fa089 + - req_8d110196ee8262edfd5b569b609f1405 status: code: 200 message: OK diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml index 3c94c3b5957..bb2f4f4618c 100644 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml @@ -71,20 +71,20 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAA+xUPW/bMBDd9SuIm63Ckp3I8VJ0SdE16MdQFxJNniSmFEmTp6aN4f9e0JYtGWmA - 7u2i4b17p3ePPO4TxkBJWDMQLSfROZ2+s8/q+eFht+PN/erjk9zlT48fPmd3728kfoJZVNjtIwo6 - q94I2zmNpKw50cIjJ4xds2JxW2TFfLE4Ep2VqKOscZQubdopo9J8ni/TeZFmq0HdWiUwwJp9TRhj - bH/8Rp9G4k9Ys/nsjHQYAm8Q1pcixsBbHRHgIahA3BDMRlJYQ2iO1quq2m9g12OIzjewZhv40nJi - KjBqkQnuFHHNbM3uPTcC325gxjZgrBG26xQR11E1P1RVNf2Hx7oPPM5peq0H/HAxrW3jvN2Ggb/g - tTIqtKVHHqyJBgNZB8lE/CKJ7H8SQxL5v5dEwti348L0V/OC87ZzVJL9jiY2vM2HhYFxTyfs3UCS - Ja4n+OpMXPUrJRJXOkziBcFFi3KUjvvJe6nshJge4Us3f+p9mlyZ5m/aj4QQ6Ahl6TxKJa4nHss8 - xmfstbJLykfDEND/UAJLUujjSUisea9PFwnCr0DYlbUyDXrn1ek21a4scpQF394sBSSH5DcAAAD/ - /wMAdUXwsG8FAAA= + H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5NygJpdnmgmAFWnHlgLQEJa4zScw6tteerFiq/jty + mzapFiTucMnhvXmTN88e7yPGQDZQMBA9JzFYFb+zn25/PtzefX6/S56e7/2Hx7v7tJeK55t8Daug + MLvvKOiseiXMYBWSNPpEC4ecMHRN89ebfJtus+2RGEyDKsg6S/HaxIPUMs6SbB0neZzeTOreSIEe + CvY1Yoyx/fEbfOoGf0DBktUZGdB73iEUlyLGwBkVEODeS09cE6xmUhhNqI/W67rel/A4og/OSyhY + CV96Tkx6Rj0ywa0krphp2UfHtcC3JaxYCdpoYYZBEnEVVMmhruvlPxy2o+dhTj0qNeGHi2llOuvM + zk/8BW+llr6vHHJvdDDoyViIFuIXSaT/k5iSyP69JCLGvh0XZryaF6wzg6WKzAPq0HCTTQsD854u + 2O1EkiGuFvjNmbjqVzVIXCq/iBcEFz02s3TeTz420iyI5RG+dPO73qfJpe7+pv1MCIGWsKmsw0aK + 64nnMofhGftT2SXlo2Hw6J6kwIokunASDbZ8VKeLBP7ZEw5VK3WHzjp5uk2trfIMm5zv3qwFRIfo + FwAAAP//AwBvdHJJbwUAAA== headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 901035cf0cd15e7d-EWR + - 90175a57ef0b4255-EWR Connection: - keep-alive Content-Encoding: @@ -92,14 +92,14 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:23:53 GMT + - Mon, 13 Jan 2025 18:12:10 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=oheO3zYPQqtzwCH36KcPYJSqTpJpQM2OWOWoKE2milY-1736717033-1.0.1.1-92pgnb67DubLHPDeJdheg8VlBIePfu48tfVPpY7wLqWglq9IGkPBUgc2yD9Aa_oyjkgXiUp1L4mo_SJ.HJ.5tw; - path=/; expires=Sun, 12-Jan-25 21:53:53 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=_hIzBnwWi.JmgnHbV_n6n7dTonHCjj4Hjj1dK_lP_HM-1736791930-1.0.1.1-FQtSV2lRxJoGA8CwSbN_LOqQ9_xMHDhef7wv.IE18f.FxorCmPhShV1B_f0t7xt0BrUQ2MCcm7DSe_PKqPO8Pw; + path=/; expires=Mon, 13-Jan-25 18:42:10 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=XXBvi8ZnbakvKR5akrqMruvFPwz2ZOOI5i1D8OerBSw-1736717033837-0.0.1.1-604800000; + - _cfuvid=NzMJ2rX6F12KiO6Xumt0fto5GVsgGTOMKaKxoHmB6T0-1736791930617-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -112,7 +112,7 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '611' + - '879' openai-version: - '2020-10-01' strict-transport-security: @@ -130,7 +130,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_f56aea9903630bd134bc8065bab7e998 + - req_a903d340801ff2dc9836b15c54c49513 status: code: 200 message: OK @@ -286,7 +286,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 901035d6dfc6de99-EWR + - 90175a5fea67c411-EWR Connection: - keep-alive Content-Encoding: @@ -294,14 +294,14 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:23:54 GMT + - Mon, 13 Jan 2025 18:12:11 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; - path=/; expires=Sun, 12-Jan-25 21:53:54 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; + path=/; expires=Mon, 13-Jan-25 18:42:11 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000; + - _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -318,13 +318,13 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '40' + - '95' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-7b5bffd4c4-d7r9z + - envoy-router-86c567f984-4pgwv x-envoy-upstream-service-time: - '31' x-ratelimit-limit-requests: @@ -340,7 +340,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_a47eb6fba25ad422740aa4ec47a8fa88 + - req_fbf5702676d468b13c0cf1f3021a2f75 status: code: 200 message: OK @@ -360,8 +360,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; - _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; + _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -503,7 +503,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 901035d8ae98de99-EWR + - 90175a62ae8dc411-EWR Connection: - keep-alive Content-Encoding: @@ -511,7 +511,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:23:54 GMT + - Mon, 13 Jan 2025 18:12:11 GMT Server: - cloudflare Transfer-Encoding: @@ -529,15 +529,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '51' + - '69' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-75cd6879cf-k9fl5 + - envoy-router-6f4874f9bd-f4dmq x-envoy-upstream-service-time: - - '33' + - '42' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -551,7 +551,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_b971413950fced2c35232103e7abb6ca + - req_76b9eb3202c6ec88646a5947a9be083f status: code: 200 message: OK diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml index 36fad874d9c..5d28ad5436a 100644 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml @@ -47,8 +47,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=oheO3zYPQqtzwCH36KcPYJSqTpJpQM2OWOWoKE2milY-1736717033-1.0.1.1-92pgnb67DubLHPDeJdheg8VlBIePfu48tfVPpY7wLqWglq9IGkPBUgc2yD9Aa_oyjkgXiUp1L4mo_SJ.HJ.5tw; - _cfuvid=XXBvi8ZnbakvKR5akrqMruvFPwz2ZOOI5i1D8OerBSw-1736717033837-0.0.1.1-604800000 + - __cf_bm=_hIzBnwWi.JmgnHbV_n6n7dTonHCjj4Hjj1dK_lP_HM-1736791930-1.0.1.1-FQtSV2lRxJoGA8CwSbN_LOqQ9_xMHDhef7wv.IE18f.FxorCmPhShV1B_f0t7xt0BrUQ2MCcm7DSe_PKqPO8Pw; + _cfuvid=NzMJ2rX6F12KiO6Xumt0fto5GVsgGTOMKaKxoHmB6T0-1736791930617-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -74,20 +74,20 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5JyjNlqTKZQULRVy4gkRQ4jqT1MXxeG0HLVT9d+Q2 - 22S1i8QdLj7Mm/f05tnjY8QYyBZKBmLPvRiMSt7Qr0N2f/hy93k7jgOXZlR3Hx7evvvU5VsBcWDQ - 7oDCP7JeCRqMQi9JX2BhkXsMqqviJi9WRXqTn4GBWlSB1hufrCkZpJZJlmbrJC2S1WZi70kKdFCy - rxFjjB3PZ/CpW3yAkqXxY2VA53iPUF6bGANLKlSAOyed59pDPIOCtEd9tt40zbGC+xFdcF5BySr4 - 6NjWci2QGW49o469Hy0ZvK0gZhVo0oKGQXrPVSCkp6ZplvIWu9HxMKIelZrqp6tfRb2xtHMTfq13 - Uku3ry1yRzp4c54MRAvysxBW/0MoWfZPhRAx9u28IeOTUcFYGoyvPX1HHQTzbMoF5sVcoPkEevJc - LeqbTfyCXt2i51K5RbIguNhjO1PnheRjK2kBLG/vuZuXtC+TS93/jfwMCIHGY1sbi60UTyee2yyG - f+tPbdeUz4bBof0hBdZeog030WLHR3V5Q+B+Oo9D3UndozVWXh5SZ+oiw7bgu9drAdEp+g0AAP// - AwD+wDfGYAUAAA== + H4sIAAAAAAAAAwAAAP//7FSxbtswEN31FcTNVmHLruVoKQokQd2l6FQUdSHR1ElmQvFY8tSkMPzv + BW3HUpAU6N4uHO7de3j3yOM+EQJ0DYUAtZOsOmfS9+7j9Zyy9Ydp+3CTZ59vV3z35WH9adl8fWxg + Ehm0vUPFT6w3ijpnkDXZE6w8SsaoOsvny/xqdjWfH4GOajSR1jpOF5R22uo0m2aLdJqns9WZvSOt + MEAhviVCCLE/ntGnrfERCjGdPFU6DEG2CMWlSQjwZGIFZAg6sLQMkwFUZBnt0XpVVfsN/OgxROcb + KMQG1kHcemkVCic9C2rETe/J4bsNTMQGLFlFXaeZpYmE6aGqqrG8x6YPMo5oe2PO9cPFr6HWedqG + M36pN9rqsCs9ykA2egtMDpIR+UUIs/8hFCL7p0JIhPh+3JD+2ajgPHWOS6Z7tFFwmZ1zgWExR+jy + DDKxNKP6ajV5Ra+skaU2YZQsKKl2WA/UYSFlX2saAePbe+nmNe3T5Nq2fyM/AEqhY6xL57HW6vnE + Q5vH+G/9qe2S8tEwBPQ/tcKSNfp4EzU2sjenNwThV2DsykbbFr3z+vSQGlfmGda53L5dKEgOyW8A + AAD//wMAi2BACGAFAAA= headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 901035e50b915e7d-EWR + - 90175a6f4ac24255-EWR Connection: - keep-alive Content-Encoding: @@ -95,7 +95,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:23:56 GMT + - Mon, 13 Jan 2025 18:12:13 GMT Server: - cloudflare Transfer-Encoding: @@ -109,7 +109,7 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '514' + - '496' openai-version: - '2020-10-01' strict-transport-security: @@ -127,7 +127,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_d2108c182e13b44d548fef8d1e3ea123 + - req_9576f3064137943d2ea24ebf277700e0 status: code: 200 message: OK @@ -146,8 +146,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; - _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; + _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -286,7 +286,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 901035e948f6de99-EWR + - 90175a73a92bc411-EWR Connection: - keep-alive Content-Encoding: @@ -294,7 +294,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:23:57 GMT + - Mon, 13 Jan 2025 18:12:14 GMT Server: - cloudflare Transfer-Encoding: @@ -312,15 +312,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '47' + - '51' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-6f955f97bb-whgff + - envoy-router-6f4874f9bd-2qjkq x-envoy-upstream-service-time: - - '34' + - '31' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -334,7 +334,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_413efdb4f38064b41c519f6fb533a35f + - req_0eafd284e40e8ae28b9c5ac8086b3d13 status: code: 200 message: OK @@ -354,8 +354,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; - _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; + _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -381,123 +381,123 @@ interactions: response: body: string: !!binary | - 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 - bdagraWm8TsPa9UjPAEAAP//AwDXFfCAhGEAAA== + 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 + S03jdx7Wqkd4AgAA//8DANcV8ICEYQAA headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 901035eb2e80de99-EWR + - 90175a75dcb5c411-EWR Connection: - keep-alive Content-Encoding: @@ -505,7 +505,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:23:57 GMT + - Mon, 13 Jan 2025 18:12:14 GMT Server: - cloudflare Transfer-Encoding: @@ -523,15 +523,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '98' + - '79' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-6979b7df47-xp4zb + - envoy-router-6979b7df47-fztsr x-envoy-upstream-service-time: - - '28' + - '42' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -545,7 +545,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_cc2f4270d700b7c3df4bd933010301b0 + - req_dbfa3c1dcbc8d9cf42586c8af5d77fdb status: code: 200 message: OK diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml index 8b239daa49e..b2ee65d6a95 100644 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml @@ -47,8 +47,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=oheO3zYPQqtzwCH36KcPYJSqTpJpQM2OWOWoKE2milY-1736717033-1.0.1.1-92pgnb67DubLHPDeJdheg8VlBIePfu48tfVPpY7wLqWglq9IGkPBUgc2yD9Aa_oyjkgXiUp1L4mo_SJ.HJ.5tw; - _cfuvid=XXBvi8ZnbakvKR5akrqMruvFPwz2ZOOI5i1D8OerBSw-1736717033837-0.0.1.1-604800000 + - __cf_bm=_hIzBnwWi.JmgnHbV_n6n7dTonHCjj4Hjj1dK_lP_HM-1736791930-1.0.1.1-FQtSV2lRxJoGA8CwSbN_LOqQ9_xMHDhef7wv.IE18f.FxorCmPhShV1B_f0t7xt0BrUQ2MCcm7DSe_PKqPO8Pw; + _cfuvid=NzMJ2rX6F12KiO6Xumt0fto5GVsgGTOMKaKxoHmB6T0-1736791930617-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -74,20 +74,20 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5NyjNls2SC+KyXFdIq5WgKHGdSTOLYxt7soJW/Xfk - Nm1SLUjc4ZLDe/Mmb5493idCADVQClCdZNU7nX6wu+eMP3/8lA8vj5vl7v5h90CPZAbnniQsosJu - nlHxWfVG2d5pZLLmRCuPkjF2XRY3t8WyyG5WR6K3Deoo2zpOVzbtyVCaZ/kqzYp0eTeqO0sKA5Ti - SyKEEPvjN/o0Df6AUmSLM9JjCHKLUF6KhABvdURAhkCBpWFYTKSyhtEcrdd1vV/D9wFDdL6GUqzh - qZMsKAjuUCjpiKUWthX3XhqF79ewEGsw1ijb98QsdVRlh7qu5//w2A5BxjnNoPWIHy6mtd06bzdh - 5C94S4ZCV3mUwZpoMLB1kMzEr5JY/k9iTCL/95JIhPh6XJjhal5w3vaOK7bf0MSGt/m4MDDt6Yx9 - N5JsWeoZfncmrvpVDbIkHWbxgpKqw2aSTvsph4bsjJgf4Ws3v+t9mpzM9m/aT4RS6BibynlsSF1P - PJV5jM/Yn8ouKR8NQ0D/QgorJvTxJBps5aBPFwnCz8DYVy2ZLXrn6XSbWlcVOTaF3LxdKUgOyS8A - AAD//wMAZ1iuFm8FAAA= + H4sIAAAAAAAAAwAAAP//7FRNj9MwEL3nV1hzblCTDduPC0KgRYC4rYSAosS1J4lZx/baEwRU/e8r + t2mTakHa+3LJ4b15kzfPHu8SxkBJWDMQLSfROZ2+dh/eZu/Fl7ZYfn2jpbl9V3z6eH9D27s/tx3M + osJuf6Cgk+qFsJ3TSMqaIy08csLYNVtcXS9W2eoqOxCdlaijrHGUFjbtlFFpPs+LdL5Is+Wgbq0S + GGDNviWMMbY7fKNPI/EXrNl8dkI6DIE3COtzEWPgrY4I8BBUIG4IZiMprCE0B+tVVe02cN9jiM43 + sGYb+NxyYiowapEJ7hRxzWzNbjw3Al9tYMY2YKwRtusUEddRNd9XVTX9h8e6DzzOaXqtB3x/Nq1t + 47zdhoE/47UyKrSlRx6siQYDWQfJRPwoiex/EkMS+fNLImHs+2Fh+ot5wXnbOSrJ3qGJDa/zYWFg + 3NMJuxpIssT1BF+eiIt+pUTiSodJvCC4aFGO0nE/eS+VnRDTI3zs5m+9j5Mr0zyl/UgIgY5Qls6j + VOJy4rHMY3zG/lV2TvlgGAL6n0pgSQp9PAmJNe/18SJB+B0Iu7JWpkHvvDreptqVixzlgm9fFgKS + ffIAAAD//wMAaxfhhW8FAAA= headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 901035daad4e5e7d-EWR + - 90175a650bb64255-EWR Connection: - keep-alive Content-Encoding: @@ -95,7 +95,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:23:55 GMT + - Mon, 13 Jan 2025 18:12:12 GMT Server: - cloudflare Transfer-Encoding: @@ -109,7 +109,7 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '382' + - '585' openai-version: - '2020-10-01' strict-transport-security: @@ -127,7 +127,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_e6b9cd7beea5ab0a385042f6c9fc897a + - req_350cc2e7ca29c1bbb023517c08970f24 status: code: 200 message: OK @@ -146,8 +146,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; - _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; + _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -286,7 +286,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 901035de19f3de99-EWR + - 90175a6baca4c411-EWR Connection: - keep-alive Content-Encoding: @@ -294,7 +294,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:23:55 GMT + - Mon, 13 Jan 2025 18:12:13 GMT Server: - cloudflare Transfer-Encoding: @@ -312,15 +312,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '217' + - '59' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-5ccf9c4d57-dcggj + - envoy-router-867d7fff98-kh797 x-envoy-upstream-service-time: - - '177' + - '28' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -334,7 +334,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_2adf1dd4f78871bdaa46665b7eb7b542 + - req_c664cca34000853732cb390e7e92ff3f status: code: 200 message: OK @@ -354,8 +354,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=6ceVqeMFYTdXn2aeYrsXWUZtp7M1BNv6diyCFFwYhAQ-1736717034-1.0.1.1-AyCADUBhWGl2am0sX5zaIk494uQEOOw6xyG6etqFq2aGcQUXX32PxR7zuKbC6Xaeoqg5ozg8omthjkIxMVmtPg; - _cfuvid=2epaBi9xbdb4sMl4F1O.cyEtO9UPvRcdc2dtCUUAzs4-1736717034314-0.0.1.1-604800000 + - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; + _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -497,7 +497,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 901035e18daede99-EWR + - 90175a6deff8c411-EWR Connection: - keep-alive Content-Encoding: @@ -505,7 +505,7 @@ interactions: Content-Type: - application/json Date: - - Sun, 12 Jan 2025 21:23:56 GMT + - Mon, 13 Jan 2025 18:12:13 GMT Server: - cloudflare Transfer-Encoding: @@ -523,15 +523,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '94' + - '64' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-5fb4cf648b-8htmg + - envoy-router-7b5bffd4c4-f6hxk x-envoy-upstream-service-time: - - '73' + - '43' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -545,7 +545,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_09bfa82ad1c1f2cc5c8c0475724be82d + - req_e948834ffe596297a8eb6cd364cdfbe5 status: code: 200 message: OK diff --git a/tests/llmobs/test_llmobs_ragas_evaluators.py b/tests/llmobs/test_llmobs_ragas_evaluators.py index c848a5b05a6..06be41cc0cf 100644 --- a/tests/llmobs/test_llmobs_ragas_evaluators.py +++ b/tests/llmobs/test_llmobs_ragas_evaluators.py @@ -448,6 +448,7 @@ def test_llmobs_with_answer_relevancy_emits_traces_and_evals_on_exit(mock_writer ctx = logs_vcr.use_cassette( "tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml" ) +import os ctx.__enter__() atexit.register(lambda: ctx.__exit__()) with mock.patch("ddtrace.internal.writer.HTTPWriter._send_payload", return_value=Response(status=200, body="{}")): From 5edd2c8c7289cd5c6176b24cd9d622108fea3419 Mon Sep 17 00:00:00 2001 From: lievan Date: Mon, 13 Jan 2025 14:17:04 -0500 Subject: [PATCH 06/15] cassettes take embeddings --- ...t_ragas_answer_relevancy_emits_traces.yaml | 285 ++++++++--------- ...s_answer_relevancy_submits_evaluation.yaml | 289 +++++++++--------- ...s_evaluation_on_span_with_custom_keys.yaml | 286 ++++++++--------- ...ion_on_span_with_question_in_messages.yaml | 286 ++++++++--------- 4 files changed, 573 insertions(+), 573 deletions(-) diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml index 797d4d90948..3cbbfaee657 100644 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml @@ -47,8 +47,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=_hIzBnwWi.JmgnHbV_n6n7dTonHCjj4Hjj1dK_lP_HM-1736791930-1.0.1.1-FQtSV2lRxJoGA8CwSbN_LOqQ9_xMHDhef7wv.IE18f.FxorCmPhShV1B_f0t7xt0BrUQ2MCcm7DSe_PKqPO8Pw; - _cfuvid=NzMJ2rX6F12KiO6Xumt0fto5GVsgGTOMKaKxoHmB6T0-1736791930617-0.0.1.1-604800000 + - __cf_bm=jNCWyg.Vq7.UysipP_0ZTDahpo.QhHWQvZ5Biaue6Bs-1736795781-1.0.1.1-C.GEfp7jlmfkY9qIXtsRjf9L9W5MzQ2OSXUpBOB0jIjYNSrJBlVnNwuHbaPYKT9.DjEjgPPIK69hkYhC0UtQZA; + _cfuvid=g4nQujMCF8pE0TfAWPiY5rkdnbhtDE1kP7w0dFQq.v4-1736795781566-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -74,20 +74,20 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//7FRNi9swEL37V4g5x8XxJuuNL6VQdqFQ6KEf0HqxFXlsq5UlVRqXLiH/ - vchxYodtoff24sN788ZvnjQ6RIyBrCFnIDpOorcqfmXfvN52dp+++/D2fvfRPmmViM9yeDAPm/ew - Cgqz/4qCzqoXwvRWIUmjT7RwyAlD13V2c5vt1rub7Uj0pkYVZK2leGPiXmoZp0m6iZMsXt9N6s5I - gR5y9iVijLHD+A0+dY0/IWfJ6oz06D1vEfJLEWPgjAoIcO+lJ64JVjMpjCbUo/Wqqg4FfB/QB+cF - 5KyATx0nJj2jDpngVhJXzDTs3nEt8GUBK1aANlqYvpdEXAVVcqyqavkPh83geZhTD0pN+PFiWpnW - OrP3E3/BG6ml70qH3BsdDHoyFqKF+FkS6/9JTEmk/14SEWOP48IMV/OCdaa3VJL5hjo0vE2nhYF5 - TxfsbiLJEFcL/O5MXPUrayQulV/EC4KLDutZOu8nH2ppFsTyCJ+7+V3v0+RSt3/TfiaEQEtYl9Zh - LcX1xHOZw/CM/anskvJoGDy6H1JgSRJdOIkaGz6o00UC/+QJ+7KRukVnnTzdpsaWWYp1xvfbjYDo - GP0CAAD//wMAZIrvRG8FAAA= + H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5N6jNtptuLwiEQNAT4rBIFCWuPUm8OLbXngCrqv+O + nKZNqgWJO1xyeG/e5M2zx4eEMVASNgxEw0m0Tqev3PbNayXfb7db9fnm3RP/8elD83Ava/9x9Qiz + qLD7BxR0Vr0QtnUaSVlzooVHThi7LvKb2/xula9XPdFaiTrKakfp0qatMirN5tkynefpYj2oG6sE + BtiwLwljjB36b/RpJP6EDZvPzkiLIfAaYXMpYgy81REBHoIKxA3BbCSFNYSmt16W5WEHjx2G6HwH + G7aD+4YTU4FRg0xwp4hrZiv21nMj8OUOZmwHxhph21YRcR1V82NZltN/eKy6wOOcptN6wI8X09rW + ztt9GPgLXimjQlN45MGaaDCQdZBMxM+SWPxPYkgi+/eSSBj72i9MdzUvOG9bRwXZb2hiw9tsWBgY + 93TC3g0kWeJ6gq/PxFW/QiJxpcMkXhBcNChH6bifvJPKTojpET5387vep8mVqf+m/UgIgY5QFs6j + VOJ64rHMY3zG/lR2Sbk3DAH9dyWwIIU+noTEinf6dJEgPAXCtqiUqdE7r063qXJFnqHM+X61FJAc + k18AAAD//wMAh5BSKW8FAAA= headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a79ca654255-EWR + - 9017b87b7a2172c2-EWR Connection: - keep-alive Content-Encoding: @@ -95,7 +95,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:15 GMT + - Mon, 13 Jan 2025 19:16:26 GMT Server: - cloudflare Transfer-Encoding: @@ -109,7 +109,7 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '475' + - '527' openai-version: - '2020-10-01' strict-transport-security: @@ -127,7 +127,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_191e28b7867a389fcedd5912aab8d244 + - req_676b13e59057c608d2aae93dc46c6325 status: code: 200 message: OK @@ -146,8 +146,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; - _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 + - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; + _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -286,7 +286,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a7dffabc411-EWR + - 9017b87ffc35de9b-EWR Connection: - keep-alive Content-Encoding: @@ -294,7 +294,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:16 GMT + - Mon, 13 Jan 2025 19:16:26 GMT Server: - cloudflare Transfer-Encoding: @@ -312,15 +312,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '85' + - '47' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-bd9f9f96-dx9w9 + - envoy-router-6979b7df47-vvg7g x-envoy-upstream-service-time: - - '59' + - '23' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -334,7 +334,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_1e18512287cee692278094f7f3f3c59c + - req_2300f9a23e5574b468cebc70b0876a9f status: code: 200 message: OK @@ -354,8 +354,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; - _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 + - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; + _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -381,122 +381,123 @@ interactions: response: body: string: !!binary | - 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 headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a816c84c411-EWR + - 9017b883ea8ade9b-EWR Connection: - keep-alive Content-Encoding: @@ -504,7 +505,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:16 GMT + - Mon, 13 Jan 2025 19:16:26 GMT Server: - cloudflare Transfer-Encoding: @@ -522,15 +523,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '78' + - '69' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-5fb4cf648b-8fmfn + - envoy-router-6f955f97bb-4khl7 x-envoy-upstream-service-time: - - '44' + - '33' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -544,7 +545,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_8d110196ee8262edfd5b569b609f1405 + - req_7a8af08acb2e6c4ca1a74650c0472e24 status: code: 200 message: OK diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml index bb2f4f4618c..1f537a977b8 100644 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml @@ -71,20 +71,20 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5NygJpdnmgmAFWnHlgLQEJa4zScw6tteerFiq/jty - mzapFiTucMnhvXmTN88e7yPGQDZQMBA9JzFYFb+zn25/PtzefX6/S56e7/2Hx7v7tJeK55t8Daug - MLvvKOiseiXMYBWSNPpEC4ecMHRN89ebfJtus+2RGEyDKsg6S/HaxIPUMs6SbB0neZzeTOreSIEe - CvY1Yoyx/fEbfOoGf0DBktUZGdB73iEUlyLGwBkVEODeS09cE6xmUhhNqI/W67rel/A4og/OSyhY - CV96Tkx6Rj0ywa0krphp2UfHtcC3JaxYCdpoYYZBEnEVVMmhruvlPxy2o+dhTj0qNeGHi2llOuvM - zk/8BW+llr6vHHJvdDDoyViIFuIXSaT/k5iSyP69JCLGvh0XZryaF6wzg6WKzAPq0HCTTQsD854u - 2O1EkiGuFvjNmbjqVzVIXCq/iBcEFz02s3TeTz420iyI5RG+dPO73qfJpe7+pv1MCIGWsKmsw0aK - 64nnMofhGftT2SXlo2Hw6J6kwIokunASDbZ8VKeLBP7ZEw5VK3WHzjp5uk2trfIMm5zv3qwFRIfo - FwAAAP//AwBvdHJJbwUAAA== + H4sIAAAAAAAAAwAAAP//7FTBjpswEL3zFdacQ0VoNmS5VJWyvfTWSttDqcAxA7hrbK89rLaN8u+V + CRuItpV6by8c5s17vHn2+BgxBrKGnIHoOIneqvi9/bjf3iVPSI/74ZP87H/e7++e7x8ytc+2sAoM + c/iOgl5Yb4TprUKSRp9h4ZATBtV19nab3d5ku2QEelOjCrTWUrwxcS+1jNMk3cRJFq93E7szUqCH + nH2NGGPsOH6DT13jM+Rs1BorPXrPW4T80sQYOKNCBbj30hPXBKsZFEYT6tF6VVXHAh4H9MF5ATkr + 4EvHiUnPqEMmuJXEFTMN++C4FviugBUrQBstTN9LIq4CKzlVVbX8h8Nm8DzMqQelpvrpYlqZ1jpz + 8BN+qTdSS9+VDrk3Ohj0ZCxEC/KrJNb/k5iSSP+9JCLGvo0LM1zNC9aZ3lJJ5gF1ENym08LAvKcL + 9HYCyRBXi/ruBbjSK2skLpVfxAuCiw7rmTrvJx9qaRbA8ghfu/md9nlyqdu/kZ8BIdAS1qV1WEtx + PfHc5jA8Y39qu6Q8GgaP7kkKLEmiCydRY8MHdb5I4H94wr5spG7RWSfPt6mxZZZinfHDzUZAdIp+ + AQAA//8DAHIOLnJvBQAA headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a57ef0b4255-EWR + - 9017b85e9bb772c2-EWR Connection: - keep-alive Content-Encoding: @@ -92,14 +92,14 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:10 GMT + - Mon, 13 Jan 2025 19:16:21 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=_hIzBnwWi.JmgnHbV_n6n7dTonHCjj4Hjj1dK_lP_HM-1736791930-1.0.1.1-FQtSV2lRxJoGA8CwSbN_LOqQ9_xMHDhef7wv.IE18f.FxorCmPhShV1B_f0t7xt0BrUQ2MCcm7DSe_PKqPO8Pw; - path=/; expires=Mon, 13-Jan-25 18:42:10 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=jNCWyg.Vq7.UysipP_0ZTDahpo.QhHWQvZ5Biaue6Bs-1736795781-1.0.1.1-C.GEfp7jlmfkY9qIXtsRjf9L9W5MzQ2OSXUpBOB0jIjYNSrJBlVnNwuHbaPYKT9.DjEjgPPIK69hkYhC0UtQZA; + path=/; expires=Mon, 13-Jan-25 19:46:21 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=NzMJ2rX6F12KiO6Xumt0fto5GVsgGTOMKaKxoHmB6T0-1736791930617-0.0.1.1-604800000; + - _cfuvid=g4nQujMCF8pE0TfAWPiY5rkdnbhtDE1kP7w0dFQq.v4-1736795781566-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -112,7 +112,7 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '879' + - '541' openai-version: - '2020-10-01' strict-transport-security: @@ -130,7 +130,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_a903d340801ff2dc9836b15c54c49513 + - req_b5c84c23586be35a5fc602178e84a812 status: code: 200 message: OK @@ -286,7 +286,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a5fea67c411-EWR + - 9017b864b936de9b-EWR Connection: - keep-alive Content-Encoding: @@ -294,14 +294,14 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:11 GMT + - Mon, 13 Jan 2025 19:16:22 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; - path=/; expires=Mon, 13-Jan-25 18:42:11 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; + path=/; expires=Mon, 13-Jan-25 19:46:22 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000; + - _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -318,15 +318,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '95' + - '80' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-86c567f984-4pgwv + - envoy-router-678875496d-6fjmx x-envoy-upstream-service-time: - - '31' + - '59' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -340,7 +340,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_fbf5702676d468b13c0cf1f3021a2f75 + - req_e589af7ff963668ef0b2722e99fcde70 status: code: 200 message: OK @@ -360,8 +360,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; - _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 + - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; + _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -387,123 +387,122 @@ interactions: response: body: string: !!binary | - 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 - AAA= + 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 headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a62ae8dc411-EWR + - 9017b86929d9de9b-EWR Connection: - keep-alive Content-Encoding: @@ -511,7 +510,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:11 GMT + - Mon, 13 Jan 2025 19:16:22 GMT Server: - cloudflare Transfer-Encoding: @@ -529,15 +528,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '69' + - '56' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-6f4874f9bd-f4dmq + - envoy-router-867d7fff98-jp2xz x-envoy-upstream-service-time: - - '42' + - '34' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -551,7 +550,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_76b9eb3202c6ec88646a5947a9be083f + - req_0664830d8f95882874d90777108542e2 status: code: 200 message: OK diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml index 5d28ad5436a..10f37811fed 100644 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml @@ -47,8 +47,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=_hIzBnwWi.JmgnHbV_n6n7dTonHCjj4Hjj1dK_lP_HM-1736791930-1.0.1.1-FQtSV2lRxJoGA8CwSbN_LOqQ9_xMHDhef7wv.IE18f.FxorCmPhShV1B_f0t7xt0BrUQ2MCcm7DSe_PKqPO8Pw; - _cfuvid=NzMJ2rX6F12KiO6Xumt0fto5GVsgGTOMKaKxoHmB6T0-1736791930617-0.0.1.1-604800000 + - __cf_bm=jNCWyg.Vq7.UysipP_0ZTDahpo.QhHWQvZ5Biaue6Bs-1736795781-1.0.1.1-C.GEfp7jlmfkY9qIXtsRjf9L9W5MzQ2OSXUpBOB0jIjYNSrJBlVnNwuHbaPYKT9.DjEjgPPIK69hkYhC0UtQZA; + _cfuvid=g4nQujMCF8pE0TfAWPiY5rkdnbhtDE1kP7w0dFQq.v4-1736795781566-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -74,20 +74,20 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//7FSxbtswEN31FcTNVmHLruVoKQokQd2l6FQUdSHR1ElmQvFY8tSkMPzv - BW3HUpAU6N4uHO7de3j3yOM+EQJ0DYUAtZOsOmfS9+7j9Zyy9Ydp+3CTZ59vV3z35WH9adl8fWxg - Ehm0vUPFT6w3ijpnkDXZE6w8SsaoOsvny/xqdjWfH4GOajSR1jpOF5R22uo0m2aLdJqns9WZvSOt - MEAhviVCCLE/ntGnrfERCjGdPFU6DEG2CMWlSQjwZGIFZAg6sLQMkwFUZBnt0XpVVfsN/OgxROcb - KMQG1kHcemkVCic9C2rETe/J4bsNTMQGLFlFXaeZpYmE6aGqqrG8x6YPMo5oe2PO9cPFr6HWedqG - M36pN9rqsCs9ykA2egtMDpIR+UUIs/8hFCL7p0JIhPh+3JD+2ajgPHWOS6Z7tFFwmZ1zgWExR+jy - DDKxNKP6ajV5Ra+skaU2YZQsKKl2WA/UYSFlX2saAePbe+nmNe3T5Nq2fyM/AEqhY6xL57HW6vnE - Q5vH+G/9qe2S8tEwBPQ/tcKSNfp4EzU2sjenNwThV2DsykbbFr3z+vSQGlfmGda53L5dKEgOyW8A - AAD//wMAi2BACGAFAAA= + H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5N6gNbRNyQYsACfa2F8SSVeI6k9as4zH2BAFV/x25 + 7TZZ7SJxh4sP8+Y9vXn2eJ8IAbqFUoDaSVa9M+mVu357VTi9uR1u+Nf1bbb5/Om+kKuP6xt6A7PI + oM1XVPzAeqGodwZZkz3ByqNkjKqL/OU6f7XKi+UR6KlFE2lbx+mS0l5bnWbzbJnO83RRnNk70goD + lOJLIoQQ++MZfdoWf0Ap5rOHSo8hyC1CeWkSAjyZWAEZgg4sLcNsBBVZRnu03jTNvoJvA4bovIJS + VPAhiPdeWoXCSc+COvFu8OTwdQUzUYElq6jvNbM0kTA/NE0zlffYDUHGEe1gzLl+uPg1tHWeNuGM + X+qdtjrsao8ykI3eApODZEJ+EsLifwilyP6pEBIh7o4bMjwaFZyn3nHNdI82Cq6zcy4wLuYEXZ9B + JpZmUi+K2TN6dYsstQmTZEFJtcN2pI4LKYdW0wSY3t5TN89pnybXdvs38iOgFDrGtnYeW60eTzy2 + eYz/1p/aLikfDUNA/10rrFmjjzfRYicHc3pDEH4Gxr7utN2id16fHlLn6jzDNpeb1VJBckh+AwAA + //8DANutsGBgBQAA headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a6f4ac24255-EWR + - 9017b871ccef72c2-EWR Connection: - keep-alive Content-Encoding: @@ -95,7 +95,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:13 GMT + - Mon, 13 Jan 2025 19:16:24 GMT Server: - cloudflare Transfer-Encoding: @@ -109,7 +109,7 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '496' + - '777' openai-version: - '2020-10-01' strict-transport-security: @@ -127,7 +127,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_9576f3064137943d2ea24ebf277700e0 + - req_ae55f737a392193b7cdef4e15f7413f2 status: code: 200 message: OK @@ -146,8 +146,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; - _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 + - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; + _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -286,7 +286,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a73a92bc411-EWR + - 9017b877eeb4de9b-EWR Connection: - keep-alive Content-Encoding: @@ -294,7 +294,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:14 GMT + - Mon, 13 Jan 2025 19:16:25 GMT Server: - cloudflare Transfer-Encoding: @@ -312,15 +312,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '51' + - '74' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-6f4874f9bd-2qjkq + - envoy-router-86c567f984-9tp6h x-envoy-upstream-service-time: - - '31' + - '34' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -334,7 +334,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_0eafd284e40e8ae28b9c5ac8086b3d13 + - req_f7faff67f06c8d0c62f8aae437c290ab status: code: 200 message: OK @@ -354,8 +354,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; - _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 + - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; + _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -381,123 +381,123 @@ interactions: response: body: string: !!binary | - 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 - S03jdx7Wqkd4AgAA//8DANcV8ICEYQAA + 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 + 1qpHeAIAAP//AwDXFfCAhGEAAA== headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a75dcb5c411-EWR + - 9017b878da6dde9b-EWR Connection: - keep-alive Content-Encoding: @@ -505,7 +505,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:14 GMT + - Mon, 13 Jan 2025 19:16:25 GMT Server: - cloudflare Transfer-Encoding: @@ -523,15 +523,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '79' + - '171' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-6979b7df47-fztsr + - envoy-router-678875496d-cr9t2 x-envoy-upstream-service-time: - - '42' + - '93' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -545,7 +545,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_dbfa3c1dcbc8d9cf42586c8af5d77fdb + - req_ffd07bf3a52552051c564462e6438af1 status: code: 200 message: OK diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml index b2ee65d6a95..5506ad97414 100644 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml +++ b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml @@ -47,8 +47,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=_hIzBnwWi.JmgnHbV_n6n7dTonHCjj4Hjj1dK_lP_HM-1736791930-1.0.1.1-FQtSV2lRxJoGA8CwSbN_LOqQ9_xMHDhef7wv.IE18f.FxorCmPhShV1B_f0t7xt0BrUQ2MCcm7DSe_PKqPO8Pw; - _cfuvid=NzMJ2rX6F12KiO6Xumt0fto5GVsgGTOMKaKxoHmB6T0-1736791930617-0.0.1.1-604800000 + - __cf_bm=jNCWyg.Vq7.UysipP_0ZTDahpo.QhHWQvZ5Biaue6Bs-1736795781-1.0.1.1-C.GEfp7jlmfkY9qIXtsRjf9L9W5MzQ2OSXUpBOB0jIjYNSrJBlVnNwuHbaPYKT9.DjEjgPPIK69hkYhC0UtQZA; + _cfuvid=g4nQujMCF8pE0TfAWPiY5rkdnbhtDE1kP7w0dFQq.v4-1736795781566-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -74,20 +74,20 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//7FRNj9MwEL3nV1hzblCTDduPC0KgRYC4rYSAosS1J4lZx/baEwRU/e8r - t2mTakHa+3LJ4b15kzfPHu8SxkBJWDMQLSfROZ2+dh/eZu/Fl7ZYfn2jpbl9V3z6eH9D27s/tx3M - osJuf6Cgk+qFsJ3TSMqaIy08csLYNVtcXS9W2eoqOxCdlaijrHGUFjbtlFFpPs+LdL5Is+Wgbq0S - GGDNviWMMbY7fKNPI/EXrNl8dkI6DIE3COtzEWPgrY4I8BBUIG4IZiMprCE0B+tVVe02cN9jiM43 - sGYb+NxyYiowapEJ7hRxzWzNbjw3Al9tYMY2YKwRtusUEddRNd9XVTX9h8e6DzzOaXqtB3x/Nq1t - 47zdhoE/47UyKrSlRx6siQYDWQfJRPwoiex/EkMS+fNLImHs+2Fh+ot5wXnbOSrJ3qGJDa/zYWFg - 3NMJuxpIssT1BF+eiIt+pUTiSodJvCC4aFGO0nE/eS+VnRDTI3zs5m+9j5Mr0zyl/UgIgY5Qls6j - VOJy4rHMY3zG/lV2TvlgGAL6n0pgSQp9PAmJNe/18SJB+B0Iu7JWpkHvvDreptqVixzlgm9fFgKS - ffIAAAD//wMAaxfhhW8FAAA= + H4sIAAAAAAAAAwAAAP//7FRNj9MwEL3nV1hzblAbuptsLwiE4LDcF4mixLUniVl/rT1BQNX/jtym + TapdJO5wyeG9eZM3zx7vM8ZASdgwED0nYbzO3/r795W5/zRU/bvP8umXM+HhUfW7jxX3ARZJ4Xbf + UNBZ9Uo44zWScvZEi4CcMHVdla9vy7ubsiqOhHESdZJ1nvK1y42yKi+WxTpflvmqGtW9UwIjbNiX + jDHG9sdv8mkl/oANWy7OiMEYeYewuRQxBsHphACPUUXilmAxkcJZQnu03jTNfgtPA8bkfAsbtoWH + nhNTkVGPTHCviGvmWvYhcCvwzRYWbAvWWeGMUURcJ9Xy0DTN/B8B2yHyNKcdtB7xw8W0dp0PbhdH + /oK3yqrY1wF5dDYZjOQ8ZDPxsyRW/5MYkyj+vSQyxr4eF2a4mhd8cMZTTe4RbWp4W4wLA9Oezti7 + kSRHXM/w6kxc9aslElc6zuIFwUWPcpJO+8kHqdyMmB/hczcv9T5Nrmz3N+0nQgj0hLL2AaUS1xNP + ZQHTM/anskvKR8MQMXxXAmtSGNJJSGz5oE8XCeLPSGjqVtkOgw/qdJtaX5cFypLvbtYCskP2GwAA + //8DAJcsvO9vBQAA headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a650bb64255-EWR + - 9017b86a7b1972c2-EWR Connection: - keep-alive Content-Encoding: @@ -95,7 +95,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:12 GMT + - Mon, 13 Jan 2025 19:16:23 GMT Server: - cloudflare Transfer-Encoding: @@ -109,7 +109,7 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '585' + - '543' openai-version: - '2020-10-01' strict-transport-security: @@ -127,7 +127,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_350cc2e7ca29c1bbb023517c08970f24 + - req_f0b56db67d0097bec5daa15e0c46bf1e status: code: 200 message: OK @@ -146,8 +146,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; - _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 + - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; + _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -286,7 +286,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a6baca4c411-EWR + - 9017b86ede75de9b-EWR Connection: - keep-alive Content-Encoding: @@ -294,7 +294,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:13 GMT + - Mon, 13 Jan 2025 19:16:23 GMT Server: - cloudflare Transfer-Encoding: @@ -312,15 +312,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '59' + - '122' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-867d7fff98-kh797 + - envoy-router-69b798f78c-8z64h x-envoy-upstream-service-time: - - '28' + - '66' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -334,7 +334,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_c664cca34000853732cb390e7e92ff3f + - req_ade4d0094e00ec210353016f851aa491 status: code: 200 message: OK @@ -354,8 +354,8 @@ interactions: content-type: - application/json cookie: - - __cf_bm=Zmk1JGzic3EuzvIzjOaRQmaIzGJ74x.YquPeDyOCZqs-1736791931-1.0.1.1-6KPmj2tXuJXAXiqBJZVUD8MpO.8MYVZ5pROU_OXfJ.0MpbaI6lzTi3naLpKXPcmvDOI__h5SIGAMGyFYV5ygPw; - _cfuvid=KoihxnMe5Lh0xnz1wfMOrsPFtoJP.8Ykuk5OysABbKg-1736791931216-0.0.1.1-604800000 + - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; + _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 host: - api.openai.com user-agent: @@ -381,123 +381,123 @@ interactions: response: body: string: !!binary | - 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 + AAA= headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 90175a6deff8c411-EWR + - 9017b8708cc3de9b-EWR Connection: - keep-alive Content-Encoding: @@ -505,7 +505,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 13 Jan 2025 18:12:13 GMT + - Mon, 13 Jan 2025 19:16:23 GMT Server: - cloudflare Transfer-Encoding: @@ -523,15 +523,15 @@ interactions: openai-organization: - datadog-staging openai-processing-ms: - - '64' + - '46' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-7b5bffd4c4-f6hxk + - envoy-router-86c567f984-cb9r6 x-envoy-upstream-service-time: - - '43' + - '32' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -545,7 +545,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_e948834ffe596297a8eb6cd364cdfbe5 + - req_74d1c4b94ea48d3c239317a1d4d1fe90 status: code: 200 message: OK From 5894b6d64dea9f13212a0af266427d18626ff562 Mon Sep 17 00:00:00 2001 From: lievan Date: Tue, 14 Jan 2025 09:36:27 -0500 Subject: [PATCH 07/15] mock embeddings for test --- tests/llmobs/conftest.py | 11 +++++++++++ tests/llmobs/test_llmobs_ragas_evaluators.py | 10 ++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/tests/llmobs/conftest.py b/tests/llmobs/conftest.py index 2345189d72f..6de68ce1c84 100644 --- a/tests/llmobs/conftest.py +++ b/tests/llmobs/conftest.py @@ -168,6 +168,17 @@ def mock_ragas_evaluator(mock_llmobs_eval_metric_writer, ragas): patcher.stop() +@pytest.fixture +def mock_ragas_answer_relevancy_calc_similarity(): + import numpy + + patcher = mock.patch("ragas.metrics.answer_relevancy.calculate_similarity") + MockRagasCalcSim = patcher.start() + MockRagasCalcSim.return_value = numpy.array([1.0, 1.0, 1.0]) + yield MockRagasCalcSim + patcher.stop() + + @pytest.fixture def tracer(): return DummyTracer() diff --git a/tests/llmobs/test_llmobs_ragas_evaluators.py b/tests/llmobs/test_llmobs_ragas_evaluators.py index 06be41cc0cf..684361c6513 100644 --- a/tests/llmobs/test_llmobs_ragas_evaluators.py +++ b/tests/llmobs/test_llmobs_ragas_evaluators.py @@ -310,7 +310,9 @@ def agenerate_text(self) -> str: @pytest.mark.vcr_logs -def test_ragas_answer_relevancy_submits_evaluation(ragas, llmobs, mock_llmobs_submit_evaluation): +def test_ragas_answer_relevancy_submits_evaluation( + ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calc_similarity +): """Test that evaluation is submitted for a valid llm span where question is in the prompt variables""" rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) llm_span = _llm_span_with_expected_ragas_inputs_in_prompt() @@ -335,7 +337,7 @@ def test_ragas_answer_relevancy_submits_evaluation(ragas, llmobs, mock_llmobs_su @pytest.mark.vcr_logs def test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages( - ragas, llmobs, mock_llmobs_submit_evaluation + ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calc_similarity ): """Test that evaluation is submitted for a valid llm span where the last message content is the question""" rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) @@ -361,7 +363,7 @@ def test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_mess @pytest.mark.vcr_logs def test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys( - ragas, llmobs, mock_llmobs_submit_evaluation + ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calc_similarity ): """Test that evaluation is submitted for a valid llm span where the last message content is the question""" rf_evaluator = RagasAnswerRelevancyEvaluator(llmobs) @@ -398,7 +400,7 @@ def test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys( @pytest.mark.vcr_logs -def test_ragas_answer_relevancy_emits_traces(ragas, llmobs, llmobs_events): +def test_ragas_answer_relevancy_emits_traces(ragas, llmobs, llmobs_events, mock_ragas_answer_relevancy_calc_similarity): rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) rar_evaluator.evaluate(_llm_span_with_expected_ragas_inputs_in_prompt()) From ec2262f8b7e4ae5ad2d1f5de4a151d1877a7c0a6 Mon Sep 17 00:00:00 2001 From: lievan Date: Tue, 14 Jan 2025 10:42:23 -0500 Subject: [PATCH 08/15] mock embed sim for exit test --- tests/llmobs/conftest.py | 2 +- tests/llmobs/test_llmobs_ragas_evaluators.py | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/llmobs/conftest.py b/tests/llmobs/conftest.py index 6de68ce1c84..7a48cf9ebb5 100644 --- a/tests/llmobs/conftest.py +++ b/tests/llmobs/conftest.py @@ -169,7 +169,7 @@ def mock_ragas_evaluator(mock_llmobs_eval_metric_writer, ragas): @pytest.fixture -def mock_ragas_answer_relevancy_calc_similarity(): +def mock_ragas_answer_relevancy_calculate_similarity(): import numpy patcher = mock.patch("ragas.metrics.answer_relevancy.calculate_similarity") diff --git a/tests/llmobs/test_llmobs_ragas_evaluators.py b/tests/llmobs/test_llmobs_ragas_evaluators.py index 684361c6513..1f2355dd8a5 100644 --- a/tests/llmobs/test_llmobs_ragas_evaluators.py +++ b/tests/llmobs/test_llmobs_ragas_evaluators.py @@ -311,7 +311,7 @@ def agenerate_text(self) -> str: @pytest.mark.vcr_logs def test_ragas_answer_relevancy_submits_evaluation( - ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calc_similarity + ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calculate_similarity ): """Test that evaluation is submitted for a valid llm span where question is in the prompt variables""" rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) @@ -337,7 +337,7 @@ def test_ragas_answer_relevancy_submits_evaluation( @pytest.mark.vcr_logs def test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages( - ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calc_similarity + ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calculate_similarity ): """Test that evaluation is submitted for a valid llm span where the last message content is the question""" rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) @@ -363,7 +363,7 @@ def test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_mess @pytest.mark.vcr_logs def test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys( - ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calc_similarity + ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calculate_similarity ): """Test that evaluation is submitted for a valid llm span where the last message content is the question""" rf_evaluator = RagasAnswerRelevancyEvaluator(llmobs) @@ -400,7 +400,9 @@ def test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys( @pytest.mark.vcr_logs -def test_ragas_answer_relevancy_emits_traces(ragas, llmobs, llmobs_events, mock_ragas_answer_relevancy_calc_similarity): +def test_ragas_answer_relevancy_emits_traces( + ragas, llmobs, llmobs_events, mock_ragas_answer_relevancy_calculate_similarity +): rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) rar_evaluator.evaluate(_llm_span_with_expected_ragas_inputs_in_prompt()) @@ -443,6 +445,7 @@ def test_llmobs_with_answer_relevancy_emits_traces_and_evals_on_exit(mock_writer import time import atexit import mock +import numpy from ddtrace.llmobs import LLMObs from ddtrace.internal.utils.http import Response from tests.llmobs._utils import _llm_span_with_expected_ragas_inputs_in_messages @@ -455,7 +458,8 @@ def test_llmobs_with_answer_relevancy_emits_traces_and_evals_on_exit(mock_writer atexit.register(lambda: ctx.__exit__()) with mock.patch("ddtrace.internal.writer.HTTPWriter._send_payload", return_value=Response(status=200, body="{}")): LLMObs.enable(api_key="dummy-api-key", site="datad0g.com", ml_app="unnamed-ml-app", agentless_enabled=True) - LLMObs._instance._evaluator_runner.enqueue(_llm_span_with_expected_ragas_inputs_in_messages(), None) + with mock.patch("ragas.metrics.answer_relevancy.calculate_similarity", return_value=numpy.array([1.0, 1.0, 1.0])): + LLMObs._instance._evaluator_runner.enqueue(_llm_span_with_expected_ragas_inputs_in_messages(), None) """, env=env, ) From 994fd4be32793db43ac157bdc63ff909229ef3e4 Mon Sep 17 00:00:00 2001 From: lievan Date: Tue, 14 Jan 2025 11:06:15 -0500 Subject: [PATCH 09/15] change order of patching --- tests/llmobs/test_llmobs_ragas_evaluators.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/llmobs/test_llmobs_ragas_evaluators.py b/tests/llmobs/test_llmobs_ragas_evaluators.py index 1f2355dd8a5..6a1e4096f9e 100644 --- a/tests/llmobs/test_llmobs_ragas_evaluators.py +++ b/tests/llmobs/test_llmobs_ragas_evaluators.py @@ -456,9 +456,9 @@ def test_llmobs_with_answer_relevancy_emits_traces_and_evals_on_exit(mock_writer import os ctx.__enter__() atexit.register(lambda: ctx.__exit__()) -with mock.patch("ddtrace.internal.writer.HTTPWriter._send_payload", return_value=Response(status=200, body="{}")): - LLMObs.enable(api_key="dummy-api-key", site="datad0g.com", ml_app="unnamed-ml-app", agentless_enabled=True) - with mock.patch("ragas.metrics.answer_relevancy.calculate_similarity", return_value=numpy.array([1.0, 1.0, 1.0])): +with mock.patch("ragas.metrics.answer_relevancy.calculate_similarity", return_value=numpy.array([1.0, 1.0, 1.0])): + with mock.patch("ddtrace.internal.writer.HTTPWriter._send_payload", return_value=Response(status=200, body="{}")): + LLMObs.enable(api_key="dummy-api-key", site="datad0g.com", ml_app="unnamed-ml-app", agentless_enabled=True) LLMObs._instance._evaluator_runner.enqueue(_llm_span_with_expected_ragas_inputs_in_messages(), None) """, env=env, From c7d84f35b9bfa968b64e987dbe0eb11dc642c5bf Mon Sep 17 00:00:00 2001 From: lievan Date: Tue, 14 Jan 2025 11:35:16 -0500 Subject: [PATCH 10/15] only exit patcher on exit --- tests/llmobs/test_llmobs_ragas_evaluators.py | 23 +++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/tests/llmobs/test_llmobs_ragas_evaluators.py b/tests/llmobs/test_llmobs_ragas_evaluators.py index 6a1e4096f9e..2013bfaa244 100644 --- a/tests/llmobs/test_llmobs_ragas_evaluators.py +++ b/tests/llmobs/test_llmobs_ragas_evaluators.py @@ -450,16 +450,23 @@ def test_llmobs_with_answer_relevancy_emits_traces_and_evals_on_exit(mock_writer from ddtrace.internal.utils.http import Response from tests.llmobs._utils import _llm_span_with_expected_ragas_inputs_in_messages from tests.llmobs._utils import logs_vcr -ctx = logs_vcr.use_cassette( + +cassette_ctx = logs_vcr.use_cassette( "tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml" ) -import os -ctx.__enter__() -atexit.register(lambda: ctx.__exit__()) -with mock.patch("ragas.metrics.answer_relevancy.calculate_similarity", return_value=numpy.array([1.0, 1.0, 1.0])): - with mock.patch("ddtrace.internal.writer.HTTPWriter._send_payload", return_value=Response(status=200, body="{}")): - LLMObs.enable(api_key="dummy-api-key", site="datad0g.com", ml_app="unnamed-ml-app", agentless_enabled=True) - LLMObs._instance._evaluator_runner.enqueue(_llm_span_with_expected_ragas_inputs_in_messages(), None) +mock_calc_sim_ctx = mock.patch( + "ragas.metrics.answer_relevancy.calculate_similarity", return_value=numpy.array([1.0, 1.0, 1.0]) +) + +cassette_ctx.__enter__() +mock_calc_sim_ctx.start() + +atexit.register(lambda: cassette_ctx.__exit__()) +atexit.register(lambda: mock_calc_sim_ctx.stop()) + +with mock.patch("ddtrace.internal.writer.HTTPWriter._send_payload", return_value=Response(status=200, body="{}")): + LLMObs.enable(api_key="dummy-api-key", site="datad0g.com", ml_app="unnamed-ml-app", agentless_enabled=True) + LLMObs._instance._evaluator_runner.enqueue(_llm_span_with_expected_ragas_inputs_in_messages(), None) """, env=env, ) From 8a81d22cc7ba47707bdd575f7f30687b8c111ead Mon Sep 17 00:00:00 2001 From: lievan Date: Tue, 14 Jan 2025 18:57:11 -0500 Subject: [PATCH 11/15] clean up tests --- ...valuators.answer_relevancy_inference.yaml} | 0 ...t_ragas_answer_relevancy_emits_traces.yaml | 552 ------------------ ...s_evaluation_on_span_with_custom_keys.yaml | 552 ------------------ ...ion_on_span_with_question_in_messages.yaml | 552 ------------------ tests/llmobs/test_llmobs_ragas_evaluators.py | 75 +-- 5 files changed, 15 insertions(+), 1716 deletions(-) rename tests/llmobs/llmobs_cassettes/{tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml => tests.llmobs.test_llmobs_ragas_evaluators.answer_relevancy_inference.yaml} (100%) delete mode 100644 tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml delete mode 100644 tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml delete mode 100644 tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.answer_relevancy_inference.yaml similarity index 100% rename from tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation.yaml rename to tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.answer_relevancy_inference.yaml diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml deleted file mode 100644 index 3cbbfaee657..00000000000 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_emits_traces.yaml +++ /dev/null @@ -1,552 +0,0 @@ -interactions: -- request: - body: '{"messages": [{"content": "Generate a question for the given answer and - Identify if answer is noncommittal. Give noncommittal as 1 if the answer is - noncommittal and 0 if the answer is committal. A noncommittal answer is one - that is evasive, vague, or ambiguous. For example, \"I don''t know\" or \"I''m - not sure\" are noncommittal answers\n\nThe output should be a well-formatted - JSON instance that conforms to the JSON schema below.\n\nAs an example, for - the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": - \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, - \"required\": [\"foo\"]}\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted - instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} - is not well-formatted.\n\nHere is the output JSON schema:\n```\n{\"type\": \"object\", - \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, - \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": - [\"question\", \"noncommittal\"]}\n```\n\nDo not return any preamble or explanations, - return only a pure JSON string surrounded by triple backticks (```).\n\nExamples:\n\nanswer: - \"Albert Einstein was born in Germany.\"\ncontext: \"Albert Einstein was a German-born - theoretical physicist who is widely held to be one of the greatest and most - influential scientists of all time\"\noutput: ```{\"question\": \"Where was - Albert Einstein born?\", \"noncommittal\": 0}```\n\nanswer: \"It can change - its skin color based on the temperature of its environment.\"\ncontext: \"A - recent scientific study has discovered a new species of frog in the Amazon rainforest - that has the unique ability to change its skin color based on the temperature - of its environment.\"\noutput: ```{\"question\": \"What unique ability does - the newly discovered species of frog have?\", \"noncommittal\": 0}```\n\nanswer: - \"Everest\"\ncontext: \"The tallest mountain on Earth, measured from sea level, - is a renowned peak located in the Himalayas.\"\noutput: ```{\"question\": \"What - is the tallest mountain on Earth?\", \"noncommittal\": 0}```\n\nanswer: \"I - don''t know about the groundbreaking feature of the smartphone invented in - 2023 as am unaware of information beyond 2022. \"\ncontext: \"In 2023, a groundbreaking - invention was announced: a smartphone with a battery life of one month, revolutionizing - the way people use mobile technology.\"\noutput: ```{\"question\": \"What was - the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": - 1}```\n\nYour actual task:\n\nanswer: \"The capital of France is Paris\"\ncontext: - \"The capital of France is Paris.\"\noutput: \n", "role": "user"}], "model": - "gpt-4o-mini", "n": 3, "stream": false, "temperature": 0.3}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '2795' - content-type: - - application/json - cookie: - - __cf_bm=jNCWyg.Vq7.UysipP_0ZTDahpo.QhHWQvZ5Biaue6Bs-1736795781-1.0.1.1-C.GEfp7jlmfkY9qIXtsRjf9L9W5MzQ2OSXUpBOB0jIjYNSrJBlVnNwuHbaPYKT9.DjEjgPPIK69hkYhC0UtQZA; - _cfuvid=g4nQujMCF8pE0TfAWPiY5rkdnbhtDE1kP7w0dFQq.v4-1736795781566-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - body: - string: !!binary | - H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5N6jNtptuLwiEQNAT4rBIFCWuPUm8OLbXngCrqv+O - nKZNqgWJO1xyeG/e5M2zx4eEMVASNgxEw0m0Tqev3PbNayXfb7db9fnm3RP/8elD83Ava/9x9Qiz - qLD7BxR0Vr0QtnUaSVlzooVHThi7LvKb2/xula9XPdFaiTrKakfp0qatMirN5tkynefpYj2oG6sE - BtiwLwljjB36b/RpJP6EDZvPzkiLIfAaYXMpYgy81REBHoIKxA3BbCSFNYSmt16W5WEHjx2G6HwH - G7aD+4YTU4FRg0xwp4hrZiv21nMj8OUOZmwHxhph21YRcR1V82NZltN/eKy6wOOcptN6wI8X09rW - ztt9GPgLXimjQlN45MGaaDCQdZBMxM+SWPxPYkgi+/eSSBj72i9MdzUvOG9bRwXZb2hiw9tsWBgY - 93TC3g0kWeJ6gq/PxFW/QiJxpcMkXhBcNChH6bifvJPKTojpET5387vep8mVqf+m/UgIgY5QFs6j - VOJ64rHMY3zG/lR2Sbk3DAH9dyWwIIU+noTEinf6dJEgPAXCtqiUqdE7r063qXJFnqHM+X61FJAc - k18AAAD//wMAh5BSKW8FAAA= - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 9017b87b7a2172c2-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Mon, 13 Jan 2025 19:16:26 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - datadog-staging - openai-processing-ms: - - '527' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '30000' - x-ratelimit-limit-tokens: - - '150000000' - x-ratelimit-remaining-requests: - - '29999' - x-ratelimit-remaining-tokens: - - '149999320' - x-ratelimit-reset-requests: - - 2ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_676b13e59057c608d2aae93dc46c6325 - status: - code: 200 - message: OK -- request: - body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", - "encoding_format": "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '114' - content-type: - - application/json - cookie: - - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; - _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - body: - string: !!binary | - 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 - AAA= - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 9017b87ffc35de9b-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Mon, 13 Jan 2025 19:16:26 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-model: - - text-embedding-ada-002 - openai-organization: - - datadog-staging - openai-processing-ms: - - '47' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-6979b7df47-vvg7g - x-envoy-upstream-service-time: - - '23' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999993' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_2300f9a23e5574b468cebc70b0876a9f - status: - code: 200 - message: OK -- request: - body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30], [3923, 374, 279, 6864, - 315, 9822, 30], [3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", - "encoding_format": "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '192' - content-type: - - application/json - cookie: - - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; - _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - body: - string: !!binary | - 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 - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 9017b883ea8ade9b-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Mon, 13 Jan 2025 19:16:26 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-model: - - text-embedding-ada-002 - openai-organization: - - datadog-staging - openai-processing-ms: - - '69' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-6f955f97bb-4khl7 - x-envoy-upstream-service-time: - - '33' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999979' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_7a8af08acb2e6c4ca1a74650c0472e24 - status: - code: 200 - message: OK -version: 1 diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml deleted file mode 100644 index 10f37811fed..00000000000 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys.yaml +++ /dev/null @@ -1,552 +0,0 @@ -interactions: -- request: - body: '{"messages": [{"content": "Generate a question for the given answer and - Identify if answer is noncommittal. Give noncommittal as 1 if the answer is - noncommittal and 0 if the answer is committal. A noncommittal answer is one - that is evasive, vague, or ambiguous. For example, \"I don''t know\" or \"I''m - not sure\" are noncommittal answers\n\nThe output should be a well-formatted - JSON instance that conforms to the JSON schema below.\n\nAs an example, for - the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": - \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, - \"required\": [\"foo\"]}\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted - instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} - is not well-formatted.\n\nHere is the output JSON schema:\n```\n{\"type\": \"object\", - \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, - \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": - [\"question\", \"noncommittal\"]}\n```\n\nDo not return any preamble or explanations, - return only a pure JSON string surrounded by triple backticks (```).\n\nExamples:\n\nanswer: - \"Albert Einstein was born in Germany.\"\ncontext: \"Albert Einstein was a German-born - theoretical physicist who is widely held to be one of the greatest and most - influential scientists of all time\"\noutput: ```{\"question\": \"Where was - Albert Einstein born?\", \"noncommittal\": 0}```\n\nanswer: \"It can change - its skin color based on the temperature of its environment.\"\ncontext: \"A - recent scientific study has discovered a new species of frog in the Amazon rainforest - that has the unique ability to change its skin color based on the temperature - of its environment.\"\noutput: ```{\"question\": \"What unique ability does - the newly discovered species of frog have?\", \"noncommittal\": 0}```\n\nanswer: - \"Everest\"\ncontext: \"The tallest mountain on Earth, measured from sea level, - is a renowned peak located in the Himalayas.\"\noutput: ```{\"question\": \"What - is the tallest mountain on Earth?\", \"noncommittal\": 0}```\n\nanswer: \"I - don''t know about the groundbreaking feature of the smartphone invented in - 2023 as am unaware of information beyond 2022. \"\ncontext: \"In 2023, a groundbreaking - invention was announced: a smartphone with a battery life of one month, revolutionizing - the way people use mobile technology.\"\noutput: ```{\"question\": \"What was - the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": - 1}```\n\nYour actual task:\n\nanswer: \"France is indeed part of europe\"\ncontext: - \"irrelevant\\nFrance is part of europe\"\noutput: \n", "role": "user"}], "model": - "gpt-4o-mini", "n": 3, "stream": false, "temperature": 0.3}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '2802' - content-type: - - application/json - cookie: - - __cf_bm=jNCWyg.Vq7.UysipP_0ZTDahpo.QhHWQvZ5Biaue6Bs-1736795781-1.0.1.1-C.GEfp7jlmfkY9qIXtsRjf9L9W5MzQ2OSXUpBOB0jIjYNSrJBlVnNwuHbaPYKT9.DjEjgPPIK69hkYhC0UtQZA; - _cfuvid=g4nQujMCF8pE0TfAWPiY5rkdnbhtDE1kP7w0dFQq.v4-1736795781566-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - body: - string: !!binary | - H4sIAAAAAAAAAwAAAP//7FTBjtMwEL3nK6w5N6gNbRNyQYsACfa2F8SSVeI6k9as4zH2BAFV/x25 - 7TZZ7SJxh4sP8+Y9vXn2eJ8IAbqFUoDaSVa9M+mVu357VTi9uR1u+Nf1bbb5/Om+kKuP6xt6A7PI - oM1XVPzAeqGodwZZkz3ByqNkjKqL/OU6f7XKi+UR6KlFE2lbx+mS0l5bnWbzbJnO83RRnNk70goD - lOJLIoQQ++MZfdoWf0Ap5rOHSo8hyC1CeWkSAjyZWAEZgg4sLcNsBBVZRnu03jTNvoJvA4bovIJS - VPAhiPdeWoXCSc+COvFu8OTwdQUzUYElq6jvNbM0kTA/NE0zlffYDUHGEe1gzLl+uPg1tHWeNuGM - X+qdtjrsao8ykI3eApODZEJ+EsLifwilyP6pEBIh7o4bMjwaFZyn3nHNdI82Cq6zcy4wLuYEXZ9B - JpZmUi+K2TN6dYsstQmTZEFJtcN2pI4LKYdW0wSY3t5TN89pnybXdvs38iOgFDrGtnYeW60eTzy2 - eYz/1p/aLikfDUNA/10rrFmjjzfRYicHc3pDEH4Gxr7utN2id16fHlLn6jzDNpeb1VJBckh+AwAA - //8DANutsGBgBQAA - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 9017b871ccef72c2-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Mon, 13 Jan 2025 19:16:24 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - datadog-staging - openai-processing-ms: - - '777' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '30000' - x-ratelimit-limit-tokens: - - '150000000' - x-ratelimit-remaining-requests: - - '29999' - x-ratelimit-remaining-tokens: - - '149999318' - x-ratelimit-reset-requests: - - 2ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_ae55f737a392193b7cdef4e15f7413f2 - status: - code: 200 - message: OK -- request: - body: '{"input": [[3957, 48687, 961, 315, 38634, 30]], "model": "text-embedding-ada-002", - "encoding_format": "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '111' - content-type: - - application/json - cookie: - - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; - _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - body: - string: !!binary | - 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 - //8DADOe/03eIAAA - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 9017b877eeb4de9b-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Mon, 13 Jan 2025 19:16:25 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-model: - - text-embedding-ada-002 - openai-organization: - - datadog-staging - openai-processing-ms: - - '74' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-86c567f984-9tp6h - x-envoy-upstream-service-time: - - '34' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999994' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_f7faff67f06c8d0c62f8aae437c290ab - status: - code: 200 - message: OK -- request: - body: '{"input": [[3957, 9822, 961, 315, 4606, 30], [3957, 9822, 961, 315, 4606, - 30], [3957, 9822, 961, 315, 4606, 30]], "model": "text-embedding-ada-002", "encoding_format": - "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '177' - content-type: - - application/json - cookie: - - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; - _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - body: - string: !!binary | - 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 - 1qpHeAIAAP//AwDXFfCAhGEAAA== - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 9017b878da6dde9b-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Mon, 13 Jan 2025 19:16:25 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-model: - - text-embedding-ada-002 - openai-organization: - - datadog-staging - openai-processing-ms: - - '171' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-678875496d-cr9t2 - x-envoy-upstream-service-time: - - '93' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999982' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_ffd07bf3a52552051c564462e6438af1 - status: - code: 200 - message: OK -version: 1 diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml deleted file mode 100644 index 5506ad97414..00000000000 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_evaluators.test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages.yaml +++ /dev/null @@ -1,552 +0,0 @@ -interactions: -- request: - body: '{"messages": [{"content": "Generate a question for the given answer and - Identify if answer is noncommittal. Give noncommittal as 1 if the answer is - noncommittal and 0 if the answer is committal. A noncommittal answer is one - that is evasive, vague, or ambiguous. For example, \"I don''t know\" or \"I''m - not sure\" are noncommittal answers\n\nThe output should be a well-formatted - JSON instance that conforms to the JSON schema below.\n\nAs an example, for - the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": - \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, - \"required\": [\"foo\"]}\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted - instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} - is not well-formatted.\n\nHere is the output JSON schema:\n```\n{\"type\": \"object\", - \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, - \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": - [\"question\", \"noncommittal\"]}\n```\n\nDo not return any preamble or explanations, - return only a pure JSON string surrounded by triple backticks (```).\n\nExamples:\n\nanswer: - \"Albert Einstein was born in Germany.\"\ncontext: \"Albert Einstein was a German-born - theoretical physicist who is widely held to be one of the greatest and most - influential scientists of all time\"\noutput: ```{\"question\": \"Where was - Albert Einstein born?\", \"noncommittal\": 0}```\n\nanswer: \"It can change - its skin color based on the temperature of its environment.\"\ncontext: \"A - recent scientific study has discovered a new species of frog in the Amazon rainforest - that has the unique ability to change its skin color based on the temperature - of its environment.\"\noutput: ```{\"question\": \"What unique ability does - the newly discovered species of frog have?\", \"noncommittal\": 0}```\n\nanswer: - \"Everest\"\ncontext: \"The tallest mountain on Earth, measured from sea level, - is a renowned peak located in the Himalayas.\"\noutput: ```{\"question\": \"What - is the tallest mountain on Earth?\", \"noncommittal\": 0}```\n\nanswer: \"I - don''t know about the groundbreaking feature of the smartphone invented in - 2023 as am unaware of information beyond 2022. \"\ncontext: \"In 2023, a groundbreaking - invention was announced: a smartphone with a battery life of one month, revolutionizing - the way people use mobile technology.\"\noutput: ```{\"question\": \"What was - the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": - 1}```\n\nYour actual task:\n\nanswer: \"The capital of France is Paris\"\ncontext: - \"The capital of France is Paris.\"\noutput: \n", "role": "user"}], "model": - "gpt-4o-mini", "n": 3, "stream": false, "temperature": 0.3}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '2795' - content-type: - - application/json - cookie: - - __cf_bm=jNCWyg.Vq7.UysipP_0ZTDahpo.QhHWQvZ5Biaue6Bs-1736795781-1.0.1.1-C.GEfp7jlmfkY9qIXtsRjf9L9W5MzQ2OSXUpBOB0jIjYNSrJBlVnNwuHbaPYKT9.DjEjgPPIK69hkYhC0UtQZA; - _cfuvid=g4nQujMCF8pE0TfAWPiY5rkdnbhtDE1kP7w0dFQq.v4-1736795781566-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - body: - string: !!binary | - H4sIAAAAAAAAAwAAAP//7FRNj9MwEL3nV1hzblAbuptsLwiE4LDcF4mixLUniVl/rT1BQNX/jtym - TapdJO5wyeG9eZM3zx7vM8ZASdgwED0nYbzO3/r795W5/zRU/bvP8umXM+HhUfW7jxX3ARZJ4Xbf - UNBZ9Uo44zWScvZEi4CcMHVdla9vy7ubsiqOhHESdZJ1nvK1y42yKi+WxTpflvmqGtW9UwIjbNiX - jDHG9sdv8mkl/oANWy7OiMEYeYewuRQxBsHphACPUUXilmAxkcJZQnu03jTNfgtPA8bkfAsbtoWH - nhNTkVGPTHCviGvmWvYhcCvwzRYWbAvWWeGMUURcJ9Xy0DTN/B8B2yHyNKcdtB7xw8W0dp0PbhdH - /oK3yqrY1wF5dDYZjOQ8ZDPxsyRW/5MYkyj+vSQyxr4eF2a4mhd8cMZTTe4RbWp4W4wLA9Oezti7 - kSRHXM/w6kxc9aslElc6zuIFwUWPcpJO+8kHqdyMmB/hczcv9T5Nrmz3N+0nQgj0hLL2AaUS1xNP - ZQHTM/anskvKR8MQMXxXAmtSGNJJSGz5oE8XCeLPSGjqVtkOgw/qdJtaX5cFypLvbtYCskP2GwAA - //8DAJcsvO9vBQAA - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 9017b86a7b1972c2-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Mon, 13 Jan 2025 19:16:23 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - datadog-staging - openai-processing-ms: - - '543' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '30000' - x-ratelimit-limit-tokens: - - '150000000' - x-ratelimit-remaining-requests: - - '29999' - x-ratelimit-remaining-tokens: - - '149999320' - x-ratelimit-reset-requests: - - 2ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_f0b56db67d0097bec5daa15e0c46bf1e - status: - code: 200 - message: OK -- request: - body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", - "encoding_format": "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '114' - content-type: - - application/json - cookie: - - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; - _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - body: - string: !!binary | - H4sIAAAAAAAAA1R62a6zurbm/X6KpXWb2gpd8GDdESCQ0NhJIF2pVAKSECCE0NiAj867l8h/dKrq - ZkqT6QkGD3/d8H/866+//q6T4pH2f//z19/vvOv//h/ztXvcx3//89f//Ndff/3113/8fv5/Ix9V - 8rjf80/2G/77Y/65P8a///lL+O8r/3fQfO/usyW6cQiS8fqNqTqZDmFB9CzQZNaOAvxD18wig+yx - MtBK1X4rAQvr8BNO1X4QQBKbG1uX1xwNXnmJIVDSKxUgH/kkaS4FIigf4ir9J+GqqVbI3199XDcX - uajvtNRBWz01LMjftzeRozeg9egZzOXXtJjug5tDdO1dshW/q7BfSw2F69jrDBfHVzIF8SNCmVc/ - mL4LcsR72gpoO778eT4GF+8HyYLbsz6zLc6WbX8/SDZoi5YQm5Kl16XjykCR1Lzo8hI5RVfULAM1 - 2G7IzY8HNKqrAqB1rSs7ewprp+Pxe4TmuxswYGInw+pRZmgp1BzLrn3xuHURclAP+ZbgbKd4NIjP - Z7ADd0s2q3MecnzWDY0a4gMvF/d12Itn24fxmafEum1eaMhbIQMosxgP6XFop29oK7DgboPDe/nm - LTkiHRbZ4stcFB9bmpzUCC3Ec4ulnVeGVBTiWs1PTko2b/Hc8kXxluCwLUeC3fZk8hUyUgir20hc - +WO34+OUVdDot454R68xR6hfEaiK7WHqLb5FfT/YErqXR5eZPdTeoCaXXG1k9UIb59qF3f2NFogU - yyWehvclpO/ltVkthYYTV09lkwdsopqrZjqV8WntyYq/2cL0bY8UoQdGbDc1GDmP+kAOe10vpD3L - AGx1T5hX+0Eo58s8RocycpjFYuRNMOmNhjaWShfcKcKBrr0jSj+uybzrpQ07qoRbKMs6IoHSbc2h - iFcKxGKeM3N5jdCQfLcA/jhpZLMtP6hL754CR/oA4q2igvPL7WCjGj22xKlXZTH4bklhNEeHrkb3 - lPAKJkXL9T4mdo9q3pP7oQTZEnfMuMY7k+/umgVoVUVUk6tPMoivSIfs3QKe+pNXDBtf6lB/YhdC - FvdX+JsPOpRnh0o33U46NfiqoGp9hYXjrkvGg/wawNAvE7HwSi/kkzMA7CSjYuZRLBO2/FwjuCnX - hJGV+jK77NBF4B0si0QK26BJ2NwjEI6NQzbd2HlNRNI92iySFyO7rV0Mb9G1kJVkH7IzxTgsvFOe - L/Hm6VCl1HQkLfREQOI2Vsn6lQYhI0dkqJFd7EjwRkPLa6GOwPPpmhmXaJuMKdqfNdnHKV4mDm+n - ek0n+IaHN7HXHW0nenMewLRNSzxjtQ0nFLUpNF9voJNweJn9a31dgHBPBeK2730xkGVg/96fLpxk - F7JPoWNNJl+J6Dgswm67vrjgasuY6HJVmyOEgKERuzM5FMfcZLa9UqCJRkqHtpzMjjRPUKVjMeBX - ugq8QTkJDzgEg0n2R6kouHG5GMjZSyFxLwENK8/3MBDZrtl6FEjBPxdvCxcteJMgepqc2/aoqoHy - uBLjs2vCaeKiC+XKOOM6887tdHZ2HcpUc4EXix6F7QoZD8iEa8G274Ns1h9yPGt1qWyIrTiNyR26 - pKvSUwgzdlsnZGm9pkAVd0vco9Nzattuoy4e04f9vudwkKYc+lfas7un9uFUSlkFl4PusHsqDt7o - R76urks3JM7tY6DJ3Ly30F0/e+Ipa5IMd9oZiDlnhVlRvi6kgcY24CEJ6FJaeO34ukg1Mn3/Sfzd - 7o24WcsuCrreINaFdHzisftAy4fNiHO6Knys9WUGzW2pM33zunnTXntUEOXHJ1vbyo7TzAkG9BGm - ngVy5YSC2PiWGu6HM0mXyiX5LIq38MMnKqtbLfxIX0sCpjktIWRzLwZwIxWg39nM80jUStWjSuGj - 3W5kw921KT3WOUWy76fMJ9LB5O1XH7R5PkR3P6t2mBYhVd/de8vcgpTJsGkSFZ6ED5h3Nk+4/zEa - 4EZyYetndU2+mEYYRAoaO+jPiPfyxiyRmkYi2ZzuUTLgqyxAYvVHit5c8frLRa1QZwWYal8KRXXK - IIagtM94WHyffDSavoEvrL+41eTSm97La41mvCdOMvacviTTBvuQe+yHRxRUhYK+8gO2Nk67gq+m - +Lq6hZuR2A/b5h13TAmdxf3IrHD58oa5vlGhah+2U/enGe90QMNbHIgrPO4JP6yHK0o/W5NE+Jwl - o/42qj//T8SthNg3lFxYVaXBnO+AvL4kpQWumuvETOie88zRDJj5izj7oxLyASSANIl7YvSntpi2 - WSyo5OYdGF59YjQ9h9oADpZJ9u7nVvSP4uErvPUSKq7rYzI879/rSr4FHhZeCTVHSLs9qOrRp+Vr - gUP2TJstXCXlSMILsvjI+UYFGk42nfdTMpk1UVD6WoyY73yzEOOX7v7Gs3BPUDJMi4SixhmWbK5/ - 3rqWe0XZIVTx9OncduyH+KzW93zEKrfsZGrwOtLm/Ukcq8vC0ZJ1DDSNJ7J5fsWEBUztQKQLjZjT - s04YOXIdSJa9mad6cTJdrl8BUhgfdNVZEZomrrmoR/p6Xt+A860fATwmbhD9bJOQS+S4Rdp9/2B4 - eKlhP6UZRjN/Mt0WgnaQK9lCuegLWFQDBY3hYTK0UhJOzCovZjH9+LIS0zddbt9VMp605gy9q36Z - +VYnj7pqq4OxciT6JQ54Y/Aut3/W/6C6iPft2XWhX9wTtl6Fm5BXm8KAnKQ6Od6zb9uJixVW90zq - mDPlm2S0gh5UiJcbFsRpzKdpqWL1JSodHoZm4j1b9A91o4LDHm9ybSksF0d43k4bcp+yindusKLI - P1YB0+fx7My9CcS4RMRrvz7njtkpqPArh+DmdDOnS/VM0WN4r5m/bgaTf3BoaX2zuWExY2dzEnI1 - h9Pic2KbjJ29SX+vBM0n94I4eV8kfb7wFHgvxh378X2PvTH94dWMTyuTyW9ZAIo+OV6N6redmqG0 - EVvVB0KWkcwHS7oC0m1FwEhCuJUFDA0CiSZ4afsHs/vhJyVXE8tYWYfSimxj+ICrE3LEjin/7u+9 - HzYe01Xv8X1S2LAynzcKKebtRB66BMaFbSg/b/Ymm/EfJe3hROwqDU2mRBpe7fBLxSvl6/3RUyAN - T+cPf0vJST2jmY+Zva0tc3hnESC1oDuq7OKl2Vd3GUMXJgu2uYQ7ky7yRYnE0+1LgtM5Tj5ttqew - xnLNtt6eI66xRoWL31jM0kQ7mVQ1xDCowURlwbMT+dMqe7hR2aYvWhZoSCjO1PvR3hEcFbonGYK1 - AH3d58SxpTZkD+O2gMXWL3/43fapfloAkx/7mS/dhF2bEcOsD9nNXSft6LRZo23Kq0XuZrk2pdvD - V9BBoTvmXxTHHGtdzkB9Ky6GT/81OdN9A/pTf2Hrm702aSllJUh41xMrMFvEhzjFgBFRyWaRGmhi - 0VqFX/2706sy+ft57xA+3iViuqbqDT89+7X3EsGz/h12DziDcqdvWijLJ6f1upqAkWWJl69QQH2K - 9pGGfSkmjmikiAfJpgLho+9YPL1sc/KyIdLyQ2OwgAp3czzkUKtG1Ats565R24W8z1RZ3uZk1qec - B0o+we5+fLFgF+TelCh3+/e+FLldFA7iYsTa092esOQngzeeDAZoutwPDIM+eNOq5ramaqxivn8b - i6nolQztPDuj8OPDqK8pDHl8xiLv14nEllEHStNHbE3Lgg/S/nCF5aexKA+vVjFCWu7RXB9ke2Tf - oqduXmpO/WVU/qYW4hWoCjoOzYKOVR6g6XJ9CQiWF4f4EdP4GFNt+NUXrt8H2aMyzlXYmSwg7kUz - 2p8+VvPv88Hs82f0Jns8PWAtRRGz3Obcsvchs9G8n5i3P50Stu6sLeDjU6K587TD7iR4OqoXKCd+ - EwvtRCpFgR/fbe+P9re+FKTOsSjM+oUJ3UFSYSx2xNIfYjuZhxyD4mUl01/XgznzcQNqvBWIJ2Az - /P2O/FCsCDb958yXbqnScLCZs312Cdc3kor4bmiIP66akF/ytatlOc6JX66X7bgLaf7DF3pByQGN - 1++xg+z89HE58iGcDliaYPmpLaa/0SHpnx+9g3Pbp4RIi7ad9aWi5aFk4iF6lu0An8nW0p3fsV/9 - jmc7fiB6KDfMlN81H6wrH+BZv0SGT9oZsXCqjrA/H65Y+N4tUzCdsIHn7bJhO2NRoK8V9Atgfu4y - 67jzw17bfzDQ98KhXf6pi9eNZIb2yauOEOGgJ4JZKhJgsXoS91AG7XSO5AjG+zn55QV8WLt1rbru - tcalLTctj1dWBJ6TMSxeb18+WfiEwYdPw5zyXCajvPFKNNcb8RLB5aOVhzY4/mNPJ8XqPTbq3xwg - fE/ErEMn6X56zZkCi+2WRuZxS70coe1bl1lhqvP+KUgR2DRf4aftH7wRy/4RDZ50JMGhwOH0coc9 - zH6GFju/KLhE4i1Y0qOf13+c/cKo/PASa8aha0dxey0BPRqM5bJR227jLzrYbZUnlhTHNen3AwYa - 7FYnJA2icKybwwBFD8qvPkIuZumgktTNmTNOB69/dcUEr8vyRHT/TovvrL9U5/ZYEt/JLCQhD10h - PQ5rEv/8eVTEW4D74sx8zeu8qXWFMwjJkeOBXxbetBHyB4xHTWbWofK9sRRXZ/TzM/aHOcUAH9UG - vU9lrJRaxsdfHtJMbMMs+bvxaPrIr0g/OyWz62Pt0R9/zX533m9iwrVA32pz/kOHXWAgoTHVCah6 - 3lH5FVM0deOuRHJWPpn57R/mcCn0q5ZZoUd2yrf1OiPVJ3hx2pKAq1oxblrTheB0YmT7PlzMge3Q - +ee/sZxGOOGRhR8w5ynM7Rdv3j8f+wY+qVETXbg/+FTzlY0OBCyW2DvBG/GN2Wjej3TqJi+UZr0A - wijJbBf073CclgbA/VQU9JentHHCtuhWGjdmH15Dy81iVan7D9aZkQYnr5StNILiHflszg+8Yb9/ - H5FUrSZGivsTDUa4p4hegoz98pUhkvc6xLfRZ2czN5PJ30o+0rZq+ke/98jzXTjxqSbePF/uf9wG - wuOa0ekS1UnTlMxYbXTDIORxWYa/74+qlGbEQw/MqU5fqha6/pGYh5yh4apdK6QwpWLnh6aF03lK - M6jP3oPtiJN6Ux5m5z/7ybfMTTjtxgl+zyMVfideb6SDASTvKnLYRxLqBWm4auBNp59eCtnX1nNg - maWx3WPjtHxdRJaq+KPGdhZKTN56baWW2N4zz1jVyR+/O+drBOtPwRyuF++MZv1HZj1m0tn/o2ZT - LoivTmc++5cY0cA32HaRmIV494cMpOJxZYZxe/OfPljtz+H1D58OperUq1Y0HsxaVWk4xHgY4FxZ - a5LwbV5M+xhJSHraJ7azR8bH45PVaBnuDdrOfDHeJndCUfhSmGGAbcoZJxKU9YYS57JYc+k+GJmG - VLEnbpQVHg+SoIR0dbaIJ25uqBduCYa1kp3YmiqqOeXpNYZQ5Zx4UJJicq/6XnuScWDnZhmGTTeu - S0itdUyp3JhFPShD/cefWupq4N9N67molKQTXdCyMCdjq25V6fgayCZyl3xa32BYzXkDFY9B3bJT - k3QIbWwVPx+XZzImfqhDHgomHo5S0fLFafDR+01EvErJEU276DTB7D+ZmTdVSNPPMUUnPwQqaGIV - jqOnWwi84TTzd4lm/Smgnx7DylAmza2CBVx2Nad8etZhc0F+CXL/CahqvvVkADdVoWNQMGOlvlBf - OYdcrSq2IIbLJo8txQDQzrMyOqmjEtLIfGJI2vCERfrJ0LD6pNUPb7Hs3Lxi/OU9j6I8stCyTXPc - V+sGvp/28wePR398+QAfTcCLN7kWw2VV2aB+TyXZpshFP/6FwrmKs/6XTP6r35N/AGZadmG23ahI - 6EZFm2bu59ZOPtL/5Lu4TsTGaz4WmmBYJtasf0wkf9phDwdVcdn+sUz4hDwUr7YSfbA5X/Ck+XvC - 1puuZNNHXTI2QWyjk6cX5GaKccLybZwjQz9NeJrzMPUcLSOY8YbY+fdj9tV+V8KKYUq2p+Up5PZk - UQiX2ob5QyXysU96/4cnP7+IeG/edHXDS+EPvrYNHiqYXkZFtt4+5EN7ihXIK8MiplkYrSxfXR+G - q7gm61N8SfhGPFA4TtKSCh+hMMflssuRtHmtGaZl4fHi4FY/viVWtl0V0/K+MtBRazs8rGnvtWTY - Y4DwMzHTX5Ji6GMNYPdqSmJ1Pfnjb8F14/qnr/hYN7cBZv1HF20dFNOqRjaSDvsLuSW7ozdMmZSp - b8+/MEcTPuYvf4doeQjwoOzqYnpJngWOn+6ZIRxeHteC7RZumFFi3tbv4nub3AHN+Qlztb3TDsZX - itHmbgxso+1wyGvtGqveuX8yf7nOeDPsQQVciQrbGKji32NbUnDT6svcm2kmLe7eHcz4y3amqIaD - GrxU6M43guUqI8m4fbYlisJCweN4YOFYlAcM9eroUJ4exoTepsnQNEkviLUpJY+yhpWwxmJN3Ju6 - Ql14UwVIjOLAtv5ZaEdOt5GS7nBHtehpIumGGgvNeS+JZ74b/GG1QMGKjdh6Glf+yw8BvfGRLmc/ - 2q9cWoN0YQaxb3qVTPPz0CXzZYLnPGQoiy+AHJkrgs+9Z4rCLfShkZULVYWHFvbOQDHo80yFC+mQ - vPxczwD22ySmbNTFuKdjB/V6TEkadLY5ZvYjA7jDmZinU8L7U7bZ/vIcdrucbXNizadEkZBmZK0M - G3MULGqhGxJF9vNf7+s37kCNtJwu5jyIo1Pcodk/sY0aXPn3l9ekq8hiIdnF7ZDeTQUkWYiZ03X7 - lmvHDdWW02PCe8vJk3Hsc+EPHox8obacRqMLiy0uCTmvuTeJwrEBub359PHwdS4WtmBov/6CQcRj - 8TX36kL96enF5h0V/Lz/GjCa3JnzrzMabSiOEL7d66z34mIKqiRGw1seqDAVZdHoB5+iZNle6DTz - CSefevvLn+f+k4EmJfN02CePZq4XklDk8RguGnnP/atb8sdfzHiCFcIjr3Py9RmqdrVn6VCJiN9L - oOjZM4f88pgpXyBXLfuDzjaNpbd8rlckk1aiy5kPvkPqdnBxHtPcz6nasezXexQ6ZM2M5nY2R3FZ - pyD5SvTL39rx6ok5XFaDRx7fh1FIeWMb6Gwsr1gLdGp2IX/nYGcdop2hla34UMwIrHtXM2PW4xNM - 2xp839ixTWg9zcmfrim6RPcX2T02n6KLL5n0618Qa+5fdGryzOB8OcVse726RacqQgfvYpESN1j3 - 4RCn1RWSLK2ZJ11p0pFlYMFRLyqc5Lrvydz2S2B7NaDyzcqLcd2rzQ9PmbVcjiFF32sFM96yzeps - hPJmsZ5++TxV3J63060CgDE+uWTjPD7mSN2mgvjy8dgvvxdyoazgbp/5f/k9nb4Udc1PJubye8vF - 5Dv4YFm7iHnLg8p/eh42zfrJgt2QJ5NcXA1IUbZh21EKwqkLyxjNeRPVrGbNpa0h1nDB0oaQw+PI - x/ah+pAK7sTW4T3zJi9Ce7Ukp+/8fQNPVjL1CMWKYqwutSMfjHQ7gN48KzLXF+8Eab1F2+XJZT9/ - SX/8fKZdzwz/Gno8HcZJ0ySjIKYqRgW/weEMefpgzMdF2g5Xzz5qanoWiXmuh5DZk9+huT+J5Tnf - 43mj7ZErRpTM+iHpnNvtiAJd63E989VEe6EC1EsL5qYSS4bzpsVgq0fCdmfzUPCkJ3skX9YuO+z1 - rOgzpRbgHd8cZm3KsylfmxVG83qTzRR3nG++aQMvUe3+9HO50N0k+IbhG6ufqSyGrLqliOS0IltN - KcJuBesOZn1I37vFo+0sab/Qon7jk91bCYuRtA4GQj4w8xPj3f2ABfRbz+/MP115KRW4JIJATGW7 - S3hvHnTNiQ495pZ2K9jpVJXoW8UYo7XJC77TLwqc3ajFE611T0qP7zO00zqY+ZdzbhxvKcz3p6K2 - MlrR80KAm3eMmOPasjnOeAOHYDLJr98z+7UUAQkYRXx5M9kznGwt/94fdIi4yofzITsi4f4QsJYe - CZpefWige9yJdPlsOBpzMZHAIajBYuQ+0bgLq3xFacWZY4StSdNjH8ExsL0/7zPi6JsjQ5bucx50 - aFkVX7cw62UMs974ujhbwN+/UwH/+a+//vpfvxMGVX1/vOeDAf1j7P/930cF/h3f438LgvTnGALt - 4uzx9z//dQLh729bV9/+f/d1+fh0f//zF/pz1ODvvu7j9/9z+V/zg/7zX/8HAAD//wMAiTuukd4g - AAA= - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 9017b86ede75de9b-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Mon, 13 Jan 2025 19:16:23 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-model: - - text-embedding-ada-002 - openai-organization: - - datadog-staging - openai-processing-ms: - - '122' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-69b798f78c-8z64h - x-envoy-upstream-service-time: - - '66' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999993' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_ade4d0094e00ec210353016f851aa491 - status: - code: 200 - message: OK -- request: - body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30], [3923, 374, 279, 6864, - 315, 9822, 30], [3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", - "encoding_format": "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '192' - content-type: - - application/json - cookie: - - __cf_bm=s1ISh4iUNLQ2Ya1kD2H7qoQ8Iu5E35cNV7LByFeP6S4-1736795782-1.0.1.1-Yiw0sA3z8E8DIIhiXr_yjzMDz_ePLu1gwWVxoqFOBJDcDhE91jZRgy2Kp6FYdcBcS950vyAqL1y9LPmOMIGJxA; - _cfuvid=beMBNvOtq78fFCvDki.8wgKumD_EQhiZMEDa05JaT7s-1736795782543-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - body: - string: !!binary | - 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 - AAA= - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 9017b8708cc3de9b-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Mon, 13 Jan 2025 19:16:23 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-model: - - text-embedding-ada-002 - openai-organization: - - datadog-staging - openai-processing-ms: - - '46' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-86c567f984-cb9r6 - x-envoy-upstream-service-time: - - '32' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999979' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_74d1c4b94ea48d3c239317a1d4d1fe90 - status: - code: 200 - message: OK -version: 1 diff --git a/tests/llmobs/test_llmobs_ragas_evaluators.py b/tests/llmobs/test_llmobs_ragas_evaluators.py index 58d6b0c4389..b679752f3cf 100644 --- a/tests/llmobs/test_llmobs_ragas_evaluators.py +++ b/tests/llmobs/test_llmobs_ragas_evaluators.py @@ -11,10 +11,15 @@ from tests.llmobs._utils import _expected_ragas_faithfulness_spans from tests.llmobs._utils import _llm_span_with_expected_ragas_inputs_in_messages from tests.llmobs._utils import _llm_span_with_expected_ragas_inputs_in_prompt +from tests.llmobs._utils import logs_vcr pytest.importorskip("ragas", reason="Tests require ragas to be available on user env") +ragas_answer_relevancy_cassette = logs_vcr.use_cassette( + "tests.llmobs.test_llmobs_ragas_evaluators.answer_relevancy_inference.yaml" +) + def _llm_span_without_io(): return _expected_llmobs_llm_span_event(Span("dummy")) @@ -309,14 +314,14 @@ def agenerate_text(self) -> str: assert rar_evaluator.ragas_answer_relevancy_instance.llm.generate_text() == "second dummy llm" -@pytest.mark.vcr_logs def test_ragas_answer_relevancy_submits_evaluation( ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calculate_similarity ): """Test that evaluation is submitted for a valid llm span where question is in the prompt variables""" rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) llm_span = _llm_span_with_expected_ragas_inputs_in_prompt() - rar_evaluator.run_and_submit_evaluation(llm_span) + with ragas_answer_relevancy_cassette: + rar_evaluator.run_and_submit_evaluation(llm_span) rar_evaluator.llmobs_service.submit_evaluation.assert_has_calls( [ mock.call( @@ -335,14 +340,14 @@ def test_ragas_answer_relevancy_submits_evaluation( ) -@pytest.mark.vcr_logs def test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_messages( ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calculate_similarity ): """Test that evaluation is submitted for a valid llm span where the last message content is the question""" rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) llm_span = _llm_span_with_expected_ragas_inputs_in_messages() - rar_evaluator.run_and_submit_evaluation(llm_span) + with ragas_answer_relevancy_cassette: + rar_evaluator.run_and_submit_evaluation(llm_span) rar_evaluator.llmobs_service.submit_evaluation.assert_has_calls( [ mock.call( @@ -361,12 +366,11 @@ def test_ragas_answer_relevancy_submits_evaluation_on_span_with_question_in_mess ) -@pytest.mark.vcr_logs def test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys( ragas, llmobs, mock_llmobs_submit_evaluation, mock_ragas_answer_relevancy_calculate_similarity ): """Test that evaluation is submitted for a valid llm span where the last message content is the question""" - rf_evaluator = RagasAnswerRelevancyEvaluator(llmobs) + rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) llm_span = _expected_llmobs_llm_span_event( Span("dummy"), prompt={ @@ -380,8 +384,9 @@ def test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys( }, output_messages=[{"content": "France is indeed part of europe"}], ) - rf_evaluator.run_and_submit_evaluation(llm_span) - rf_evaluator.llmobs_service.submit_evaluation.assert_has_calls( + with ragas_answer_relevancy_cassette: + rar_evaluator.run_and_submit_evaluation(llm_span) + rar_evaluator.llmobs_service.submit_evaluation.assert_has_calls( [ mock.call( span_context={ @@ -399,12 +404,12 @@ def test_ragas_answer_relevancy_submits_evaluation_on_span_with_custom_keys( ) -@pytest.mark.vcr_logs def test_ragas_answer_relevancy_emits_traces( ragas, llmobs, llmobs_events, mock_ragas_answer_relevancy_calculate_similarity ): rar_evaluator = RagasAnswerRelevancyEvaluator(llmobs) - rar_evaluator.evaluate(_llm_span_with_expected_ragas_inputs_in_prompt()) + with ragas_answer_relevancy_cassette: + rar_evaluator.evaluate(_llm_span_with_expected_ragas_inputs_in_prompt()) ragas_spans = [event for event in llmobs_events if event["name"].startswith("dd-ragas.")] ragas_spans = sorted(ragas_spans, key=lambda d: d["start_ns"]) @@ -423,53 +428,3 @@ def test_ragas_answer_relevancy_emits_traces( for child_span in ragas_spans[1:]: assert child_span["trace_id"] == root_span_trace_id assert child_span["parent_id"] == root_span_id - - -def test_llmobs_with_answer_relevancy_emits_traces_and_evals_on_exit(mock_writer_logs, run_python_code_in_subprocess): - env = os.environ.copy() - pypath = [os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))] - if "PYTHONPATH" in env: - pypath.append(env["PYTHONPATH"]) - env.update( - { - "PYTHONPATH": ":".join(pypath), - "OPENAI_API_KEY": os.getenv("OPENAI_API_KEY", "dummy-openai-api-key"), - "_DD_LLMOBS_EVALUATOR_INTERVAL": "5", - "_DD_LLMOBS_EVALUATORS": "ragas_answer_relevancy", - "DD_TRACE_ENABLED": "0", - } - ) - out, err, status, pid = run_python_code_in_subprocess( - """ -import os -import time -import atexit -import mock -import numpy -from ddtrace.llmobs import LLMObs -from ddtrace.internal.utils.http import Response -from tests.llmobs._utils import _llm_span_with_expected_ragas_inputs_in_messages -from tests.llmobs._utils import logs_vcr - -cassette_ctx = logs_vcr.use_cassette( - "tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml" -) -mock_calc_sim_ctx = mock.patch( - "ragas.metrics.answer_relevancy.calculate_similarity", return_value=numpy.array([1.0, 1.0, 1.0]) -) - -cassette_ctx.__enter__() -mock_calc_sim_ctx.start() - -atexit.register(lambda: cassette_ctx.__exit__()) -atexit.register(lambda: mock_calc_sim_ctx.stop()) - -with mock.patch("ddtrace.internal.writer.HTTPWriter._send_payload", return_value=Response(status=200, body="{}")): - LLMObs.enable(api_key="dummy-api-key", site="datad0g.com", ml_app="unnamed-ml-app", agentless_enabled=True) - LLMObs._instance._evaluator_runner.enqueue(_llm_span_with_expected_ragas_inputs_in_messages(), None) -""", - env=env, - ) - assert status == 0, err - assert out == b"" - assert err == b"" From b3ce36bc6a5510092d3cb8756bd1ee13d58f4d7e Mon Sep 17 00:00:00 2001 From: lievan Date: Tue, 14 Jan 2025 18:57:42 -0500 Subject: [PATCH 12/15] rename var --- ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py index 129bfefc19a..2d8c6a9d543 100644 --- a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py +++ b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py @@ -87,8 +87,8 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] try: evaluation_metadata[EVALUATION_SPAN_METADATA] = self.llmobs_service.export_span(span=ragas_ar_workflow) - cp_inputs = self._extract_evaluation_inputs_from_span(span_event) - if cp_inputs is None: + ar_inputs = self._extract_evaluation_inputs_from_span(span_event) + if ar_inputs is None: logger.debug( "Failed to extract question and contexts from " "span sampled for `ragas_answer_relevancy` evaluation" @@ -96,8 +96,8 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] return "fail_extract_answer_relevancy_inputs", evaluation_metadata prompt = self.ragas_answer_relevancy_instance.question_generation.format( - answer=cp_inputs["answer"], - context="\n".join(cp_inputs["contexts"]), + answer=ar_inputs["answer"], + context="\n".join(ar_inputs["contexts"]), ) trace_metadata["strictness"] = self.ragas_answer_relevancy_instance.strictness @@ -124,11 +124,11 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] # calculate cosine similarity between the question and generated questions with self.llmobs_service.workflow("dd-ragas.calculate_similarity") as ragas_cs_workflow: cosine_sim = self.ragas_answer_relevancy_instance.calculate_similarity( - cp_inputs["question"], gen_questions + ar_inputs["question"], gen_questions ) self.llmobs_service.annotate( span=ragas_cs_workflow, - input_data={"question": cp_inputs["question"], "generated_questions": gen_questions}, + input_data={"question": ar_inputs["question"], "generated_questions": gen_questions}, output_data=cosine_sim.mean(), ) From 5f7474a278a7cc556cec5bb9d07f799e100d5478 Mon Sep 17 00:00:00 2001 From: lievan Date: Tue, 14 Jan 2025 18:58:45 -0500 Subject: [PATCH 13/15] rename ar --- .../llmobs/_evaluators/ragas/answer_relevancy.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py index 2d8c6a9d543..9a640e08454 100644 --- a/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py +++ b/ddtrace/llmobs/_evaluators/ragas/answer_relevancy.py @@ -87,8 +87,8 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] try: evaluation_metadata[EVALUATION_SPAN_METADATA] = self.llmobs_service.export_span(span=ragas_ar_workflow) - ar_inputs = self._extract_evaluation_inputs_from_span(span_event) - if ar_inputs is None: + answer_relevancy_inputs = self._extract_evaluation_inputs_from_span(span_event) + if answer_relevancy_inputs is None: logger.debug( "Failed to extract question and contexts from " "span sampled for `ragas_answer_relevancy` evaluation" @@ -96,8 +96,8 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] return "fail_extract_answer_relevancy_inputs", evaluation_metadata prompt = self.ragas_answer_relevancy_instance.question_generation.format( - answer=ar_inputs["answer"], - context="\n".join(ar_inputs["contexts"]), + answer=answer_relevancy_inputs["answer"], + context="\n".join(answer_relevancy_inputs["contexts"]), ) trace_metadata["strictness"] = self.ragas_answer_relevancy_instance.strictness @@ -124,11 +124,14 @@ def evaluate(self, span_event: dict) -> Tuple[Union[float, str], Optional[dict]] # calculate cosine similarity between the question and generated questions with self.llmobs_service.workflow("dd-ragas.calculate_similarity") as ragas_cs_workflow: cosine_sim = self.ragas_answer_relevancy_instance.calculate_similarity( - ar_inputs["question"], gen_questions + answer_relevancy_inputs["question"], gen_questions ) self.llmobs_service.annotate( span=ragas_cs_workflow, - input_data={"question": ar_inputs["question"], "generated_questions": gen_questions}, + input_data={ + "question": answer_relevancy_inputs["question"], + "generated_questions": gen_questions, + }, output_data=cosine_sim.mean(), ) From 5e697442e701c6cb3d57e9575cbf8d8766d33dc7 Mon Sep 17 00:00:00 2001 From: lievan Date: Tue, 14 Jan 2025 18:59:41 -0500 Subject: [PATCH 14/15] del another cassette --- ....emits_traces_and_evaluations_on_exit.yaml | 595 ------------------ 1 file changed, 595 deletions(-) delete mode 100644 tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml diff --git a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml b/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml deleted file mode 100644 index e857435d05e..00000000000 --- a/tests/llmobs/llmobs_cassettes/tests.llmobs.test_llmobs_ragas_answer_relevancy_evaluator.emits_traces_and_evaluations_on_exit.yaml +++ /dev/null @@ -1,595 +0,0 @@ -interactions: -- request: - body: '{"messages": [{"content": "Generate a question for the given answer and - Identify if answer is noncommittal. Give noncommittal as 1 if the answer is - noncommittal and 0 if the answer is committal. A noncommittal answer is one - that is evasive, vague, or ambiguous. For example, \"I don''t know\" or \"I''m - not sure\" are noncommittal answers\n\nThe output should be a well-formatted - JSON instance that conforms to the JSON schema below.\n\nAs an example, for - the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": - \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, - \"required\": [\"foo\"]}\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted - instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} - is not well-formatted.\n\nHere is the output JSON schema:\n```\n{\"type\": \"object\", - \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, - \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": - [\"question\", \"noncommittal\"]}\n```\n\nDo not return any preamble or explanations, - return only a pure JSON string surrounded by triple backticks (```).\n\nExamples:\n\nanswer: - \"Albert Einstein was born in Germany.\"\ncontext: \"Albert Einstein was a German-born - theoretical physicist who is widely held to be one of the greatest and most - influential scientists of all time\"\noutput: ```{\"question\": \"Where was - Albert Einstein born?\", \"noncommittal\": 0}```\n\nanswer: \"It can change - its skin color based on the temperature of its environment.\"\ncontext: \"A - recent scientific study has discovered a new species of frog in the Amazon rainforest - that has the unique ability to change its skin color based on the temperature - of its environment.\"\noutput: ```{\"question\": \"What unique ability does - the newly discovered species of frog have?\", \"noncommittal\": 0}```\n\nanswer: - \"Everest\"\ncontext: \"The tallest mountain on Earth, measured from sea level, - is a renowned peak located in the Himalayas.\"\noutput: ```{\"question\": \"What - is the tallest mountain on Earth?\", \"noncommittal\": 0}```\n\nanswer: \"I - don''t know about the groundbreaking feature of the smartphone invented in - 2023 as am unaware of information beyond 2022. \"\ncontext: \"In 2023, a groundbreaking - invention was announced: a smartphone with a battery life of one month, revolutionizing - the way people use mobile technology.\"\noutput: ```{\"question\": \"What was - the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": - 1}```\n\nYour actual task:\n\nanswer: \"The capital of France is Paris\"\ncontext: - \"The capital of France is Paris.\"\noutput: \n", "role": "user"}], "model": - "gpt-4o-mini", "n": 3, "stream": false, "temperature": 0.3}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '2795' - content-type: - - application/json - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - body: - string: !!binary | - H4sIAAAAAAAAAwAAAP//7FQ9b9swEN31K4ibrcJW7cjxUmTox1KgS9ChLiSaOllMKB5DnoI2hv97 - QVm2ZKQFureLhvfund498nhIhABdwUaAaiSr1pn0jl7a1f1z9vnTU252t8u7LnxZ39PL0n18TzCL - Cto9oOKz6o2i1hlkTfZEK4+SMXZd5G9v8kWeZaueaKlCE2V7x+mS0lZbnWbzbJnO83SxHtQNaYUB - NuJbIoQQh/4bfdoKf8BGzGdnpMUQ5B5hcykSAjyZiIAMQQeWlmE2kooso+2tl2V52MJThyE638JG - bOFrI1noILhBoaTTLI2gWnzw0ip8t4WZ2IIlq6htNbM0UTU/lmU5/YfHugsyzmk7Ywb8eDFtaO88 - 7cLAX/BaWx2awqMMZKPBwOQgmYhfJbH4n8SQRPbvJZEI8b1fmO5qXnCeWscF0yPa2PAmGxYGxj2d - sLcDycTSTPD1mbjqV1TIUpswiReUVA1Wo3TcT9lVmibE9Ahfu/ld79Pk2u7/pv1IKIWOsSqcx0qr - 64nHMo/xGftT2SXl3jAE9M9aYcEafTyJCmvZmdNFgvAzMLZFre0evfP6dJtqV+QZVrncrZYKkmPy - CwAA//8DAIA9R+1vBQAA - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 90103a814d728c95-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Sun, 12 Jan 2025 21:27:05 GMT - Server: - - cloudflare - Set-Cookie: - - __cf_bm=aJ4R0kkpaxiEMdCstkLewG5Nh0tBCqgc5F.29qHH6B4-1736717225-1.0.1.1-Ji0eU618Eq.5WZHXNzzybdmhfWtdnTdOm9TqeAUiCIBI7dkUKlDlfxIOGQtWT0zEg2EaFnva77ZlB.cFugQopQ; - path=/; expires=Sun, 12-Jan-25 21:57:05 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=kbuyalAPIltxRTIUg4u9ZlzDKAzkaUj449PNLBx.riM-1736717225715-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - datadog-staging - openai-processing-ms: - - '423' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '30000' - x-ratelimit-limit-tokens: - - '150000000' - x-ratelimit-remaining-requests: - - '29999' - x-ratelimit-remaining-tokens: - - '149999320' - x-ratelimit-reset-requests: - - 2ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_6e4dbefc369fcecaeaa7e00a35495642 - status: - code: 200 - message: OK -- request: - body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", - "encoding_format": "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '114' - content-type: - - application/json - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - body: - string: !!binary | - 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 - AAA= - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 90103a85d8dd8c06-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Sun, 12 Jan 2025 21:27:06 GMT - Server: - - cloudflare - Set-Cookie: - - __cf_bm=VXzk3nk1CWzL7FGPI6EmhWWoD6Bc4NzmNshBDQ7dDys-1736717226-1.0.1.1-F6sq6nVBxq6yBwdb__3rCk3syjhFWivs9_W4UgVMTYOcquO7JaIFab00k3g95dG3rhP7qebeUHKii76BrujPyQ; - path=/; expires=Sun, 12-Jan-25 21:57:06 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=0MM4NuBm9A7mYDVlk8AvMMc3tyw0Q_rQxThzsgOYT1I-1736717226095-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-model: - - text-embedding-ada-002 - openai-organization: - - datadog-staging - openai-processing-ms: - - '76' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-7d694cd6b8-pzrbf - x-envoy-upstream-service-time: - - '59' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999993' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_7abaddda3978c44c0da7c855c38572a0 - status: - code: 200 - message: OK -- request: - body: '{"input": [[3923, 374, 279, 6864, 315, 9822, 30], [3923, 374, 279, 6864, - 315, 9822, 30], [3923, 374, 279, 6864, 315, 9822, 30]], "model": "text-embedding-ada-002", - "encoding_format": "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '192' - content-type: - - application/json - cookie: - - __cf_bm=VXzk3nk1CWzL7FGPI6EmhWWoD6Bc4NzmNshBDQ7dDys-1736717226-1.0.1.1-F6sq6nVBxq6yBwdb__3rCk3syjhFWivs9_W4UgVMTYOcquO7JaIFab00k3g95dG3rhP7qebeUHKii76BrujPyQ; - _cfuvid=0MM4NuBm9A7mYDVlk8AvMMc3tyw0Q_rQxThzsgOYT1I-1736717226095-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.0 - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.10.13 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - body: - string: !!binary | - H4sIAAAAAAAAA1RZyxKqvJaen6fY9U/tKhGQLM4MAUG5JCp465GgIiAilwSS8/JduKu6qydWiRFC - stZ3y3/+9efPP3VSPNL+n3//+eedd/0//zVdu9/62z///vPf//rz58+f//w+/9/IR5U87vf8k/2G - /37MP/fH+M+//0j/e+X/Bk337j4bYpj7MBkv3xvVuOUSFsbPAnGrdlUQH7piNhkUn5WhXmrOWw1Z - VEefiFe7QQJ50VzZqrzkaPDL8w1CNb1QCfJRcFn3KBBJ/RBP7T+J0CytQsHuEuC6OStFfaelAfry - qWNJ+b59Tg7+gFajbzJPXNKC3wcvh/jSe2Sz+C6jfiU3FC5jbzBcHF4JD2+PGGV+/WDGNsyR6Gkr - oc34Cqb5mGJx38s2XJ/1iW1wNm/7+152QJ+1hDiUzP0uHZcmiuXmRefn2C26omYZaOFmTa7BbUCj - tiwAWs++sJOvspYfDt8DNN/tgAETJxmWjzJDc6kWWPGcsy/ss5SDts83BGdb1afh7XQCJ/Q2ZL08 - 5ZHAJ8PUqbl44Pnsvor6xckJYHzmKbGv6xca8lbKAMrshof0MLT8GzkqzITX4OhevkVLDsiAWTb7 - Mg/dDi1NjlqMZotTi+WtX0Z0Id1qLT+6KVm/F6dWzIq3DPtNORLstUdLLJGZQlRdR+IpH6cdH8es - gsa4dsQ/+I01Qv2KQVMdH1N/9i3q+96R0b08eMzqofYHLTnnWqNoZ9q4ly7q7m80Q6SYzzEf3ueI - vueXZjmXGkE8I1UsETJOdU/LDKrg48pX1GC9Af5tDxShB0ZsyxuM3Ee9J/udYRTyjmUAjrYjzK+D - MFLyeX5D+zJ2mc1uyOfAjUZHa1ujM+EW0UBX/gGlH89i/uXcRh1Vow2UZR2TUO021lDclircFnnO - rPklRkPy3QAEI9fJelN+UJfefRUO9AHEX8aFEOfr3kE1emyIWy/LYgi8ksJojS5djt4xERVwVc+N - /kacHtWiJ/d9CYq92DLzcttaYnvXbUDLKqa6Un2SYfGKDcjeLWDeH/1iWAdyh/ojOxMyu7+i33zQ - vjy5VL4aTtJp4VcDTe8rLB22XTLuldcApnHmxMZLo1CO7gCwlc2KWYdFmbD55xLDVb0kjCy1l9Vl - +y4Gf2/bJFbZGnFpfY9BOjQuWXdj5zcxSXdoPUtejGw3TjG8F56N7CT7kK21uEWFf8zzOV4/XaqW - uoHkmZFIaLG5aWT1SsOIkQMytdgptiR8o6EVtVTH4Ad0xcxzvEnGFO1OuhLgFM8TV7S8XlEO32j/ - Js6qoy2nV/cBTF+3xDeXm4ijuE2h+foD5dL+ZfWv1WUG0j2ViNe+d8VA5qHze386c5NtxD6FgXWF - fGVi4KiIus3q7IGnz2/EUKraGiECDM2iO5F9ccgt5jhLFZp4pHRoS251pHmCJh+KAb/SZegP6lF6 - wD4cLLI7yEUhzPPZRO5Ojoh3DmlU+YGPgShOzVajRArxOfsbOOvhm4Tx0xLCcUZNC9XHhZifbRNx - LhYelEvzhOvMP7X85G47lGnWDM9mPYraJTIfkEmXgm3ee8WqP+Rw0utSXRNHdRtLuHROl6WvEmZu - N27E0npFgarehngHtxfUcbxGmz34h/3Wc9jLPIf+lfbs7mt9xEs5q+C8N1x2TxeDPwZxYGir0ouI - e/2YiFvr9wa6y2dHfHVFkuFOOxMx96QyO85XhTzQmwN4SEI6l2d+O77Oco2sIHiSYLt9I2HViofC - rjeJfSad4OLmPdD84TDiHi+qGGtjnkFznRvMWL+uPt/pjwri/PBkK0fdCpq54YA+Eu9ZqFRuJC2a - wNai3XAi6Vw9J59Z8ZZ++EQVbaNHH/lry8B0tyWErO/FAF6sAfRbh/k+iVu5elQpfPTrlayFt7Lk - xyqnSAmClAVE3lui/RqDPs2HGN5n2Q58FlHt3b03zCtImQzrJtHgScSAReeIRAQfswFhJme2elaX - 5ItpjGFBQWd74xmLXllbJdLSeEHWx3ucDPiiSJDY/YGit1D9/nzWKtTZIab6l0JRHTO4QVg6JzzM - vk8xmk3fwBdWX9zqSunz9/xSownviZuMvaAv2XLA2ec+++ERBU2lYCyDkK3M47YQS367LK/ReiTO - w3FEJ1xLRqfFbmR2NH/5w1TfqND0D9tqu+OEdwag4b0YiCc97onYr4YLSj8bi8T4lCWj8Tarv/8n - i42M2DeSPVhWpcnc74D8viSlDZ6WG8RK6E6IzNVNmPiLuLuDGokBZIA0ufXE7I9twTfZTdLI1d8z - vPzcEH8OtQkCbIvsvM+16B/FI1BF6yd0saoPyfC8fy9L5Rr6WHol1Boh7XagaYeAlq8ZjtgzbTZw - kdUDic7IFqMQaw1oxB069VPCrZqoKH3NRiy2gVUsbi/D+41n0Y6gZOCzhKLGHeZsqn/RerZ3Qdk+ - 0jD/dF479sPtpNX3fMSasJ2EN3gV61N/Etfusmi0FQMDTW+crJ/fRcJCpnWwoDOdWPxZJ4wchAEk - y97M1/xbws+XrwQpjA+67OwYcS50D/XIWE37GwqxCWKABxcmMU4OiYRMDhuk33cPhoeXFvU8zTCa - +JMZjhS2g1IpNsoXgYQXWqiiMdpzUy9l6cjs8mwV/MeX1SJ90/nmXSXjUW9O0Hval1lvjfvU01oD - zKUr0y9xwR/Dd7n5u/97zUOib0+eB/3snrDVMlpHoloXJuQkNcjhnn3bbjFbYm3H5I65PF8nox32 - oMFtvmbhLb0Jzuca1l4LtcPD0HDRs1n/0NYauOzxJpeWwnx2gOf1uCZ3nlWi88IlRcGhCpkxjWcn - 4XNY3EpE/PYbCOFanYqKoHIJbo5Xi5+rZ4oew3vFglUzWOKDI1vvm/UVLzJ2sriUazkcZ58jW2fs - 5HPjvZT0gNwL4uZ9kfT5zFfhPRu37Mf3PfbH9IdXEz4tLaa8FQko+uR4OWrfljdD6SC2rPeEzGNF - DLZ8AWQ4qoSRjHCrSBgaBDJN8NwJ9lb3w09KLhZWsLqK5CXZ3OADnkHIAbuW8ru//344eEyXvS92 - SeHA0npeKaRYtJw8DBnMM1tTcVrvLDbhP0ra/ZE4VRpZTI11vNzil4aX6tf/q6dAHp7uX/6Wk6N2 - QhMfM2dT29bwzmJAWkG3VN3e5lZf3RUMXZTM2PocbS06y2clWhyvXxIeT7fk02Y7Cius1Gzj7wQS - Oms0OAeNzWx94SRc0yIMgxZyqki+kyifVt3BlSoOfdGyQENCcabdD86W4LgwfNmU7BkYqz4nriO3 - EXuY1xnMNkH5w++2T43jDJjy2E186SXs0owYJn3Irt4qaUe3zRp9XV5scrfKlSVfH4GK9irdsuCs - utZYG0oG2lv1MHz6ryWYEZjQH/szW12dlUVLOStBxtue2KHVIjHcUgwYEY2sZ6mJOItXGvzq3+Ov - yhLv571D+HCXieVZmj/89OzX2ckET/p32D7gBOqdvmmhzp+C1quKAyPzEs9fkYT6FO1iHQfyjbgL - M0UiTNYVSB9jy2785Vjcz4ZYz/eNyUIq3a1xn0OtmXEvsa23Qm0XiT7TFGWTk0mfChGqOYft/fBi - 4TbMfZ6od+f3vhR5XRwNi9mI9ae3OWI5SAZ/PJoMED/f9wyDMfh8WQtH13RWsSC4jgUvejVDW9/J - KPz4MO5rCkN+O+GF6FeJzOZxB2rTx2xFy0IM8m5/gfmnsamILnYxQlru0FQfZHNg36KnXl7qbv1l - VPmmNhIVaCo6DM2MjlUeIn6+vCQE87NLgpjpYrxRffjVF67fe8WnCs412FosJN5ZN9ufPtby7/PB - nNNn9LkzHh+wkuOY2V5zatl7nzlo6ifm747HhK06ewP48JRp7j6dqDtKvoHqGcpJ0NyklpNKVeHH - d5v7o/3tLwW5c20Kk35hUreXNRiLLbGNx6Ll1j7HoPpZyYzXZW9NfNyAdttIxJewFf2+oyBaVARb - wXPiS6/UaDQ4zN08u0QYa1lDYjs0JBiXTSTO+crTsxznJChX83bcRjT/4Qs9o2SPxsv30EF2ega4 - HMUQ8T2WOcw/tc2MN9on/fNjdHBq+5QQeda2k75U9TySLTzEz7Id4MMdPd0GHfvV73hybg9E9+Wa - Wcq7FoN9EQM869eC4aN+Qizi1QF2p/0FS9+7bUmWGzXwvJ7XbGvOCvS1w34GLMg9Zh+2QdTruw8G - +p65tMs/dfG6kszUP3nVESLtjUSySlUGvKiexNuXYctPsRLDeD8lv7xADCuvrjXPu9S4dJSmFbel - HYPvZgwvLtev4DY+Ygjg0zC3PJXJqKz9Ek31RvxE8sRo55EDbvDYUa7avc9G45sDRG9OrDpyk+6n - 11we2mw7NzNf2Nr5AG3fesyOUkP0T0mOwaH5Ej+dYO+PWAkOaPDlAwn3BY74yxt2MPkZWmyDohAy - uW3Alh/9tP/j5BdG9YeXWDf3XTsuNpcS0KPBWCkbre3WwayD7UZ9Yll1PYt+P2CiwWkNQtIwjsa6 - 2Q9Q9KD+6iMSiywdNJJ6OXNHvvf7V1dweJ3nR2IEd1p8J/2ludfHnARuZiMZ+egC6WFYkdvPn8fF - bQNwn51YoPudz1tPOoGUHAQexHnm87WUP2A86Aqz91Xgj+VieUI/P+N8mFsM8NEcMPpUwWqpZ2L8 - 5SENZ2tmK9+1T9NHfkHGyS2ZUx9qn/74a/K7U78tEqGHxkaf8h86bEMTSY2lcaDaaUuV140i3o3b - EilZ+WTWt39Yw7kwLnpmRz7Zqt/W78zU4PAStCWh0PRiXLeWB+HxyMjmvT9bA9ui089/YyWNcSJi - Gz9gylOY18/eon8+dg18UrMmhnR/CF6LpYP2BGyWOFvJH/GVOWjqR8o77kfypBdAGmWFbcP+HY18 - bgLcj0VBf3lKe0vYBl1L88qc/WtohVUsK233wQYz0/Dol4qdxlC844BN+YE/7HbvA5KrJWekuD/R - YEY7iug5zNgvXxliZWfA7ToG7GTlVsKDjRwgfaOlf/V7j/zAg6PgNfGn+Yrg4zUQHVaM8nNcJ01T - MnO5NkyTkMd5Hv3WH1UpzYiPHlhQg740PfKCA7H2OUPDRb9USGVqxU4PXY/4iacZ1Cf/wbbETX2e - R9npbz8FtrWO+Hbk8HseqfA78XszHUwgeVeR/S6WUS/Jw0UHnx9/eiliX8fIgWW2zraPtduKVRHb - mhqMOtvaKLFE67eVVmJnx3xzWSd//e6UrxFsPCVruJz9E5r0H5n0mEUn/4+adTkjgcZPYvIvN0TD - wGSbWWIVi3swZCAXjwszzetb/PTBcneKLn/5dCg1t162C/PB7GWVRsMNDwOcKntFErHJC767IRnJ - T+fIts7IxHh4shrNo51J24kvxiv3OIqjl8pMExxLyQSRoazXlLjn2UrI98HMdKQteuLFWeGLMAlL - SJcnm/iL9RX10jXBsFKzI1tRVbN4nl5uEGlCEB9KUnDvYuz0JxkHdmrmUdR046qE1F7dKFUaq6gH - daj/+lNbWw7iu259D5WyfKQzWhYWNzfaRpMPr4GsY28u+OoKw3LKG+jiENYtOzZJh9Da0fDzcX4m - YxJEBuSRZOHhIBetmB2HAL3fZIGXKTkgvo2PHCb/yay8qSKafg4pOgYRUElfVNE4+oaNwB+OE3+X - aNKfEvrpMawOZdJcK5jBeVsLKvizjpozCkpQ+k9INettJAN4qQYdg4KZS+2F+srd51pVsRkxPcZ9 - Nl+EgLa+nVGujWpEY+uJIWmjI17QT4aG5SetfniLFffqF+Mv73kU5YFFtmNZ465aNfD9tJ+/eDwG - 4ysA+OgSnr3JpRjOy8oB7XssySZFHvrxLxTuZTHpf9kSv/o9Bntglu0UVtuNqoyudOHQzPtcWx4g - 42++i+tk0fjNx0YchnliT/rHQsqnHXaw11SP7R7zRHDko9tyI9MHm/IFX57WEzY+v5B1H3fJ2IQ3 - Bx19oyBXa3FLWL655cg0jhzzKQ/TTvE8hglviJN/P1Zf7bYlLBmmZHOcHyPhcJtCNNfXLBiqhRj7 - pA9+ePLzi0j01tXQ1qKU/uJr2+ChAv4yK7Lxd5EY2uNNhbwybWJZhdkqysULYLgsVmR1vJ0TsV7s - KRy4PKfSRyqscT7vciSvXyuGaVn4oth71Y9viZ1tlgWf35cmOuhth4cV7f2WDDsMEH04s4I5KYb+ - pgNsX01J7K4nf/0teN6t/ukrMdbNdYBJ/9FZW4cFX9bIQfJ+dybXZHvwB57Jmfb2gzNzdelj/fJ3 - iOf7EA/qti74S/ZtcIN0x0xp//KFHm42cMWMEuu6ehffK/cGNOUnzNN3bjuYX/mG1ndzYGt9iyNR - 65eb5p/6Jwvmq0w0ww40wNVCZWsTVeJ7aEsKXlp9mXe1rKTF3buDCX/Z1lpo0aCFLw2605VgpcpI - Mm6ebYniqFDxOO5ZNBblHkO9PLhUpPsxoVfOTV2XjYLY61L2KWtYCSu8qIl31Zaoi66aBIlZ7Nkm - OEntKOgmVtMt7qgePy0kX1FjoynvJbeJ74ZgWM5QuGQjtp/mRfzyQ0BvfKDzyY/2S4/WIJ+ZSZyr - USV8eh46Z4FC8JSHDGXxBVBia0nwqfethXSNAmgU9Uw16aFHvTtQDMY0U+lMOqTMP5cTgPO2iKWY - dTHu6NhBvRpTkoadY42Z88gA7nAi1vGYiP6YrTe/PIddzyfH4qz5lCiW0oys1GFtjZJNbXRFiwX7 - +a/35XvrQIv1nM6mPEig461Dk39iay28iO8vr0mXsc0isr21Q3q3VJAV6cbcrtu1Qj+sqT7nD453 - tpsn49jn0l88GMVMawWNRw9mG1wScloJny+kQwNKew3o4xEYYlE4kqn/zhdMsjgUX2unzbSfnp6t - 33EhTruvCaMl3Cn/OqHRgeIA0du7THrvVvCwSm5oeCsDlXhRFo2xDyhK5u2Z8olPBPnUm1/+PJ0/ - mYirmW/ALnk0U72QhCJf3OCsk/d0fnVN/vqLCU+wSkTsd26+OkHVLncsHaoFEvcSKHr2zCW/PIbn - M+RpZb832LqxjVZM9YoU0sp0PvHBd0i9Ds7ug0/nOVU7lv1qhyKXrJjZXE/WuJjXKciBGv/yt3a8 - +IsczsvBJ4/vwyzkvHFMdDLnF6yHBrW6SLxzcLIO0c7Uy3bxUK0Y7HtXM3PS4xz4poYgMLdsHdlP - iwf8kqJzfH+R7WP9KbrbOZN/5xfEns4vOi15ZnA6H29sc7l4RaepUgfvYpYSL1z10XBLqwskWVoz - X77QpCPz0IaDUVQ4yY3AV4QTlMB2WkiVq50X46rXmh+eMns+H6P/AQAA///s2t3OojAQBuB72VM3 - EVDpcCggiqCt/IhypvjzgfKJQAs02Xvf1N0r2Oxhb4AESjrvzDwUVccSxH3LnFliRRNnZA6f+Tyd - ei2vh7QEgP6094izun7bPfXeJZwO3z77zO+VXHmUcFkm/G+/N6dfU93kexvzydPl6rnqNrBYrGPm - jwOdf/I8OG/zxrbrLj8Pk+JoQYbuDnN7bRsNTfQ4ITFvosbibXLNtdQXHLDmEBJcQ97XV30DmeIN - zIwud3/wY7TTH2Rfie+79SfTux5CMaMY62Mj5J2VuR3M37eSiP+LN4pmusgd7z326S/ppz4ntGmZ - tTlGPs+6fjAMzSqIratxwVMIEsizK2MbXGR1d/SXoaFniUrs5NVFbDlsGiT2k3gi5ns8fxs75Kkx - JSI/nJtVmoZoOzda/BL1aqCtUgJqtRHzMo2du8SpMSz1kLB1YgcFP7dkhyYH02PBbn4v2vv0pcDz - lK7Ywnkk9uT4nmEkzps4w6nh3KmyN3ypevNnn8uVJtWgiqIn1r+HR9HdyzRDJKclcY1pETUzMBsQ - +ZA+16Nr3Sy03ciIW2dD1s9pVPSkXmEg5BtEfWK8uQRYQZ/zrET9aR6HxxQOZ0Uh9tRdn3lrB3Nj - FQct5gsjLdh+Xz5QVZ4wRqbNC76eH6aQeHGNB/qa+1oWPhOoB3Mr6i/n3ArTDMTzqWrMrFr1/Qgg - 9cOYrbzlxO7FfQPBdrDJZ98j+rUMAdkyivg4tdktGpZGXl2utIu5zrskuIdIuVwVbGQhQcNXG1no - cmpUOr69Oepz9azBiqA3VmPvhvp1VOYzSkvOVlZU2zQL2xjC7dL/8z49jqscWRPtIuZBQc3K09EF - kZcxiLxRefg+gh8fFfDr5z+IAlWKAikKpCiQokCKAikKpCiQokCKAikKpCiQokCKAikKpCiQokCK - AikKpCiQokCKAikKpCiQokCKAikKpCiQouD/iILfAAAA///s3bEJgDAUhOE+U0j6gKR0F5GAwcLE - BH2CjbtLNIgzyN9ecwt83CEKEAWIgl+JAosoQBQgChAFiAJEAaIAUYAoQBQgChAFiAJEAaIAUYAo - QBQgChAFiAJEAaIAUYAoQBQgChAFiAJEAaLg56JANU1/vyDENPpQYID4Q8xLBYwbnWlb+1wl7Jub - vO6qQNB5TTHLIGn2y1aoQV0v0JLEhW+uStWpLgAAAP//AwArUdmvhGEAAA== - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 90103a873b588c06-EWR - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Sun, 12 Jan 2025 21:27:06 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-model: - - text-embedding-ada-002 - openai-organization: - - datadog-staging - openai-processing-ms: - - '65' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-69b798f78c-5qp7w - x-envoy-upstream-service-time: - - '51' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999979' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_4993ab461c0f927c270fcb176565579c - status: - code: 200 - message: OK -- request: - body: '{"data": {"type": "evaluation_metric", "attributes": {"metrics": [{"join_on": - {"span": {"span_id": "17310091005419816873", "trace_id": "678433a90000000084bd9979a4509bd5"}}, - "label": "ragas_answer_relevancy", "metric_type": "score", "timestamp_ms": 1736717226392, - "score_value": 0.9999999999999996, "ml_app": "unnamed-ml-app", "tags": ["ddtrace.version:2.15.0.dev357+gf627038ff", - "ml_app:unnamed-ml-app"], "metadata": {"_dd.evaluation_span": {"span_id": "4512147893829326381", - "trace_id": "678433a900000000c6761fa019162c11"}}}]}}}' - headers: - Content-Type: - - application/json - DD-API-KEY: - - XXXXXX - method: POST - uri: https://api.datad0g.com/api/intake/llm-obs/v2/eval-metric - response: - body: - string: '{"data":{"id":"ec14c58b-cdce-4b70-8a10-26b2979ad114","type":"evaluation_metric","attributes":{"metrics":[{"id":"_jnkBtWsLV","join_on":{"span":{"trace_id":"678433a90000000084bd9979a4509bd5","span_id":"17310091005419816873"}},"timestamp_ms":1736717226392,"ml_app":"unnamed-ml-app","metric_type":"score","label":"ragas_answer_relevancy","score_value":0.9999999999999996,"tags":["ddtrace.version:2.15.0.dev357+gf627038ff","ml_app:unnamed-ml-app"],"metadata":{"_dd.evaluation_span":{"span_id":"4512147893829326381","trace_id":"678433a900000000c6761fa019162c11"}}}]}}}' - headers: - content-length: - - '562' - content-security-policy: - - frame-ancestors 'self'; report-uri https://logs.browser-intake-datadoghq.com/api/v2/logs?dd-api-key=pub293163a918901030b79492fe1ab424cf&dd-evp-origin=content-security-policy&ddsource=csp-report&ddtags=site%3Adatad0g.com - content-type: - - application/vnd.api+json - date: - - Sun, 12 Jan 2025 21:27:06 GMT - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-frame-options: - - SAMEORIGIN - status: - code: 202 - message: Accepted -version: 1 From b36152537d617ecc9d02893f517b0f9e931891b9 Mon Sep 17 00:00:00 2001 From: lievan <42917263+lievan@users.noreply.github.com> Date: Wed, 15 Jan 2025 14:24:05 -0500 Subject: [PATCH 15/15] Update tests/llmobs/test_llmobs_ragas_evaluators.py Co-authored-by: Yun Kim <35776586+Yun-Kim@users.noreply.github.com> --- tests/llmobs/test_llmobs_ragas_evaluators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/llmobs/test_llmobs_ragas_evaluators.py b/tests/llmobs/test_llmobs_ragas_evaluators.py index b679752f3cf..98b245e2bd7 100644 --- a/tests/llmobs/test_llmobs_ragas_evaluators.py +++ b/tests/llmobs/test_llmobs_ragas_evaluators.py @@ -277,7 +277,7 @@ def test_ragas_answer_relevancy_returns_none_if_inputs_extraction_fails(ragas, m def test_ragas_answer_relevancy_has_modified_answer_relevancy_instance( ragas, mock_llmobs_submit_evaluation, reset_ragas_answer_relevancy_llm, llmobs ): - """Context precision instance used in ragas evaluator should match the global ragas context precision instance""" + """Answer relevancy instance used in ragas evaluator should match the global ragas context precision instance""" from ragas.llms import BaseRagasLLM from ragas.metrics import answer_relevancy