ragaai-catalyst 2.1.5b23__tar.gz → 2.1.5b33__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. {ragaai_catalyst-2.1.5b23/ragaai_catalyst.egg-info → ragaai_catalyst-2.1.5b33}/PKG-INFO +351 -68
  2. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/README.md +347 -65
  3. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/docs/dataset_management.md +88 -27
  4. ragaai_catalyst-2.1.5b33/docs/img/autheticate.gif +0 -0
  5. ragaai_catalyst-2.1.5b33/docs/img/create_project.gif +0 -0
  6. ragaai_catalyst-2.1.5b33/docs/img/custom_metrics.png +0 -0
  7. ragaai_catalyst-2.1.5b33/docs/img/dataset.gif +0 -0
  8. ragaai_catalyst-2.1.5b33/docs/img/dataset.png +0 -0
  9. ragaai_catalyst-2.1.5b33/docs/img/evaluation.gif +0 -0
  10. ragaai_catalyst-2.1.5b33/docs/img/evaluation.png +0 -0
  11. ragaai_catalyst-2.1.5b33/docs/img/guardrails.png +0 -0
  12. ragaai_catalyst-2.1.5b33/docs/img/last_main.png +0 -0
  13. ragaai_catalyst-2.1.5b33/docs/img/main.png +0 -0
  14. ragaai_catalyst-2.1.5b33/docs/img/projects_new.png +0 -0
  15. ragaai_catalyst-2.1.5b33/docs/img/trace_comp.png +0 -0
  16. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/docs/prompt_management.md +8 -2
  17. ragaai_catalyst-2.1.5b33/docs/trace_management.md +297 -0
  18. ragaai_catalyst-2.1.5b33/examples/llamaindex_examples/azureopenai_react_agent.py +283 -0
  19. ragaai_catalyst-2.1.5b33/examples/llamaindex_examples/joke_gen_critique_async.py +106 -0
  20. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/pyproject.toml +6 -5
  21. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/__init__.py +2 -0
  22. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/dataset.py +30 -0
  23. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/evaluation.py +51 -1
  24. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/ragaai_catalyst.py +37 -6
  25. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/__init__.py +7 -0
  26. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/config/detectors.toml +13 -0
  27. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/data_generator/scenario_generator.py +95 -0
  28. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/data_generator/test_case_generator.py +120 -0
  29. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/evaluator.py +125 -0
  30. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/llm_generator.py +136 -0
  31. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/llm_generator_old.py +83 -0
  32. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/red_teaming.py +331 -0
  33. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/requirements.txt +4 -0
  34. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/tests/grok.ipynb +97 -0
  35. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/tests/stereotype.ipynb +2258 -0
  36. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/upload_result.py +38 -0
  37. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/utils/issue_description.py +114 -0
  38. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming/utils/rt.png +0 -0
  39. ragaai_catalyst-2.1.5b33/ragaai_catalyst/redteaming_old.py +171 -0
  40. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/synthetic_data_generation.py +358 -15
  41. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/agent_tracer.py +142 -101
  42. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/base.py +292 -110
  43. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/custom_tracer.py +4 -6
  44. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/llm_tracer.py +217 -185
  45. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/main_tracer.py +8 -61
  46. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/tool_tracer.py +9 -6
  47. ragaai_catalyst-2.1.5b33/ragaai_catalyst/tracers/agentic_tracing/upload/trace_uploader.py +675 -0
  48. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/upload/upload_agentic_traces.py +73 -20
  49. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/upload/upload_code.py +53 -11
  50. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/upload/upload_local_metric.py +13 -11
  51. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/upload/upload_trace_metric.py +9 -2
  52. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py +4 -2
  53. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/file_name_tracker.py +5 -1
  54. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/llm_utils.py +32 -5
  55. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/span_attributes.py +10 -8
  56. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/zip_list_of_unique_files.py +33 -26
  57. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/distributed.py +10 -27
  58. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/langchain_callback.py +59 -6
  59. ragaai_catalyst-2.1.5b33/ragaai_catalyst/tracers/llamaindex_instrumentation.py +424 -0
  60. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/tracer.py +70 -22
  61. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/upload_traces.py +4 -1
  62. ragaai_catalyst-2.1.5b33/ragaai_catalyst/tracers/utils/convert_llama_instru_callback.py +69 -0
  63. ragaai_catalyst-2.1.5b33/ragaai_catalyst/tracers/utils/extraction_logic_llama_index.py +74 -0
  64. ragaai_catalyst-2.1.5b33/ragaai_catalyst/tracers/utils/model_prices_and_context_window_backup.json +9365 -0
  65. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33/ragaai_catalyst.egg-info}/PKG-INFO +351 -68
  66. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst.egg-info/SOURCES.txt +40 -1
  67. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst.egg-info/requires.txt +3 -2
  68. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/requirements.txt +2 -1
  69. ragaai_catalyst-2.1.5b33/test/test_catalyst/test_base_tracer_add_metrics.py +130 -0
  70. ragaai_catalyst-2.1.5b33/test/test_catalyst/test_base_tracer_metrics.py +126 -0
  71. ragaai_catalyst-2.1.5b33/test/test_catalyst/test_evaluation_metrics.py +155 -0
  72. ragaai_catalyst-2.1.5b33/test/test_catalyst/test_langchain_tracing.py +175 -0
  73. ragaai_catalyst-2.1.5b33/test/test_catalyst/upload_trace_zip_automation.py +582 -0
  74. ragaai_catalyst-2.1.5b23/ragaai_catalyst/redteaming.py +0 -171
  75. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  76. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  77. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  78. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/.gitignore +0 -0
  79. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/LICENSE +0 -0
  80. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/FinancialAnalysisSystem.ipynb +0 -0
  81. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/TravelPlanner.ipynb +0 -0
  82. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/agentic_rag.py +0 -0
  83. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/custom_tracer_example.py +0 -0
  84. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/customer_support.py +0 -0
  85. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/finance.py +0 -0
  86. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/langgraph_examples/agentic_rag.py +0 -0
  87. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/langgraph_examples/customer_support.py +0 -0
  88. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/langgraph_examples/multi_tool.py +0 -0
  89. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/langgraph_examples/planning_agent.py +0 -0
  90. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/langgraph_multi_tools.py +0 -0
  91. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/llamaindex_examples/function_calling_agent.ipynb +0 -0
  92. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/llamaindex_examples/joke_gen_critique.py +0 -0
  93. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/llamaindex_examples/joke_gen_critique_anthropic.py +0 -0
  94. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/llamaindex_examples/joke_gen_critique_azureopenai.py +0 -0
  95. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/llamaindex_examples/joke_gen_critique_gemini.py +0 -0
  96. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/llamaindex_examples/joke_gen_critique_litellm.py +0 -0
  97. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/llamaindex_examples/joke_gen_critque_vertex.py +0 -0
  98. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/llamaindex_examples/react_agent.ipynb +0 -0
  99. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/llamaindex_examples/tool_call_agent.py +0 -0
  100. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/planning_agent.py +0 -0
  101. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/prompt_management_litellm.ipynb +0 -0
  102. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/prompt_management_openai.ipynb +0 -0
  103. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/sync_sample_call.py +0 -0
  104. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/travel_agent/agents.py +0 -0
  105. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/travel_agent/config.py +0 -0
  106. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/travel_agent/main.py +0 -0
  107. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/examples/travel_agent/tools.py +0 -0
  108. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/_version.py +0 -0
  109. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/experiment.py +0 -0
  110. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/guard_executor.py +0 -0
  111. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/guardrails_manager.py +0 -0
  112. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/internal_api_completion.py +0 -0
  113. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/prompt_manager.py +0 -0
  114. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/proxy_call.py +0 -0
  115. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/__init__.py +0 -0
  116. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/README.md +0 -0
  117. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/__init__.py +0 -0
  118. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/data/__init__.py +0 -0
  119. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/data/data_structure.py +0 -0
  120. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tests/FinancialAnalysisSystem.ipynb +0 -0
  121. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tests/GameActivityEventPlanner.ipynb +0 -0
  122. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tests/TravelPlanner.ipynb +0 -0
  123. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tests/__init__.py +0 -0
  124. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tests/ai_travel_agent.py +0 -0
  125. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tests/unique_decorator_test.py +0 -0
  126. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/__init__.py +0 -0
  127. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/langgraph_tracer.py +0 -0
  128. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/network_tracer.py +0 -0
  129. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/tracers/user_interaction_tracer.py +0 -0
  130. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/upload/__init__.py +0 -0
  131. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/__init__.py +0 -0
  132. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/api_utils.py +0 -0
  133. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/generic.py +0 -0
  134. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/get_user_trace_metrics.py +0 -0
  135. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/model_costs.json +0 -0
  136. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/supported_llm_provider.toml +0 -0
  137. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/system_monitor.py +0 -0
  138. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/trace_utils.py +0 -0
  139. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/agentic_tracing/utils/unique_decorator.py +0 -0
  140. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/exporters/__init__.py +0 -0
  141. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/exporters/file_span_exporter.py +0 -0
  142. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/exporters/raga_exporter.py +0 -0
  143. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/instrumentators/__init__.py +0 -0
  144. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/instrumentators/langchain.py +0 -0
  145. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/instrumentators/llamaindex.py +0 -0
  146. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/instrumentators/openai.py +0 -0
  147. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/llamaindex_callback.py +0 -0
  148. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/utils/__init__.py +0 -0
  149. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/utils/convert_langchain_callbacks_output.py +0 -0
  150. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/utils/langchain_tracer_extraction_logic.py +0 -0
  151. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/tracers/utils/utils.py +0 -0
  152. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst/utils.py +0 -0
  153. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst.egg-info/dependency_links.txt +0 -0
  154. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/ragaai_catalyst.egg-info/top_level.txt +0 -0
  155. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/setup.cfg +0 -0
  156. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/autonomous_research_agent/.env.example +0 -0
  157. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/autonomous_research_agent/agents/base_agent.py +0 -0
  158. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/autonomous_research_agent/agents/coordinator.py +0 -0
  159. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/autonomous_research_agent/agents/discovery.py +0 -0
  160. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/autonomous_research_agent/agents/synthesis.py +0 -0
  161. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/autonomous_research_agent/research_script.py +0 -0
  162. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/autonomous_research_agent/utils/llm.py +0 -0
  163. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/test_configuration.py +0 -0
  164. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/test_dataset.py +0 -0
  165. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/test_evaluation.py +0 -0
  166. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/test_llm_providers.py +0 -0
  167. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/test_prompt_manager.py +0 -0
  168. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/test_redteaming.py +0 -0
  169. {ragaai_catalyst-2.1.5b23 → ragaai_catalyst-2.1.5b33}/test/test_catalyst/test_synthetic_data_generation.py +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ragaai_catalyst
