ragaai-catalyst 2.1.6b1__tar.gz → 2.1.6.1b0__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.
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/PKG-INFO +5 -4
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/crewai/scifi_writer/scifi_writer.py +3 -7
- ragaai_catalyst-2.1.6.1b0/examples/openai_agents_sdk/README.md +71 -0
- ragaai_catalyst-2.1.6.1b0/examples/openai_agents_sdk/data_extraction_email.py +189 -0
- ragaai_catalyst-2.1.6.1b0/examples/openai_agents_sdk/requirements.txt +3 -0
- ragaai_catalyst-2.1.6.1b0/examples/openai_agents_sdk/sample.env +6 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/pyproject.toml +6 -6
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/guard_executor.py +1 -0
- ragaai_catalyst-2.1.6.1b0/ragaai_catalyst/tracers/instrumentators/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/tracer.py +21 -6
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/upload_traces.py +5 -2
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/utils/trace_json_converter.py +39 -24
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst.egg-info/PKG-INFO +5 -4
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst.egg-info/SOURCES.txt +4 -7
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst.egg-info/requires.txt +1 -1
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/requirements.txt +2 -2
- ragaai_catalyst-2.1.6b1/examples/autogen/crisis_response_coordinator/OAI_CONFIG_LIST.json +0 -6
- ragaai_catalyst-2.1.6b1/examples/autogen/crisis_response_coordinator/crisis_response_coordinator.py +0 -192
- ragaai_catalyst-2.1.6b1/examples/autogen/crisis_response_coordinator/requirements.txt +0 -1
- ragaai_catalyst-2.1.6b1/examples/autogen/crisis_response_coordinator/sample.env +0 -7
- ragaai_catalyst-2.1.6b1/ragaai_catalyst/tracers/instrumentators/__init__.py +0 -5
- ragaai_catalyst-2.1.6b1/ragaai_catalyst/tracers/instrumentators/langchain.py +0 -14
- ragaai_catalyst-2.1.6b1/ragaai_catalyst/tracers/instrumentators/llamaindex.py +0 -14
- ragaai_catalyst-2.1.6b1/ragaai_catalyst/tracers/instrumentators/openai.py +0 -13
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/.gitignore +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/.gitmodules +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/LICENSE +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/README.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/dataset_management.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/autheticate.gif +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/create_project.gif +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/custom_metrics.png +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/dataset.gif +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/dataset.png +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/evaluation.gif +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/evaluation.png +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/guardrails.png +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/last_main.png +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/main.png +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/projects_new.png +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/img/trace_comp.png +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/prompt_management.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/docs/trace_management.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/crewai/scifi_writer/README.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/crewai/scifi_writer/requirements.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/crewai/scifi_writer/sample.env +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/custom_agents/travel_agent/agents.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/custom_agents/travel_agent/config.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/custom_agents/travel_agent/main.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/custom_agents/travel_agent/tools.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/haystack/rag/README.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/haystack/rag/rag.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/haystack/rag/requirements.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/haystack/rag/sample.env +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langchain/medical_rag/data/medical_texts/handbook1.pdf +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langchain/medical_rag/data/medical_texts/handbook2.pdf +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langchain/medical_rag/data/symptom_disease_map.csv +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langchain/medical_rag/diagnosis_agent.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langchain/medical_rag/requirements.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langchain/medical_rag/sample.env +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langgraph/personal_research_assistant/README.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langgraph/personal_research_assistant/requirements.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langgraph/personal_research_assistant/research_assistant.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/langgraph/personal_research_assistant/sample.env +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/llamaindex_examples/legal_research_rag/legal_data/cases/ca_overtime_2021.pdf +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/llamaindex_examples/legal_research_rag/legal_data/cases/fl_ada_2022.pdf +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/llamaindex_examples/legal_research_rag/legal_data/statutes.csv +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/llamaindex_examples/legal_research_rag/legal_rag.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/llamaindex_examples/legal_research_rag/requirements.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/llamaindex_examples/legal_research_rag/sample.env +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/smolagents/most_upvoted_paper/README.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/smolagents/most_upvoted_paper/most_upvoted_paper.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/smolagents/most_upvoted_paper/requirements.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/smolagents/most_upvoted_paper/sample.env +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/smolagents/rag_using_chromadb/README.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/smolagents/rag_using_chromadb/rag_using_chromadb.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/smolagents/rag_using_chromadb/requirements.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/smolagents/rag_using_chromadb/sample.env +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/_version.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/dataset.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/evaluation.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/experiment.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/guardrails_manager.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/internal_api_completion.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/prompt_manager.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/proxy_call.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/ragaai_catalyst.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/config/detectors.toml +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/data_generator/scenario_generator.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/data_generator/test_case_generator.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/evaluator.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/llm_generator.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/llm_generator_old.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/red_teaming.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/requirements.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/tests/grok.ipynb +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/tests/stereotype.ipynb +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/upload_result.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/utils/issue_description.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming/utils/rt.png +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/redteaming_old.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/synthetic_data_generation.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/README.md +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/data/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/data/data_structure.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tests/FinancialAnalysisSystem.ipynb +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tests/GameActivityEventPlanner.ipynb +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tests/TravelPlanner.ipynb +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tests/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tests/ai_travel_agent.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tests/unique_decorator_test.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/agent_tracer.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/base.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/custom_tracer.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/langgraph_tracer.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/llm_tracer.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/main_tracer.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/network_tracer.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/tool_tracer.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/tracers/user_interaction_tracer.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/upload/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/upload/trace_uploader.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/upload/upload_agentic_traces.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/upload/upload_code.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/upload/upload_local_metric.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/upload/upload_trace_metric.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/api_utils.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/create_dataset_schema.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/file_name_tracker.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/generic.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/get_user_trace_metrics.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/llm_utils.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/model_costs.json +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/span_attributes.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/supported_llm_provider.toml +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/system_monitor.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/trace_utils.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/unique_decorator.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/agentic_tracing/utils/zip_list_of_unique_files.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/distributed.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/exporters/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/exporters/dynamic_trace_exporter.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/exporters/file_span_exporter.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/exporters/raga_exporter.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/exporters/ragaai_trace_exporter.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/langchain_callback.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/llamaindex_callback.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/llamaindex_instrumentation.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/utils/__init__.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/utils/convert_langchain_callbacks_output.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/utils/convert_llama_instru_callback.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/utils/extraction_logic_llama_index.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/utils/langchain_tracer_extraction_logic.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/utils/model_prices_and_context_window_backup.json +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/utils/utils.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/utils.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst.egg-info/dependency_links.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst.egg-info/top_level.txt +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/setup.cfg +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/examples/langgraph/personal_research_assistant/test_research_assistant.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_base_tracer_add_metrics.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_base_tracer_metrics.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_configuration.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_dataset.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_evaluation.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_evaluation_metrics.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_langchain_tracing.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_llm_providers.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_prompt_manager.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_redteaming.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/test_synthetic_data_generation.py +0 -0
- {ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/tests/test_catalyst/upload_trace_zip_automation.py +0 -0
@@ -1,9 +1,9 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: ragaai_catalyst
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.6.1b0
|
4
4
|
Summary: RAGA AI CATALYST
|
5
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
|
-
Requires-Python: <3.13,>=3.
|
6
|
+
Requires-Python: <3.13,>=3.10
|
7
7
|
Description-Content-Type: text/markdown
|
8
8
|
License-File: LICENSE
|
9
9
|
Requires-Dist: aiohttp>=3.10.2
|
@@ -39,7 +39,7 @@ Requires-Dist: openinference-instrumentation-openai
|
|
39
39
|
Requires-Dist: openinference-instrumentation-bedrock
|
40
40
|
Requires-Dist: openinference-instrumentation-crewai
|
41
41
|
Requires-Dist: openinference-instrumentation-haystack
|
42
|
-
Requires-Dist: openinference-instrumentation-
|
42
|
+
Requires-Dist: openinference-instrumentation-openai-agents
|
43
43
|
Requires-Dist: openinference-instrumentation-smolagents
|
44
44
|
Requires-Dist: opentelemetry-sdk
|
45
45
|
Requires-Dist: opentelemetry-exporter-otlp
|
@@ -51,6 +51,7 @@ Requires-Dist: black; extra == "dev"
|
|
51
51
|
Requires-Dist: isort; extra == "dev"
|
52
52
|
Requires-Dist: mypy; extra == "dev"
|
53
53
|
Requires-Dist: flake8; extra == "dev"
|
54
|
+
Dynamic: license-file
|
54
55
|
|
55
56
|
# RagaAI Catalyst   
|
56
57
|
|
{ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/examples/crewai/scifi_writer/scifi_writer.py
RENAMED
@@ -1,15 +1,11 @@
|
|
1
|
-
import sys
|
2
|
-
sys.path.append('.')
|
3
|
-
|
4
|
-
from ragaai_catalyst import RagaAICatalyst, init_tracing
|
5
|
-
from ragaai_catalyst.tracers import Tracer
|
6
|
-
|
7
1
|
import os
|
8
2
|
from dotenv import load_dotenv
|
9
3
|
from crewai import Agent, Task, Crew, Process
|
10
4
|
from crewai.tools import tool
|
11
5
|
from typing import Any
|
12
6
|
|
7
|
+
from ragaai_catalyst import RagaAICatalyst, init_tracing
|
8
|
+
from ragaai_catalyst.tracers import Tracer
|
13
9
|
|
14
10
|
load_dotenv()
|
15
11
|
|
@@ -98,4 +94,4 @@ try:
|
|
98
94
|
print("\nGenerated Story Content:")
|
99
95
|
print(file.read())
|
100
96
|
except FileNotFoundError:
|
101
|
-
print("Story file not found. Check the writer agent's execution.")
|
97
|
+
print("Story file not found. Check the writer agent's execution.")
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# Email Data Extraction with OpenAI Agents SDK
|
2
|
+
|
3
|
+
This example demonstrates how to use the OpenAI Agents SDK with RagaAI Catalyst to extract structured information from emails.
|
4
|
+
|
5
|
+
## Overview
|
6
|
+
|
7
|
+
The application uses OpenAI's Agents SDK to parse unstructured email text and extract key information such as:
|
8
|
+
- Email subject and sender details
|
9
|
+
- Main discussion points
|
10
|
+
- Meeting information (date, time, location)
|
11
|
+
- Action items and tasks with assignees
|
12
|
+
- Next steps
|
13
|
+
|
14
|
+
The extracted data is structured using Pydantic models for easy manipulation and validation.
|
15
|
+
|
16
|
+
## Requirements
|
17
|
+
|
18
|
+
- Python 3.8+
|
19
|
+
- OpenAI API key
|
20
|
+
- RagaAI Catalyst credentials
|
21
|
+
|
22
|
+
## Installation
|
23
|
+
|
24
|
+
1. Clone the repository
|
25
|
+
2. Install the required dependencies:
|
26
|
+
```bash
|
27
|
+
pip install -r requirements.txt
|
28
|
+
```
|
29
|
+
3. Copy [sample.env](cci:7://file:///Users/ragaai_user/work/ragaai-catalyst/examples/openai_agents_sdk/sample.env:0:0-0:0) to [.env](cci:7://file:///Users/ragaai_user/work/ragaai-catalyst/examples/openai_agents_sdk/sample.env:0:0-0:0) and fill in your API keys:
|
30
|
+
```bash
|
31
|
+
cp sample.env .env
|
32
|
+
```
|
33
|
+
|
34
|
+
## Environment Variables
|
35
|
+
|
36
|
+
Configure the following environment variables in your [.env](cci:7://file:///Users/ragaai_user/work/ragaai-catalyst/examples/openai_agents_sdk/sample.env:0:0-0:0) file:
|
37
|
+
|
38
|
+
- `OPENAI_API_KEY`: Your OpenAI API key
|
39
|
+
- `CATALYST_ACCESS_KEY`: Your RagaAI Catalyst access key
|
40
|
+
- `CATALYST_SECRET_KEY`: Your RagaAI Catalyst secret key
|
41
|
+
- `CATALYST_BASE_URL`: RagaAI Catalyst base URL
|
42
|
+
- `PROJECT_NAME`: Name for your project in RagaAI Catalyst (default: 'email-extraction')
|
43
|
+
- `DATASET_NAME`: Name for your dataset in RagaAI Catalyst (default: 'email-data')
|
44
|
+
|
45
|
+
## Usage
|
46
|
+
|
47
|
+
Run the example script:
|
48
|
+
|
49
|
+
```bash
|
50
|
+
python data_extraction_email.py
|
51
|
+
```
|
52
|
+
The script will:
|
53
|
+
|
54
|
+
1. Initialize the RagaAI Catalyst client for tracing
|
55
|
+
2. Set up an OpenAI Agent with appropriate instructions
|
56
|
+
3. Process a sample email to extract structured data
|
57
|
+
4. Display the extracted information
|
58
|
+
|
59
|
+
## Customization
|
60
|
+
|
61
|
+
You can modify the `sample_email` variable in the script to process different emails, or adapt the code to read emails from files or an API.
|
62
|
+
|
63
|
+
The Pydantic models (`Person`, `Meeting`, `Task`, `EmailData`) can be extended to capture additional information as needed.
|
64
|
+
|
65
|
+
## Integration with RagaAI Catalyst
|
66
|
+
|
67
|
+
This example integrates with RagaAI Catalyst for tracing and monitoring agent interactions. The integration helps with:
|
68
|
+
|
69
|
+
- Tracking agent performance
|
70
|
+
- Debugging complex agent workflows
|
71
|
+
- Collecting data for future improvements
|
@@ -0,0 +1,189 @@
|
|
1
|
+
import os
|
2
|
+
import time
|
3
|
+
from typing import List, Optional, Callable, Any
|
4
|
+
from pydantic import BaseModel
|
5
|
+
from dotenv import load_dotenv
|
6
|
+
|
7
|
+
from agents import Agent, Runner, ModelSettings, set_tracing_export_api_key
|
8
|
+
|
9
|
+
from ragaai_catalyst import RagaAICatalyst, init_tracing
|
10
|
+
from ragaai_catalyst.tracers import Tracer
|
11
|
+
|
12
|
+
load_dotenv()
|
13
|
+
set_tracing_export_api_key(os.getenv('OPENAI_API_KEY'))
|
14
|
+
|
15
|
+
def initialize_catalyst():
|
16
|
+
"""Initialize RagaAI Catalyst using environment credentials."""
|
17
|
+
catalyst = RagaAICatalyst(
|
18
|
+
access_key=os.getenv('CATALYST_ACCESS_KEY'),
|
19
|
+
secret_key=os.getenv('CATALYST_SECRET_KEY'),
|
20
|
+
base_url=os.getenv('CATALYST_BASE_URL')
|
21
|
+
)
|
22
|
+
|
23
|
+
tracer = Tracer(
|
24
|
+
project_name=os.environ.get('PROJECT_NAME', 'email-extraction'),
|
25
|
+
dataset_name=os.environ.get('DATASET_NAME', 'email-data'),
|
26
|
+
tracer_type="agentic/openai_agents",
|
27
|
+
)
|
28
|
+
|
29
|
+
init_tracing(catalyst=catalyst, tracer=tracer)
|
30
|
+
|
31
|
+
class Person(BaseModel):
|
32
|
+
"""Person data model for email sender and recipients."""
|
33
|
+
name: str
|
34
|
+
role: Optional[str] = None
|
35
|
+
contact: Optional[str] = None
|
36
|
+
|
37
|
+
class Meeting(BaseModel):
|
38
|
+
"""Meeting data model for scheduled meetings in emails."""
|
39
|
+
date: str
|
40
|
+
time: str
|
41
|
+
location: Optional[str] = None
|
42
|
+
duration: Optional[str] = None
|
43
|
+
|
44
|
+
class Task(BaseModel):
|
45
|
+
"""Task data model for action items in emails."""
|
46
|
+
description: str
|
47
|
+
assignee: Optional[str] = None
|
48
|
+
deadline: Optional[str] = None
|
49
|
+
priority: Optional[str] = None
|
50
|
+
|
51
|
+
class EmailData(BaseModel):
|
52
|
+
"""Complete email data model with structured information."""
|
53
|
+
subject: str
|
54
|
+
sender: Person
|
55
|
+
recipients: List[Person]
|
56
|
+
main_points: List[str]
|
57
|
+
meetings: List[Meeting]
|
58
|
+
tasks: List[Task]
|
59
|
+
next_steps: Optional[str] = None
|
60
|
+
|
61
|
+
def initialize_agent(agent_name: str, agent_instructions: str|Callable, handoff_description: Optional[str]=None, handoffs: List[Agent]=list(), model_name: str='gpt-4o', temperature: float=0.3, max_tokens: int=1000, output_type: Optional[type[Any]]=None):
|
62
|
+
"""Initialize the OpenAI agent for email extraction."""
|
63
|
+
# Initialize the agent with appropriate configuration
|
64
|
+
# This could include model selection, temperature settings, etc.
|
65
|
+
model_settings = ModelSettings(
|
66
|
+
temperature=temperature,
|
67
|
+
max_tokens=max_tokens
|
68
|
+
)
|
69
|
+
agent = Agent(
|
70
|
+
name=agent_name,
|
71
|
+
instructions=agent_instructions,
|
72
|
+
handoff_description=handoff_description,
|
73
|
+
handoffs=handoffs,
|
74
|
+
model=model_name,
|
75
|
+
model_settings=model_settings,
|
76
|
+
output_type=output_type
|
77
|
+
)
|
78
|
+
return agent
|
79
|
+
|
80
|
+
email_extractor = initialize_agent(
|
81
|
+
agent_name="Email Extractor",
|
82
|
+
agent_instructions="You are an expert at extracting structured information from emails.",
|
83
|
+
model_name="gpt-4o",
|
84
|
+
temperature=0.2,
|
85
|
+
output_type=EmailData
|
86
|
+
)
|
87
|
+
|
88
|
+
async def extract_email_data(email_text: str) -> EmailData:
|
89
|
+
"""
|
90
|
+
Extract structured data from an email using an OpenAI agent.
|
91
|
+
|
92
|
+
Args:
|
93
|
+
email_text: The raw email text to process
|
94
|
+
|
95
|
+
Returns:
|
96
|
+
EmailData object containing structured information from the email
|
97
|
+
"""
|
98
|
+
runner = Runner()
|
99
|
+
extraction_prompt = f"Please extract information from this email:\n\n{email_text}"
|
100
|
+
result = await runner.run(
|
101
|
+
email_extractor,
|
102
|
+
extraction_prompt
|
103
|
+
)
|
104
|
+
return result.final_output
|
105
|
+
|
106
|
+
sample_email = """
|
107
|
+
From: Alex Johnson <alex.j@techcorp.com>
|
108
|
+
To: Team Development <team-dev@techcorp.com>
|
109
|
+
CC: Sarah Wong <sarah.w@techcorp.com>, Miguel Fernandez <miguel.f@techcorp.com>
|
110
|
+
Subject: Project Phoenix Update and Next Steps
|
111
|
+
|
112
|
+
Hi team,
|
113
|
+
|
114
|
+
I wanted to follow up on yesterday's discussion about Project Phoenix and outline our next steps.
|
115
|
+
|
116
|
+
Key points from our discussion:
|
117
|
+
- The beta testing phase has shown promising results with 85% positive feedback
|
118
|
+
- We're still facing some performance issues on mobile devices
|
119
|
+
- The client has requested additional features for the dashboard
|
120
|
+
|
121
|
+
Let's schedule a follow-up meeting this Friday, June 15th at 2:00 PM in Conference Room B. The meeting should last about 1.5 hours, and we'll need to prepare the updated project timeline.
|
122
|
+
|
123
|
+
Action items:
|
124
|
+
1. Sarah to address the mobile performance issues by June 20th (High priority)
|
125
|
+
2. Miguel to create mock-ups for the new dashboard features by next Monday
|
126
|
+
3. Everyone to review the beta testing feedback document and add comments by EOD tomorrow
|
127
|
+
|
128
|
+
If you have any questions before Friday's meeting, feel free to reach out.
|
129
|
+
|
130
|
+
Best regards,
|
131
|
+
Alex Johnson
|
132
|
+
Senior Project Manager
|
133
|
+
(555) 123-4567
|
134
|
+
"""
|
135
|
+
|
136
|
+
def display_email_data(email_data: EmailData):
|
137
|
+
"""
|
138
|
+
Display the extracted email data in a formatted way.
|
139
|
+
|
140
|
+
Args:
|
141
|
+
email_data: The structured EmailData object to display
|
142
|
+
"""
|
143
|
+
print(f"Subject: {email_data.subject}")
|
144
|
+
print(f"From: {email_data.sender.name} ({email_data.sender.role})")
|
145
|
+
|
146
|
+
print("\nMain points:")
|
147
|
+
for point in email_data.main_points:
|
148
|
+
print(f"- {point}")
|
149
|
+
|
150
|
+
print("\nMeetings:")
|
151
|
+
for meeting in email_data.meetings:
|
152
|
+
print(f"- {meeting.date} at {meeting.time}, Location: {meeting.location}")
|
153
|
+
|
154
|
+
print("\nTasks:")
|
155
|
+
for task in email_data.tasks:
|
156
|
+
print(f"- {task.description}")
|
157
|
+
print(
|
158
|
+
f" Assignee: {task.assignee}, Deadline: {task.deadline}, Priority: {task.priority}"
|
159
|
+
)
|
160
|
+
|
161
|
+
if email_data.next_steps:
|
162
|
+
print(f"\nNext Steps: {email_data.next_steps}")
|
163
|
+
|
164
|
+
async def process_email(email_text: str):
|
165
|
+
"""
|
166
|
+
Process an email to extract structured data and display the results.
|
167
|
+
|
168
|
+
Args:
|
169
|
+
email_text: The raw email text to process
|
170
|
+
|
171
|
+
Returns:
|
172
|
+
The structured EmailData object
|
173
|
+
"""
|
174
|
+
if os.getenv('CATALYST_ACCESS_KEY'):
|
175
|
+
initialize_catalyst()
|
176
|
+
|
177
|
+
start_time = time.time()
|
178
|
+
email_data = await extract_email_data(email_text)
|
179
|
+
duration = time.time() - start_time
|
180
|
+
|
181
|
+
print(f"Email processing completed in {duration:.2f} seconds")
|
182
|
+
display_email_data(email_data)
|
183
|
+
|
184
|
+
return email_data
|
185
|
+
|
186
|
+
if __name__ == "__main__":
|
187
|
+
import asyncio
|
188
|
+
|
189
|
+
asyncio.run(process_email(sample_email))
|
@@ -6,9 +6,9 @@ build-backend = "setuptools.build_meta"
|
|
6
6
|
name = "ragaai_catalyst"
|
7
7
|
description = "RAGA AI CATALYST"
|
8
8
|
readme = "README.md"
|
9
|
-
requires-python = ">=3.
|
9
|
+
requires-python = ">=3.10,<3.13"
|
10
10
|
# license = {file = "LICENSE"}
|
11
|
-
version = "2.1.6.
|
11
|
+
version = "2.1.6.1.beta.0"
|
12
12
|
authors = [
|
13
13
|
{name = "Kiran Scaria", email = "kiran.scaria@raga.ai"},
|
14
14
|
{name = "Kedar Gaikwad", email = "kedar.gaikwad@raga.ai"},
|
@@ -28,8 +28,8 @@ dependencies = [
|
|
28
28
|
"groq>=0.11.0",
|
29
29
|
"pypdf>=5.3.1",
|
30
30
|
"google-genai>=1.3.0",
|
31
|
-
"Markdown>=3.7",
|
32
|
-
"litellm>=1.51.1",
|
31
|
+
"Markdown>=3.7",
|
32
|
+
"litellm>=1.51.1",
|
33
33
|
"tenacity==8.3.0",
|
34
34
|
"tqdm>=4.66.5",
|
35
35
|
"llama-index>=0.10.0",
|
@@ -53,11 +53,11 @@ dependencies = [
|
|
53
53
|
"openinference-instrumentation-bedrock",
|
54
54
|
"openinference-instrumentation-crewai",
|
55
55
|
"openinference-instrumentation-haystack",
|
56
|
-
"openinference-instrumentation-
|
56
|
+
"openinference-instrumentation-openai-agents",
|
57
57
|
"openinference-instrumentation-smolagents",
|
58
58
|
"opentelemetry-sdk",
|
59
59
|
"opentelemetry-exporter-otlp",
|
60
|
-
"opentelemetry-proto>=1.12.0"
|
60
|
+
"opentelemetry-proto>=1.12.0",
|
61
61
|
]
|
62
62
|
|
63
63
|
[project.optional-dependencies]
|
@@ -164,6 +164,7 @@ class GuardExecutor:
|
|
164
164
|
return doc
|
165
165
|
|
166
166
|
def execute_input_guardrails(self, prompt, prompt_params):
|
167
|
+
self.current_trace_id =None
|
167
168
|
doc = self.set_variables(prompt,prompt_params)
|
168
169
|
deployment_response = self.execute_deployment(self.input_deployment_id,doc)
|
169
170
|
self.current_trace_id = deployment_response['data']['results'][0]['executionId']
|
File without changes
|
@@ -21,11 +21,6 @@ from opentelemetry.sdk import trace as trace_sdk
|
|
21
21
|
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
|
22
22
|
from ragaai_catalyst.tracers.exporters.file_span_exporter import FileSpanExporter
|
23
23
|
from ragaai_catalyst.tracers.exporters.raga_exporter import RagaExporter
|
24
|
-
from ragaai_catalyst.tracers.instrumentators import (
|
25
|
-
LangchainInstrumentor,
|
26
|
-
OpenAIInstrumentor,
|
27
|
-
LlamaIndexInstrumentor,
|
28
|
-
)
|
29
24
|
from ragaai_catalyst.tracers.utils import get_unique_key
|
30
25
|
# from ragaai_catalyst.tracers.llamaindex_callback import LlamaIndexTracer
|
31
26
|
from ragaai_catalyst.tracers.llamaindex_instrumentation import LlamaIndexInstrumentationTracer
|
@@ -283,6 +278,14 @@ class Tracer(AgenticTracing):
|
|
283
278
|
logger.info("Instrumenting Smolagents...")
|
284
279
|
except (ImportError, ModuleNotFoundError):
|
285
280
|
logger.debug("Smolagents not available in environment")
|
281
|
+
|
282
|
+
# OpenAI Agents
|
283
|
+
try:
|
284
|
+
from openinference.instrumentation.openai_agents import OpenAIAgentsInstrumentor
|
285
|
+
instrumentors.append((OpenAIAgentsInstrumentor, []))
|
286
|
+
logger.info("Instrumenting OpenAI Agents...")
|
287
|
+
except (ImportError, ModuleNotFoundError):
|
288
|
+
logger.debug("OpenAI Agents not available in environment")
|
286
289
|
|
287
290
|
if not instrumentors:
|
288
291
|
logger.warning("No agentic packages found in environment to instrument")
|
@@ -298,7 +301,7 @@ class Tracer(AgenticTracing):
|
|
298
301
|
elif tracer_type == "agentic/llamaindex":
|
299
302
|
from openinference.instrumentation.llama_index import LlamaIndexInstrumentor
|
300
303
|
instrumentors += [(LlamaIndexInstrumentor, [])]
|
301
|
-
|
304
|
+
|
302
305
|
elif tracer_type == "agentic/langchain" or tracer_type == "agentic/langgraph":
|
303
306
|
from openinference.instrumentation.langchain import LangChainInstrumentor
|
304
307
|
instrumentors += [(LangChainInstrumentor, [])]
|
@@ -319,6 +322,10 @@ class Tracer(AgenticTracing):
|
|
319
322
|
elif tracer_type == "agentic/smolagents":
|
320
323
|
from openinference.instrumentation.smolagents import SmolagentsInstrumentor
|
321
324
|
instrumentors += [(SmolagentsInstrumentor, [])]
|
325
|
+
|
326
|
+
elif tracer_type == "agentic/openai_agents":
|
327
|
+
from openinference.instrumentation.openai_agents import OpenAIAgentsInstrumentor
|
328
|
+
instrumentors += [(OpenAIAgentsInstrumentor, [])]
|
322
329
|
|
323
330
|
else:
|
324
331
|
# Unknown agentic tracer type
|
@@ -518,6 +525,14 @@ class Tracer(AgenticTracing):
|
|
518
525
|
combined_metadata.update(user_detail['trace_user_detail']['metadata'])
|
519
526
|
if additional_metadata:
|
520
527
|
combined_metadata.update(additional_metadata)
|
528
|
+
|
529
|
+
model_cost_latency_metadata = {}
|
530
|
+
if additional_metadata:
|
531
|
+
model_cost_latency_metadata["model"] = additional_metadata["model_name"]
|
532
|
+
model_cost_latency_metadata["total_cost"] = additional_metadata["cost"]
|
533
|
+
model_cost_latency_metadata["total_latency"] = additional_metadata["latency"]
|
534
|
+
model_cost_latency_metadata["recorded_on"] = datetime.datetime.now().astimezone().isoformat()
|
535
|
+
combined_metadata.update(model_cost_latency_metadata)
|
521
536
|
|
522
537
|
langchain_traces = langchain_tracer_extraction(data, self.user_context)
|
523
538
|
final_result = convert_langchain_callbacks_output(langchain_traces)
|
{ragaai_catalyst-2.1.6b1 → ragaai_catalyst-2.1.6.1b0}/ragaai_catalyst/tracers/upload_traces.py
RENAMED
@@ -28,11 +28,14 @@ class UploadTraces:
|
|
28
28
|
"response":{"columnType": "response"},
|
29
29
|
"context": {"columnType": "context"},
|
30
30
|
"llm_model": {"columnType":"pipeline"},
|
31
|
-
"recorded_on": {"columnType": "
|
31
|
+
"recorded_on": {"columnType": "timestamp"},
|
32
32
|
"embed_model": {"columnType":"pipeline"},
|
33
33
|
"log_source": {"columnType": "metadata"},
|
34
34
|
"vector_store":{"columnType":"pipeline"},
|
35
|
-
"feedback": {"columnType":"feedBack"}
|
35
|
+
"feedback": {"columnType":"feedBack"},
|
36
|
+
"model": {"columnType": "metadata"},
|
37
|
+
"total_cost": {"columnType": "metadata", "dataType": "numerical"},
|
38
|
+
"total_latency": {"columnType": "metadata", "dataType": "numerical"},
|
36
39
|
}
|
37
40
|
|
38
41
|
if additional_metadata_keys:
|
@@ -226,7 +226,7 @@ def get_spans(input_trace, custom_model_cost):
|
|
226
226
|
|
227
227
|
def convert_json_format(input_trace, custom_model_cost):
|
228
228
|
"""
|
229
|
-
Converts a JSON from one format to UI format.
|
229
|
+
Converts a JSON from one format to UI format, handling nested spans.
|
230
230
|
|
231
231
|
Args:
|
232
232
|
input_trace (str): The input JSON string.
|
@@ -238,8 +238,8 @@ def convert_json_format(input_trace, custom_model_cost):
|
|
238
238
|
"id": input_trace[0]["context"]["trace_id"],
|
239
239
|
"trace_name": "",
|
240
240
|
"project_name": "",
|
241
|
-
"start_time": convert_time_format(min(item["start_time"] for item in input_trace)),
|
242
|
-
"end_time": convert_time_format(max(item["end_time"] for item in input_trace))
|
241
|
+
"start_time": convert_time_format(min(item["start_time"] for item in input_trace)),
|
242
|
+
"end_time": convert_time_format(max(item["end_time"] for item in input_trace))
|
243
243
|
}
|
244
244
|
final_trace["metadata"] = {
|
245
245
|
"tokens": {
|
@@ -253,31 +253,46 @@ def convert_json_format(input_trace, custom_model_cost):
|
|
253
253
|
"total_cost": 0.0
|
254
254
|
}
|
255
255
|
}
|
256
|
-
final_trace["replays"]={"source":None}
|
257
|
-
final_trace["data"]=[{}]
|
256
|
+
final_trace["replays"] = {"source": None}
|
257
|
+
final_trace["data"] = [{}]
|
258
|
+
final_trace["network_calls"] = []
|
259
|
+
final_trace["interactions"] = []
|
260
|
+
|
261
|
+
# import pdb; pdb.set_trace()
|
262
|
+
|
263
|
+
# Helper to recursively extract cost/token info from all spans
|
264
|
+
def accumulate_metrics(span):
|
265
|
+
if span["type"] == "llm" and "info" in span:
|
266
|
+
info = span["info"]
|
267
|
+
cost = info.get("cost", {})
|
268
|
+
tokens = info.get("tokens", {})
|
269
|
+
|
270
|
+
final_trace["metadata"]["tokens"]["prompt_tokens"] += tokens.get("prompt_tokens", 0.0)
|
271
|
+
final_trace["metadata"]["tokens"]["completion_tokens"] += tokens.get("completion_tokens", 0.0)
|
272
|
+
final_trace["metadata"]["tokens"]["total_tokens"] += tokens.get("total_tokens", 0.0)
|
273
|
+
|
274
|
+
final_trace["metadata"]["cost"]["input_cost"] += cost.get("input_cost", 0.0)
|
275
|
+
final_trace["metadata"]["cost"]["output_cost"] += cost.get("output_cost", 0.0)
|
276
|
+
final_trace["metadata"]["cost"]["total_cost"] += cost.get("total_cost", 0.0)
|
277
|
+
|
278
|
+
# Recursively process children
|
279
|
+
children = span.get("data", {}).get("children", [])
|
280
|
+
for child in children:
|
281
|
+
accumulate_metrics(child)
|
282
|
+
|
283
|
+
# Extract and attach spans
|
258
284
|
try:
|
259
|
-
|
285
|
+
spans = get_spans(input_trace, custom_model_cost)
|
286
|
+
final_trace["data"][0]["spans"] = spans
|
287
|
+
|
288
|
+
# Accumulate from root spans and their children
|
289
|
+
for span in spans:
|
290
|
+
accumulate_metrics(span)
|
260
291
|
except Exception as e:
|
261
292
|
raise Exception(f"Error in get_spans function: {e}")
|
262
|
-
final_trace["network_calls"] =[]
|
263
|
-
final_trace["interactions"] = []
|
264
|
-
|
265
|
-
for itr in final_trace["data"][0]["spans"]:
|
266
|
-
if itr["type"]=="llm":
|
267
|
-
if "tokens" in itr["info"]:
|
268
|
-
if "prompt_tokens" in itr["info"]["tokens"]:
|
269
|
-
final_trace["metadata"]["tokens"]["prompt_tokens"] += itr["info"]["tokens"].get('prompt_tokens', 0.0)
|
270
|
-
final_trace["metadata"]["cost"]["input_cost"] += itr["info"]["cost"].get('input_cost', 0.0)
|
271
|
-
if "completion_tokens" in itr["info"]["tokens"]:
|
272
|
-
final_trace["metadata"]["tokens"]["completion_tokens"] += itr["info"]["tokens"].get('completion_tokens', 0.0)
|
273
|
-
final_trace["metadata"]["cost"]["output_cost"] += itr["info"]["cost"].get('output_cost', 0.0)
|
274
|
-
if "tokens" in itr["info"]:
|
275
|
-
if "total_tokens" in itr["info"]["tokens"]:
|
276
|
-
final_trace["metadata"]["tokens"]["total_tokens"] += itr["info"]["tokens"].get('total_tokens', 0.0)
|
277
|
-
final_trace["metadata"]["cost"]["total_cost"] += itr["info"]["cost"].get('total_cost', 0.0)
|
278
293
|
|
279
|
-
#
|
280
|
-
final_trace["metadata"]["total_cost"] = final_trace["metadata"]["cost"]["total_cost"]
|
294
|
+
# Total metadata summary
|
295
|
+
final_trace["metadata"]["total_cost"] = final_trace["metadata"]["cost"]["total_cost"]
|
281
296
|
final_trace["metadata"]["total_tokens"] = final_trace["metadata"]["tokens"]["total_tokens"]
|
282
297
|
|
283
298
|
return final_trace
|
@@ -1,9 +1,9 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: ragaai_catalyst
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.6.1b0
|
4
4
|
Summary: RAGA AI CATALYST
|
5
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
|
-
Requires-Python: <3.13,>=3.
|
6
|
+
Requires-Python: <3.13,>=3.10
|
7
7
|
Description-Content-Type: text/markdown
|
8
8
|
License-File: LICENSE
|
9
9
|
Requires-Dist: aiohttp>=3.10.2
|
@@ -39,7 +39,7 @@ Requires-Dist: openinference-instrumentation-openai
|
|
39
39
|
Requires-Dist: openinference-instrumentation-bedrock
|
40
40
|
Requires-Dist: openinference-instrumentation-crewai
|
41
41
|
Requires-Dist: openinference-instrumentation-haystack
|
42
|
-
Requires-Dist: openinference-instrumentation-
|
42
|
+
Requires-Dist: openinference-instrumentation-openai-agents
|
43
43
|
Requires-Dist: openinference-instrumentation-smolagents
|
44
44
|
Requires-Dist: opentelemetry-sdk
|
45
45
|
Requires-Dist: opentelemetry-exporter-otlp
|
@@ -51,6 +51,7 @@ Requires-Dist: black; extra == "dev"
|
|
51
51
|
Requires-Dist: isort; extra == "dev"
|
52
52
|
Requires-Dist: mypy; extra == "dev"
|
53
53
|
Requires-Dist: flake8; extra == "dev"
|
54
|
+
Dynamic: license-file
|
54
55
|
|
55
56
|
# RagaAI Catalyst   
|
56
57
|
|
@@ -22,10 +22,6 @@ docs/img/last_main.png
|
|
22
22
|
docs/img/main.png
|
23
23
|
docs/img/projects_new.png
|
24
24
|
docs/img/trace_comp.png
|
25
|
-
examples/autogen/crisis_response_coordinator/OAI_CONFIG_LIST.json
|
26
|
-
examples/autogen/crisis_response_coordinator/crisis_response_coordinator.py
|
27
|
-
examples/autogen/crisis_response_coordinator/requirements.txt
|
28
|
-
examples/autogen/crisis_response_coordinator/sample.env
|
29
25
|
examples/crewai/scifi_writer/README.md
|
30
26
|
examples/crewai/scifi_writer/requirements.txt
|
31
27
|
examples/crewai/scifi_writer/sample.env
|
@@ -54,6 +50,10 @@ examples/llamaindex_examples/legal_research_rag/sample.env
|
|
54
50
|
examples/llamaindex_examples/legal_research_rag/legal_data/statutes.csv
|
55
51
|
examples/llamaindex_examples/legal_research_rag/legal_data/cases/ca_overtime_2021.pdf
|
56
52
|
examples/llamaindex_examples/legal_research_rag/legal_data/cases/fl_ada_2022.pdf
|
53
|
+
examples/openai_agents_sdk/README.md
|
54
|
+
examples/openai_agents_sdk/data_extraction_email.py
|
55
|
+
examples/openai_agents_sdk/requirements.txt
|
56
|
+
examples/openai_agents_sdk/sample.env
|
57
57
|
examples/smolagents/most_upvoted_paper/README.md
|
58
58
|
examples/smolagents/most_upvoted_paper/most_upvoted_paper.py
|
59
59
|
examples/smolagents/most_upvoted_paper/requirements.txt
|
@@ -148,9 +148,6 @@ ragaai_catalyst/tracers/exporters/file_span_exporter.py
|
|
148
148
|
ragaai_catalyst/tracers/exporters/raga_exporter.py
|
149
149
|
ragaai_catalyst/tracers/exporters/ragaai_trace_exporter.py
|
150
150
|
ragaai_catalyst/tracers/instrumentators/__init__.py
|
151
|
-
ragaai_catalyst/tracers/instrumentators/langchain.py
|
152
|
-
ragaai_catalyst/tracers/instrumentators/llamaindex.py
|
153
|
-
ragaai_catalyst/tracers/instrumentators/openai.py
|
154
151
|
ragaai_catalyst/tracers/utils/__init__.py
|
155
152
|
ragaai_catalyst/tracers/utils/convert_langchain_callbacks_output.py
|
156
153
|
ragaai_catalyst/tracers/utils/convert_llama_instru_callback.py
|
@@ -31,7 +31,7 @@ openinference-instrumentation-openai
|
|
31
31
|
openinference-instrumentation-bedrock
|
32
32
|
openinference-instrumentation-crewai
|
33
33
|
openinference-instrumentation-haystack
|
34
|
-
openinference-instrumentation-
|
34
|
+
openinference-instrumentation-openai-agents
|
35
35
|
openinference-instrumentation-smolagents
|
36
36
|
opentelemetry-sdk
|
37
37
|
opentelemetry-exporter-otlp
|
@@ -1,5 +1,5 @@
|
|
1
1
|
aiohappyeyeballs==2.4.4
|
2
|
-
aiohttp==3.10.
|
2
|
+
aiohttp==3.10.11
|
3
3
|
aiosignal==1.3.2
|
4
4
|
annotated-types==0.7.0
|
5
5
|
anyio==4.7.0
|
@@ -34,7 +34,7 @@ huggingface-hub==0.27.0
|
|
34
34
|
idna==3.10
|
35
35
|
importlib_metadata==7.1.0
|
36
36
|
ipynbname
|
37
|
-
Jinja2==3.1.
|
37
|
+
Jinja2==3.1.6
|
38
38
|
jsonpatch==1.33
|
39
39
|
jsonpointer==3.0.0
|
40
40
|
jsonschema==4.23.0
|