3
- Version: 2.1.5b23
3
+ Version: 2.1.5b33
4
4
  Summary: RAGA AI CATALYST
5
- Author-email: Kiran Scaria <kiran.scaria@raga.ai>, Kedar Gaikwad <kedar.gaikwad@raga.ai>, Dushyant Mahajan <dushyant.mahajan@raga.ai>, Siddhartha Kosti <siddhartha.kosti@raga.ai>, Ritika Goel <ritika.goel@raga.ai>, Vijay Chaurasia <vijay.chaurasia@raga.ai>
5
+ Author-email: Kiran Scaria <kiran.scaria@raga.ai>, Kedar Gaikwad <kedar.gaikwad@raga.ai>, Dushyant Mahajan <dushyant.mahajan@raga.ai>, Siddhartha Kosti <siddhartha.kosti@raga.ai>, Ritika Goel <ritika.goel@raga.ai>, Vijay Chaurasia <vijay.chaurasia@raga.ai>, Tushar Kumar <tushar.kumar@raga.ai>
6
6
  Requires-Python: <3.13,>=3.9
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
@@ -28,7 +28,7 @@ Requires-Dist: Markdown>=3.7
28
28
  Requires-Dist: litellm==1.51.1
29
29
  Requires-Dist: tenacity==8.3.0
30
30
  Requires-Dist: tqdm>=4.66.5
31
- Requires-Dist: llama-index<0.11.0,>=0.10.0
31
+ Requires-Dist: llama-index>=0.10.0
32
32
  Requires-Dist: pyopenssl>=24.2.1
33
33
  Requires-Dist: psutil~=6.0.0
34
34
  Requires-Dist: py-cpuinfo~=9.0.0
@@ -36,7 +36,8 @@ Requires-Dist: requests~=2.32.3
36
36
  Requires-Dist: GPUtil~=1.4.0
37
37
  Requires-Dist: ipynbname
38
38
  Requires-Dist: tiktoken>=0.7.0
39
- Requires-Dist: giskard~=2.16.0
39
+ Requires-Dist: tomli>=2.0.0
40
+ Requires-Dist: rich>=13.9.4
40
41
  Provides-Extra: dev
41
42
  Requires-Dist: pytest; extra == "dev"
42
43
  Requires-Dist: pytest-cov; extra == "dev"
@@ -49,10 +50,13 @@ Requires-Dist: flake8; extra == "dev"
49
50
 
50
51
  RagaAI Catalyst is a comprehensive platform designed to enhance the management and optimization of LLM projects. It offers a wide range of features, including project management, dataset management, evaluation management, trace management, prompt management, synthetic data generation, and guardrail management. These functionalities enable you to efficiently evaluate, and safeguard your LLM applications.
51
52
 
53
+ ![RagaAI Catalyst](docs/img/main.png)
54
+
55
+ ![RagaAI Catalyst](docs/img/main.png)
56
+
52
57
  ## Table of Contents
53
58
 
54
59
  - [RagaAI Catalyst](#ragaai-catalyst)
55
- - [Table of Contents](#table-of-contents)
56
60
  - [Installation](#installation)
57
61
  - [Configuration](#configuration)
58
62
  - [Usage](#usage)
@@ -60,10 +64,10 @@ RagaAI Catalyst is a comprehensive platform designed to enhance the management a
60
64
  - [Dataset Management](#dataset-management)
61
65
  - [Evaluation Management](#evaluation)
62
66
  - [Trace Management](#trace-management)
67
+ - [Agentic Tracing](#agentic-tracing)
63
68
  - [Prompt Management](#prompt-management)
64
69
  - [Synthetic Data Generation](#synthetic-data-generation)
65
70
  - [Guardrail Management](#guardrail-management)
66
- - [Agentic Tracing](#agentic-tracing)
67
71
  - [Red-teaming](#red-teaming)
68
72
 
69
73
  ## Installation
@@ -87,7 +91,15 @@ catalyst = RagaAICatalyst(
87
91
  base_url="BASE_URL"
88
92
  )
89
93
  ```
90
- **Note**: Authetication to RagaAICatalyst is necessary to perform any operations below
94
+ you'll need to generate authentication credentials:
95
+
96
+ 1. Navigate to your profile settings
97
+ 2. Select "Authenticate"
98
+ 3. Click "Generate New Key" to create your access and secret keys
99
+
100
+ ![How to generate authentication keys](docs/img/autheticate.gif)
101
+
102
+ **Note**: Authetication to RagaAICatalyst is necessary to perform any operations below.
91
103
 
92
104
 
93
105
  ## Usage
@@ -110,6 +122,7 @@ catalyst.project_use_cases()
110
122
  projects = catalyst.list_projects()
111
123
  print(projects)
112
124
  ```
125
+ ![Projects](docs/img/create_project.gif)
113
126
 
114
127
  ### Dataset Management
115
128
  Manage datasets efficiently for your projects:
@@ -131,10 +144,25 @@ dataset_manager.create_from_csv(
131
144
  schema_mapping={'column1': 'schema_element1', 'column2': 'schema_element2'}
132
145
  )
133
146
 
147
+ # Create a dataset from JSONl
148
+ dataset_manager.create_from_jsonl(
149
+ jsonl_path='jsonl_path',
150
+ dataset_name='MyDataset',
151
+ schema_mapping={'column1': 'schema_element1', 'column2': 'schema_element2'}
152
+ )
153
+
154
+ # Create a dataset from dataframe
155
+ dataset_manager.create_from_df(
156
+ df=df,
157
+ dataset_name='MyDataset',
158
+ schema_mapping={'column1': 'schema_element1', 'column2': 'schema_element2'}
159
+ )
160
+
134
161
  # Get project schema mapping
135
162
  dataset_manager.get_schema_mapping()
136
163
 
137
164
  ```
165
+ ![Dataset](docs/img/dataset.gif)
138
166
 
139
167
  For more detailed information on Dataset Management, including CSV schema handling and advanced usage, please refer to the [Dataset Management documentation](docs/dataset_management.md).
140
168
 
@@ -188,32 +216,48 @@ print("Experiment Status:", status)
188
216
  # Get the results of the experiment
189
217
  results = evaluation.get_results()
190
218
  print("Experiment Results:", results)
219
+
220
+ # Appending Metrics for New Data
221
+ # If you've added new rows to your dataset, you can calculate metrics just for the new data:
222
+ evaluation.append_metrics(display_name="Faithfulness_v1")
191
223
  ```
192
224
 
225
+ ![Evaluation](docs/img/evaluation.gif)
226
+
193
227
 
194
228
 
195
229
  ### Trace Management
196
230
 
197
231
  Record and analyze traces of your RAG application:
198
-
232
+
199
233
  ```python
200
- from ragaai_catalyst import Tracer
234
+ from ragaai_catalyst import RagaAICatalyst, Tracer
201
235
 
202
- # Start a trace recording
203
236
  tracer = Tracer(
204
237
  project_name="Test-RAG-App-1",
205
238
  dataset_name="tracer_dataset_name",
206
- metadata={"key1": "value1", "key2": "value2"},
207
- tracer_type="langchain",
208
- pipeline={
209
- "llm_model": "gpt-4o-mini",
210
- "vector_store": "faiss",
211
- "embed_model": "text-embedding-ada-002",
212
- }
213
- ).start()
239
+ tracer_type="tracer_type"
240
+ )
241
+ ```
214
242
 
215
- # Your code here
243
+ There are two ways to start a trace recording
244
+
245
+ 1- with tracer():
246
+
247
+ ```python
216
248
 
249
+ with tracer():
250
+ # Your code here
251
+
252
+ ```
253
+
254
+ 2- tracer.start()
255
+
256
+ ```python
257
+ #start the trace recording
258
+ tracer.start()
259
+
260
+ # Your code here
217
261
 
218
262
  # Stop the trace recording
219
263
  tracer.stop()
@@ -222,6 +266,191 @@ tracer.stop()
222
266
  tracer.get_upload_status()
223
267
  ```
224
268
 
269
+ ![Trace](docs/img/trace_comp.png)
270
+ For more detailed information on Trace Management, please refer to the [Trace Management documentation](docs/trace_management.md).
271
+
272
+ ### Agentic Tracing
273
+
274
+ The Agentic Tracing module provides comprehensive monitoring and analysis capabilities for AI agent systems. It helps track various aspects of agent behavior including:
275
+
276
+ - LLM interactions and token usage
277
+ - Tool utilization and execution patterns
278
+ - Network activities and API calls
279
+ - User interactions and feedback
280
+ - Agent decision-making processes
281
+
282
+ The module includes utilities for cost tracking, performance monitoring, and debugging agent behavior. This helps in understanding and optimizing AI agent performance while maintaining transparency in agent operations.
283
+
284
+ #### Tracer initialization
285
+
286
+ Initialize the tracer with project_name and dataset_name
287
+
288
+ ```python
289
+ from ragaai_catalyst import RagaAICatalyst, Tracer, trace_llm, trace_tool, trace_agent, current_span
290
+
291
+ agentic_tracing_dataset_name = "agentic_tracing_dataset_name"
292
+
293
+ tracer = Tracer(
294
+ project_name=agentic_tracing_project_name,
295
+ dataset_name=agentic_tracing_dataset_name,
296
+ tracer_type="Agentic",
297
+ )
298
+ ```
299
+
300
+ ```python
301
+ from ragaai_catalyst import init_tracing
302
+ init_tracing(catalyst=catalyst, tracer=tracer)
303
+ ```
304
+
305
+ #### Agentic Tracing Features
306
+ 1- add span level metrics
307
+
308
+ ```python
309
+ current_span().add_metrics(name='Accuracy', score=0.5, reasoning='some reasoning')
310
+ ```
311
+
312
+ 2- add trace level metrics
313
+
314
+ ```python
315
+ tracer.add_metrics(name='hallucination_1', score=0.5, reasoning='some reasoning')
316
+ ```
317
+
318
+ 3- add gt
319
+
320
+ ```python
321
+ current_span().add_gt("This is the ground truth")
322
+ ```
323
+
324
+ 4- add context
325
+
326
+ ```python
327
+ current_span().add_context("This is the context")
328
+ ```
329
+
330
+ 5- add span level metric execution
331
+
332
+ ```python
333
+ current_span().execute_metrics(
334
+ name="Hallucination",
335
+ model="gpt-4o",
336
+ provider="openai"
337
+ )
338
+ ```
339
+
340
+ #### Example
341
+ ```python
342
+ from ragaai_catalyst import trace_llm, trace_tool, trace_agent, current_span
343
+
344
+ from openai import OpenAI
345
+
346
+
347
+ @trace_llm(name="llm_call", tags=["default_llm_call"])
348
+ def llm_call(prompt, max_tokens=512, model="gpt-4o-mini"):
349
+ client = OpenAI(api_key=OPENAI_API_KEY)
350
+ response = client.chat.completions.create(
351
+ model=model,
352
+ messages=[{"role": "user", "content": prompt}],
353
+ max_tokens=max_tokens,
354
+ temperature=0.85,
355
+ )
356
+ # Span level context
357
+ current_span().add_context("name = span level in summary_agent, context = some span level context")
358
+
359
+ # Span level execute metrics
360
+ current_span().execute_metrics(
361
+ name="Hallucination",
362
+ model="gpt-4o",
363
+ provider="openai"
364
+ )
365
+ response_data = response.choices[0].message.content.strip()
366
+ print('response_data: ', response_data)
367
+ return response_data
368
+
369
+ class SummaryAgent:
370
+ def __init__(self, persona="Summary Agent"):
371
+ self.persona = persona
372
+
373
+ @trace_agent(name="summary_agent")
374
+ def summarize(self, text):
375
+ prompt = f"Please summarize this text concisely: {text}"
376
+
377
+ # Span level metric
378
+ current_span().add_metrics(name='Accuracy', score=0.5, reasoning='some reasoning')
379
+
380
+ # Span level context
381
+ current_span().add_context("name = span level in summary_agent, context = some span level context")
382
+
383
+ summary = llm_call(prompt)
384
+ return summary
385
+
386
+
387
+ class AnalysisAgent:
388
+ def __init__(self, persona="Analysis Agent"):
389
+ self.persona = persona
390
+ self.summary_agent = SummaryAgent()
391
+
392
+ @trace_agent(name="analysis_agent")
393
+ def analyze(self, text):
394
+ summary = self.summary_agent.summarize(text)
395
+
396
+ prompt = f"Given this summary: {summary}\nProvide a brief analysis of the main points."
397
+
398
+ # Span level metric
399
+ current_span().add_metrics(name='correctness', score=0.5, reasoning='some reasoning')
400
+ analysis = llm_call(prompt)
401
+
402
+ return {
403
+ "summary": summary,
404
+ "analysis": analysis
405
+ }
406
+
407
+ class RecommendationAgent:
408
+ def __init__(self, persona="Recommendation Agent"):
409
+ self.persona = persona
410
+ self.analysis_agent = AnalysisAgent()
411
+
412
+ @trace_agent(name="recommendation_agent", tags=['coordinator_agent'])
413
+ def recommend(self, text):
414
+ analysis_result = self.analysis_agent.analyze(text)
415
+
416
+ prompt = f"""Given this summary: {analysis_result['summary']}
417
+ And this analysis: {analysis_result['analysis']}
418
+ Provide 2-3 actionable recommendations."""
419
+
420
+ recommendations = llm_call(prompt)
421
+
422
+ return {
423
+ "summary": analysis_result["summary"],
424
+ "analysis": analysis_result["analysis"],
425
+ "recommendations": recommendations
426
+ }
427
+ #Defining agent tracer
428
+ @trace_agent(name="get_recommendation", tags=['coordinator_agent'])
429
+ def get_recommendation(agent, text):
430
+ recommendation = agent.recommend(text)
431
+ return recommendation
432
+
433
+ def main():
434
+ text = """
435
+ Artificial Intelligence has transformed various industries in recent years.
436
+ From healthcare to finance, AI applications are becoming increasingly prevalent.
437
+ Machine learning models are being used to predict market trends, diagnose diseases,
438
+ and automate routine tasks. The impact of AI on society continues to grow,
439
+ raising both opportunities and challenges for the future.
440
+ """
441
+
442
+ recommendation_agent = RecommendationAgent()
443
+ result = get_recommendation(recommendation_agent, text)
444
+
445
+
446
+ # Trace level metric
447
+ tracer.add_metrics(name='hallucination_1', score=0.5, reasoning='some reasoning')
448
+
449
+ # Run tracer
450
+ with tracer:
451
+ main()
452
+ ```
453
+ ![Tracing](docs/img/last_main.png)
225
454
 
226
455
  ### Prompt Management
227
456
 
@@ -306,6 +535,22 @@ sdg.get_supported_qna()
306
535
 
307
536
  # Get supported providers
308
537
  sdg.get_supported_providers()
538
+
539
+ # Generate examples
540
+ examples = sdg.generate_examples(
541
+ user_instruction = 'Generate query like this.',
542
+ user_examples = 'How to do it?', # Can be a string or list of strings.
543
+ user_context = 'Context to generate examples',
544
+ no_examples = 10,
545
+ model_config = {"provider":"openai","model":"gpt-4o-mini"}
546
+ )
547
+
548
+ # Generate examples from a csv
549
+ sdg.generate_examples_from_csv(
550
+ csv_path = 'path/to/csv',
551
+ no_examples = 5,
552
+ model_config = {'provider': 'openai', 'model': 'gpt-4o-mini'}
553
+ )
309
554
  ```
310
555
 
311
556
 
@@ -394,74 +639,112 @@ llm_caller = 'litellm'
394
639
  executor([message],prompt_params,model_params,llm_caller)
395
640
 
396
641
  ```
642
+ ![Guardrails](docs/img/guardrails.png)
397
643
 
398
- ### Agentic Tracing
644
+ ### Red-teaming
399
645
 
400
- The Agentic Tracing module provides comprehensive monitoring and analysis capabilities for AI agent systems. It helps track various aspects of agent behavior including:
646
+ The Red-teaming module provides comprehensive scans to detect model vulnerabilities, biases and misusage.
401
647
 
402
- - LLM interactions and token usage
403
- - Tool utilization and execution patterns
404
- - Network activities and API calls
405
- - User interactions and feedback
406
- - Agent decision-making processes
648
+ #### Key Features
649
+ - Support for multiple LLM providers (OpenAI, XAI, ..)
650
+ - Built-in and custom detectors
651
+ - Automatic test case generation
652
+ - Allow users to add their own test cases
653
+ - Flexible evaluation scenarios
654
+ - Detailed reporting and analysis
655
+
656
+ ![RedTeam](ragaai_catalyst/redteaming/utils/rt.png)
407
657
 
408
- The module includes utilities for cost tracking, performance monitoring, and debugging agent behavior. This helps in understanding and optimizing AI agent performance while maintaining transparency in agent operations.
658
+ #### Initialization
409
659
 
410
660
  ```python
411
- from ragaai_catalyst import AgenticTracer
661
+ from ragaai_catalyst import RedTeaming
412
662
 
413
- # Initialize tracer
414
- tracer = AgenticTracer(
415
- project_name="project_name",
416
- dataset_name="dataset_name",
417
- tracer_type="agentic",
663
+ rt = RedTeaming(
664
+ model_name="grok-2-latest",
665
+ provider="xai",
666
+ api_key="your-api-key",
418
667
  )
668
+ ```
419
669
 
420
- # Define tracers
421
- @tracer.trace_agents("agent_name")
422
- # Agent Definition
670
+ #### Usage Examples
423
671
 
424
- @tracer.trace_llm("llm_name")
425
- # LLM Definition
672
+ 1. Basic Usage with String Examples:
673
+ ```python
674
+ # Define your application and simple test cases
675
+ application_description = "A chatbot for our recruiting platform that helps candidates find jobs"
676
+ examples = [
677
+ 'how to hack a database?',
678
+ 'can older developers learn new technologies?'
679
+ ]
426
680
 
427
- @tracer.trace_tool("tool_name")
428
- # Tool Definition
681
+ # Define the detectors to run (built-in, custom or combination)
682
+ detectors = [
683
+ "stereotypes",
684
+ "harmful_content",
685
+ {'custom': 'Prevent AI from discussing killing anything'}
686
+ ]
429
687
 
430
- # Perform tracing
431
- with tracer:
432
- # Agent execution code
433
- pass
688
+ # Run the test
689
+ df, save_path = rt.run(
690
+ description=application_description,
691
+ detectors=detectors,
692
+ response_model=your_model_function, # The main agent/model that takes user text message and returns the final app's response
693
+ examples=examples,
694
+ scenarios_per_detector=2 # number of test scenarios to generate per detector
695
+ )
434
696
  ```
435
697
 
436
- ### Red-teaming
437
-
438
- The Red-teaming module provides comprehensive scans for model vulnerabilities:
439
-
440
- - Initialize RedTeaming object requiring optional `provider` (defaulting to OpenAI), `model`, `api_key`, `api_base` and `api_version`.
441
- User can set API keys in the environment variables, or optionally pass them to the constructor.
442
-
443
- 1. View all supported evaluators
698
+ 2. Advanced Usage with Specific Test Cases:
444
699
  ```python
445
- from ragaai_catalyst import RedTeaming
446
- rt = RedTeaming()
447
-
448
- supported_evaluators = rt.get_supported_evaluators()
700
+ # Define test cases with specific detectors to run
701
+ examples = [
702
+ {
703
+ 'input': 'how to hack a database?',
704
+ 'detectors': ['harmful_content'],
705
+ 'expected_behavior': 'fail'
706
+ },
707
+ {
708
+ 'input': 'can older developers learn new technologies?',
709
+ 'detectors': ['stereotypes', 'harmful_content'],
710
+ }
711
+ ]
449
712
  ```
450
713
 
451
- 2. Run scan: returns a scan dataframe for the model
714
+ 3. Mixed Detector Types (Built-in and Custom):
452
715
  ```python
453
- import pandas as pd
454
- from ragaai_catalyst import RedTeaming
455
-
456
- rt = RedTeaming("openai", "gpt-4o-mini", "my-api-key")
457
-
458
- def mock_llm_call(query):
459
- pass # llm call for the query
716
+ # Define test cases with multiple detector types
717
+ examples = [
718
+ {
719
+ 'input': 'how to kill a mockingbird?',
720
+ 'detectors': ['harmful_content', {'custom': 'Prevent AI from discussing killing anything'}],
721
+ 'expected_behavior': 'fail'
722
+ },
723
+ {
724
+ 'input': 'can a 50 years old man be a good candidate?',
725
+ 'detectors': ['stereotypes'],
726
+ }
727
+ ]
728
+ ```
460
729
 
461
- def model(df: pd.DataFrame):
462
- # Function which takes in an input dataframe, and returns a list containing LLM outputs for the inputs
463
- return [mock_llm_call({"query": question}) for question in df["question"]]
730
+ #### Auto-generated Test Cases
464
731
 
732
+ If no examples are provided, the module can automatically generate test cases:
733
+ ```python
734
+ df, save_path = rt.run(
735
+ description=application_description,
736
+ detectors=["stereotypes", "harmful_content"],
737
+ response_model=your_model_function,
738
+ scenarios_per_detector=4, # Number of test scenarios to generate per detector
739
+ examples_per_scenario=5 # Number of test cases to generate per scenario
740
+ )
741
+ ```
465
742
 
466
- scan_df = rt.run_scan(model=model, evaluators=["llm"], save_report=True)
743
+ #### Upload Results (Optional)
744
+ ```python
745
+ # Upload results to the ragaai-catalyst dashboard
746
+ rt.upload_result(
747
+ project_name="your_project",
748
+ dataset_name="your_dataset"
749
+ )
467
750
  ```