langtrace-python-sdk 3.7.0__tar.gz → 3.8.1__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 (307) hide show
  1. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/PKG-INFO +1 -1
  2. langtrace_python_sdk-3.8.1/src/examples/cleanlab_example/simple.py +18 -0
  3. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/common.py +3 -1
  4. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/__init__.py +6 -5
  5. langtrace_python_sdk-3.8.1/src/langtrace_python_sdk/instrumentation/agno/__init__.py +5 -0
  6. langtrace_python_sdk-3.8.1/src/langtrace_python_sdk/instrumentation/agno/instrumentation.py +80 -0
  7. langtrace_python_sdk-3.8.1/src/langtrace_python_sdk/instrumentation/agno/patch.py +261 -0
  8. langtrace_python_sdk-3.8.1/src/langtrace_python_sdk/instrumentation/cleanlab/__init__.py +5 -0
  9. langtrace_python_sdk-3.8.1/src/langtrace_python_sdk/instrumentation/cleanlab/instrumentation.py +62 -0
  10. langtrace_python_sdk-3.8.1/src/langtrace_python_sdk/instrumentation/cleanlab/patch.py +75 -0
  11. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/graphlit/patch.py +4 -5
  12. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/langtrace.py +15 -56
  13. langtrace_python_sdk-3.8.1/src/langtrace_python_sdk/version.py +1 -0
  14. langtrace_python_sdk-3.7.0/src/langtrace_python_sdk/version.py +0 -1
  15. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/.gitignore +0 -0
  16. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/LICENSE +0 -0
  17. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/README.md +0 -0
  18. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/pyproject.toml +0 -0
  19. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/__init__.py +0 -0
  20. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/__init__.py +0 -0
  21. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/anthropic_example/__init__.py +0 -0
  22. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/anthropic_example/completion.py +0 -0
  23. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/autogen_example/__init__.py +0 -0
  24. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/autogen_example/main.py +0 -0
  25. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/awsbedrock_examples/__init__.py +0 -0
  26. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/awsbedrock_examples/converse.py +0 -0
  27. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/azureopenai_example/__init__.py +0 -0
  28. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/azureopenai_example/completion.py +0 -0
  29. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cerebras_example/__init__.py +0 -0
  30. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cerebras_example/main.py +0 -0
  31. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/chroma_example/__init__.py +0 -0
  32. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/chroma_example/basic.py +0 -0
  33. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cohere_example/__init__.py +0 -0
  34. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cohere_example/chat.py +0 -0
  35. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cohere_example/chat_stream.py +0 -0
  36. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cohere_example/chat_streamv2.py +0 -0
  37. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cohere_example/chatv2.py +0 -0
  38. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cohere_example/embed.py +0 -0
  39. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cohere_example/rerank.py +0 -0
  40. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cohere_example/rerankv2.py +0 -0
  41. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/cohere_example/tools.py +0 -0
  42. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/__init__.py +0 -0
  43. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/basic.py +0 -0
  44. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/instagram_post/__init__.py +0 -0
  45. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/instagram_post/agents.py +0 -0
  46. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/instagram_post/main.py +0 -0
  47. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/instagram_post/tasks.py +0 -0
  48. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/instagram_post/tools/__init__.py +0 -0
  49. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/instagram_post/tools/browser_tools.py +0 -0
  50. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/simple_agent/__init__.py +0 -0
  51. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/simple_agent/agents.py +0 -0
  52. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/simple_agent/main.py +0 -0
  53. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/simple_agent/tasks.py +0 -0
  54. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/trip_planner/__init__.py +0 -0
  55. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/trip_planner/agents.py +0 -0
  56. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/trip_planner/main.py +0 -0
  57. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/trip_planner/tasks.py +0 -0
  58. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/trip_planner/tools/calculator.py +0 -0
  59. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/crewai_example/trip_planner/tools/search_tools.py +0 -0
  60. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/QA_basic.py +0 -0
  61. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/QA_basic_with_chain_of_thought.py +0 -0
  62. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/QA_basic_with_signature.py +0 -0
  63. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/QA_multi_step_with_chain_of_thought.py +0 -0
  64. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/math_problems_cot.py +0 -0
  65. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/math_problems_cot_parallel.py +0 -0
  66. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/optimizers/bootstrap_fewshot.py +0 -0
  67. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/program_of_thought_basic.py +0 -0
  68. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/quiz_gen.py +0 -0
  69. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/dspy_example/react.py +0 -0
  70. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/embedchain_example/simple.py +0 -0
  71. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/fastapi_example/__init__.py +0 -0
  72. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/fastapi_example/basic_route.py +0 -0
  73. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/gemini_example/__init__.py +0 -0
  74. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/gemini_example/function_tools.py +0 -0
  75. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/gemini_example/main.py +0 -0
  76. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/google_genai_example/__init__.py +0 -0
  77. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/google_genai_example/main.py +0 -0
  78. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/graphlit_example/__init__.py +0 -0
  79. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/graphlit_example/conversation.py +0 -0
  80. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/hiveagent_example/basic.py +0 -0
  81. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/inspect_ai_example/basic_eval.py +0 -0
  82. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/langchain_example/__init__.py +0 -0
  83. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/langchain_example/basic.py +0 -0
  84. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/langchain_example/groq_example.py +0 -0
  85. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/langchain_example/langchain_google_example.py +0 -0
  86. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/langchain_example/langgraph_example.py +0 -0
  87. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/langchain_example/langgraph_example_tools.py +0 -0
  88. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/langchain_example/sagemaker.py +0 -0
  89. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/langchain_example/tool.py +0 -0
  90. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/langgraph_example/main.py +0 -0
  91. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/litellm_example/basic.py +0 -0
  92. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/litellm_example/config.yaml +0 -0
  93. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/litellm_example/proxy_basic.py +0 -0
  94. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/llamaindex_example/__init__.py +0 -0
  95. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/llamaindex_example/agent.py +0 -0
  96. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/llamaindex_example/basic.py +0 -0
  97. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/llamaindex_example/data/abramov.txt +0 -0
  98. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/milvus_example/main.py +0 -0
  99. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/mistral_example/__init__.py +0 -0
  100. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/mistral_example/complete.py +0 -0
  101. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/mistral_example/complete_async.py +0 -0
  102. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/mistral_example/embeddings.py +0 -0
  103. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/mongo_vector_search_example/main.py +0 -0
  104. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/ollama_example/__init__.py +0 -0
  105. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/ollama_example/basic.py +0 -0
  106. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/__init__.py +0 -0
  107. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/async_tool_calling_nonstreaming.py +0 -0
  108. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/async_tool_calling_streaming.py +0 -0
  109. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/chat_completion.py +0 -0
  110. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/chat_completion_tool_choice.py +0 -0
  111. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/embeddings_create.py +0 -0
  112. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/function_calling.py +0 -0
  113. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/images_edit.py +0 -0
  114. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/images_generate.py +0 -0
  115. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/resources/lounge_flamingo.png +0 -0
  116. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/resources/mask.png +0 -0
  117. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/send_user_feedback.py +0 -0
  118. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/tool_calling.py +0 -0
  119. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/tool_calling_nonstreaming.py +0 -0
  120. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/openai_example/tool_calling_streaming.py +0 -0
  121. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/otlp_example/otlp_basic.py +0 -0
  122. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/otlp_example/otlp_with_langtrace.py +0 -0
  123. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/perplexity_example/basic.py +0 -0
  124. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/phidata_example/__init__.py +0 -0
  125. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/phidata_example/agent.py +0 -0
  126. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/pinecone_example/__init__.py +0 -0
  127. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/pinecone_example/basic.py +0 -0
  128. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/qdrant_example/__init__.py +0 -0
  129. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/qdrant_example/basic.py +0 -0
  130. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/routellm_example/basic.py +0 -0
  131. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/vertexai_example/__init__.py +0 -0
  132. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/vertexai_example/main.py +0 -0
  133. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/weaviate_example/__init__.py +0 -0
  134. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/examples/weaviate_example/query_text.py +0 -0
  135. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/__init__.py +0 -0
  136. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/__init__.py +0 -0
  137. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/exporter/langtrace_exporter.py +0 -0
  138. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/__init__.py +0 -0
  139. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/anthropic.py +0 -0
  140. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/aws_bedrock.py +0 -0
  141. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/chroma.py +0 -0
  142. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/cohere.py +0 -0
  143. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/embedchain.py +0 -0
  144. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/gemini.py +0 -0
  145. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/groq.py +0 -0
  146. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/litellm.py +0 -0
  147. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/milvus.py +0 -0
  148. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/mistral.py +0 -0
  149. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/ollama.py +0 -0
  150. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/openai.py +0 -0
  151. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/pinecone.py +0 -0
  152. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/pymongo.py +0 -0
  153. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/qdrant.py +0 -0
  154. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/vertexai.py +0 -0
  155. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/constants/instrumentation/weaviate.py +0 -0
  156. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/extensions/__init__.py +0 -0
  157. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/extensions/langtrace_exporter.py +0 -0
  158. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/extensions/langtrace_filesystem.py +0 -0
  159. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/anthropic/__init__.py +0 -0
  160. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/anthropic/instrumentation.py +0 -0
  161. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/anthropic/patch.py +0 -0
  162. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/anthropic/types.py +0 -0
  163. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/autogen/__init__.py +0 -0
  164. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/autogen/instrumentation.py +0 -0
  165. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/autogen/patch.py +0 -0
  166. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/aws_bedrock/__init__.py +0 -0
  167. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/aws_bedrock/bedrock_streaming_wrapper.py +0 -0
  168. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/aws_bedrock/instrumentation.py +0 -0
  169. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py +0 -0
  170. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/aws_bedrock/stream_body_wrapper.py +0 -0
  171. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/cerebras/__init__.py +0 -0
  172. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/cerebras/instrumentation.py +0 -0
  173. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/cerebras/patch.py +0 -0
  174. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/chroma/__init__.py +0 -0
  175. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/chroma/instrumentation.py +0 -0
  176. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/chroma/patch.py +0 -0
  177. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/cohere/__init__.py +0 -0
  178. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/cohere/instrumentation.py +0 -0
  179. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/cohere/patch.py +0 -0
  180. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/crewai/__init__.py +0 -0
  181. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/crewai/instrumentation.py +0 -0
  182. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/crewai/patch.py +0 -0
  183. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/crewai_tools/__init__.py +0 -0
  184. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/crewai_tools/instrumentation.py +0 -0
  185. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/crewai_tools/patch.py +0 -0
  186. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/dspy/__init__.py +0 -0
  187. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/dspy/instrumentation.py +0 -0
  188. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/dspy/patch.py +0 -0
  189. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/embedchain/__init__.py +0 -0
  190. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/embedchain/instrumentation.py +0 -0
  191. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/embedchain/patch.py +0 -0
  192. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/gemini/__init__.py +0 -0
  193. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/gemini/instrumentation.py +0 -0
  194. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/gemini/patch.py +0 -0
  195. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/google_genai/__init__.py +0 -0
  196. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/google_genai/instrumentation.py +0 -0
  197. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/google_genai/patch.py +0 -0
  198. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/graphlit/__init__.py +0 -0
  199. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/graphlit/instrumentation.py +0 -0
  200. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/groq/__init__.py +0 -0
  201. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/groq/instrumentation.py +0 -0
  202. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/groq/patch.py +0 -0
  203. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langchain/__init__.py +0 -0
  204. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langchain/instrumentation.py +0 -0
  205. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langchain/patch.py +0 -0
  206. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langchain_community/__init__.py +0 -0
  207. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py +0 -0
  208. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langchain_community/patch.py +0 -0
  209. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langchain_core/__init__.py +0 -0
  210. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py +0 -0
  211. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langchain_core/patch.py +0 -0
  212. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langgraph/__init__.py +0 -0
  213. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langgraph/instrumentation.py +0 -0
  214. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/langgraph/patch.py +0 -0
  215. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/litellm/__init__.py +0 -0
  216. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/litellm/instrumentation.py +0 -0
  217. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/litellm/patch.py +0 -0
  218. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/litellm/types.py +0 -0
  219. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/llamaindex/__init__.py +0 -0
  220. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py +0 -0
  221. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/llamaindex/patch.py +0 -0
  222. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/milvus/__init__.py +0 -0
  223. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/milvus/instrumentation.py +0 -0
  224. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/milvus/patch.py +0 -0
  225. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/mistral/__init__.py +0 -0
  226. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/mistral/instrumentation.py +0 -0
  227. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/mistral/patch.py +0 -0
  228. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/ollama/__init__.py +0 -0
  229. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/ollama/instrumentation.py +0 -0
  230. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/ollama/patch.py +0 -0
  231. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/openai/__init__.py +0 -0
  232. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/openai/instrumentation.py +0 -0
  233. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/openai/patch.py +0 -0
  234. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/openai/types.py +0 -0
  235. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/phidata/__init__.py +0 -0
  236. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/phidata/instrumentation.py +0 -0
  237. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/phidata/patch.py +0 -0
  238. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/pinecone/__init__.py +0 -0
  239. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py +0 -0
  240. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/pinecone/patch.py +0 -0
  241. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/pymongo/__init__.py +0 -0
  242. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/pymongo/instrumentation.py +0 -0
  243. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/pymongo/patch.py +0 -0
  244. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/qdrant/__init__.py +0 -0
  245. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/qdrant/instrumentation.py +0 -0
  246. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/qdrant/patch.py +0 -0
  247. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/vertexai/__init__.py +0 -0
  248. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/vertexai/instrumentation.py +0 -0
  249. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/vertexai/patch.py +0 -0
  250. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/weaviate/__init__.py +0 -0
  251. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/weaviate/instrumentation.py +0 -0
  252. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/instrumentation/weaviate/patch.py +0 -0
  253. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/types/__init__.py +0 -0
  254. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/utils/__init__.py +0 -0
  255. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/utils/langtrace_sampler.py +0 -0
  256. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/utils/llm.py +0 -0
  257. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/utils/misc.py +0 -0
  258. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/utils/prompt_registry.py +0 -0
  259. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/utils/sdk_version_checker.py +0 -0
  260. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/utils/silently_fail.py +0 -0
  261. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/utils/types.py +0 -0
  262. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/langtrace_python_sdk/utils/with_root_span.py +0 -0
  263. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/run_example.py +0 -0
  264. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/__init__.py +0 -0
  265. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/anthropic/cassettes/test_anthropic.yaml +0 -0
  266. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/anthropic/cassettes/test_anthropic_streaming.yaml +0 -0
  267. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/anthropic/cassettes/test_async_anthropic_streaming.yaml +0 -0
  268. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/anthropic/conftest.py +0 -0
  269. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/anthropic/test_anthropic.py +0 -0
  270. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/chroma/conftest.py +0 -0
  271. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/chroma/test_chroma.py +0 -0
  272. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/cohere/cassettes/test_cohere_chat.yaml +0 -0
  273. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/cohere/cassettes/test_cohere_chat_streaming.yaml +0 -0
  274. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/cohere/cassettes/test_cohere_embed.yaml +0 -0
  275. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/cohere/cassettes/test_cohere_rerank.yaml +0 -0
  276. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/cohere/conftest.py +0 -0
  277. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/cohere/test_cohere_chat.py +0 -0
  278. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/cohere/test_cohere_embed.py +0 -0
  279. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/cohere/test_cohere_rerank.py +0 -0
  280. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/conftest.py +0 -0
  281. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/groq/cassettes/test_async_chat_completion.yaml +0 -0
  282. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/groq/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  283. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/groq/cassettes/test_chat_completion.yaml +0 -0
  284. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/groq/cassettes/test_chat_completion_streaming.yaml +0 -0
  285. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/groq/conftest.py +0 -0
  286. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/groq/test_groq.py +0 -0
  287. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/langchain/cassettes/test_langchain.yaml +0 -0
  288. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/langchain/conftest.py +0 -0
  289. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/langchain/test_langchain.py +0 -0
  290. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  291. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/cassettes/test_async_image_generation.yaml +0 -0
  292. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/cassettes/test_chat_completion.yaml +0 -0
  293. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/cassettes/test_chat_completion_streaming.yaml +0 -0
  294. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/cassettes/test_embeddings_base_url.yaml +0 -0
  295. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/cassettes/test_image_generation.yaml +0 -0
  296. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/conftest.py +0 -0
  297. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/test_chat_completion.py +0 -0
  298. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/test_embeddings.py +0 -0
  299. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/openai/test_image_generation.py +0 -0
  300. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/pinecone/cassettes/test_query.yaml +0 -0
  301. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/pinecone/cassettes/test_upsert.yaml +0 -0
  302. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/pinecone/conftest.py +0 -0
  303. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/pinecone/test_pinecone.py +0 -0
  304. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/qdrant/conftest.py +0 -0
  305. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/qdrant/test_qdrant.py +0 -0
  306. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/test_session_id.py +0 -0
  307. {langtrace_python_sdk-3.7.0 → langtrace_python_sdk-3.8.1}/src/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langtrace-python-sdk
3
- Version: 3.7.0
3
+ Version: 3.8.1
4
4
  Summary: Python SDK for LangTrace
5
5
  Project-URL: Homepage, https://github.com/Scale3-Labs/langtrace-python-sdk
6
6
  Author-email: Scale3 Labs <engineering@scale3labs.com>
@@ -0,0 +1,18 @@
1
+ import os
2
+
3
+ from cleanlab_tlm import TLM
4
+ from dotenv import find_dotenv, load_dotenv
5
+
6
+ from langtrace_python_sdk import langtrace
7
+
8
+ _ = load_dotenv(find_dotenv())
9
+
10
+ langtrace.init()
11
+
12
+ api_key = os.getenv("CLEANLAB_API_KEY")
13
+ tlm = TLM(api_key=api_key, options={"log": ["explanation"], "model": "gpt-4o-mini"}) # GPT, Claude, etc
14
+ out = tlm.prompt("What's the third month of the year alphabetically?")
15
+ trustworthiness_score = tlm.get_trustworthiness_score("What's the first month of the year?", response="January")
16
+
17
+ print(out)
18
+ print(trustworthiness_score)
@@ -13,6 +13,8 @@ SERVICE_PROVIDERS = {
13
13
  "ARCH": "Arch",
14
14
  "AZURE": "Azure",
15
15
  "CHROMA": "Chroma",
16
+ "CLEANLAB": "CleanLab",
17
+ "COHERE": "Cohere",
16
18
  "CREWAI": "CrewAI",
17
19
  "DEEPSEEK": "DeepSeek",
18
20
  "DSPY": "DSPy",
@@ -25,7 +27,6 @@ SERVICE_PROVIDERS = {
25
27
  "LLAMAINDEX": "LlamaIndex",
26
28
  "OPENAI": "OpenAI",
27
29
  "PINECONE": "Pinecone",
28
- "COHERE": "Cohere",
29
30
  "PPLX": "Perplexity",
30
31
  "QDRANT": "Qdrant",
31
32
  "WEAVIATE": "Weaviate",
@@ -42,6 +43,7 @@ SERVICE_PROVIDERS = {
42
43
  "MILVUS": "Milvus",
43
44
  "GRAPHLIT": "Graphlit",
44
45
  "PHIDATA": "Phidata",
46
+ "AGNO": "Agno",
45
47
  }
46
48
 
47
49
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY = "langtrace_additional_attributes"
@@ -1,8 +1,10 @@
1
+ from .agno import AgnoInstrumentation
1
2
  from .anthropic import AnthropicInstrumentation
2
3
  from .autogen import AutogenInstrumentation
3
4
  from .aws_bedrock import AWSBedrockInstrumentation
4
5
  from .cerebras import CerebrasInstrumentation
5
6
  from .chroma import ChromaInstrumentation
7
+ from .cleanlab import CleanLabInstrumentation
6
8
  from .cohere import CohereInstrumentation
7
9
  from .crewai import CrewAIInstrumentation
8
10
  from .crewai_tools import CrewaiToolsInstrumentation
@@ -10,6 +12,7 @@ from .dspy import DspyInstrumentation
10
12
  from .embedchain import EmbedchainInstrumentation
11
13
  from .gemini import GeminiInstrumentation
12
14
  from .google_genai import GoogleGenaiInstrumentation
15
+ from .graphlit import GraphlitInstrumentation
13
16
  from .groq import GroqInstrumentation
14
17
  from .langchain import LangchainInstrumentation
15
18
  from .langchain_community import LangchainCommunityInstrumentation
@@ -21,16 +24,12 @@ from .milvus import MilvusInstrumentation
21
24
  from .mistral import MistralInstrumentation
22
25
  from .ollama import OllamaInstrumentor
23
26
  from .openai import OpenAIInstrumentation
27
+ from .phidata import PhiDataInstrumentation
24
28
  from .pinecone import PineconeInstrumentation
25
29
  from .pymongo import PyMongoInstrumentation
26
30
  from .qdrant import QdrantInstrumentation
27
31
  from .vertexai import VertexAIInstrumentation
28
32
  from .weaviate import WeaviateInstrumentation
29
- from .cerebras import CerebrasInstrumentation
30
- from .milvus import MilvusInstrumentation
31
- from .google_genai import GoogleGenaiInstrumentation
32
- from .graphlit import GraphlitInstrumentation
33
- from .phidata import PhiDataInstrumentation
34
33
 
35
34
  __all__ = [
36
35
  "AnthropicInstrumentation",
@@ -63,4 +62,6 @@ __all__ = [
63
62
  "CrewaiToolsInstrumentation",
64
63
  "GraphlitInstrumentation",
65
64
  "PhiDataInstrumentation",
65
+ "AgnoInstrumentation",
66
+ "CleanLabInstrumentation",
66
67
  ]
@@ -0,0 +1,5 @@
1
+ from .instrumentation import AgnoInstrumentation
2
+
3
+ __all__ = [
4
+ "AgnoInstrumentation",
5
+ ]
@@ -0,0 +1,80 @@
1
+ """
2
+ Copyright (c) 2024 Scale3 Labs
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ """
16
+
17
+ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
18
+ from opentelemetry.trace import get_tracer
19
+ from wrapt import wrap_function_wrapper as _W
20
+ from typing import Collection
21
+ from importlib_metadata import version as v
22
+ from .patch import patch_agent, patch_memory
23
+
24
+ class AgnoInstrumentation(BaseInstrumentor):
25
+ def instrumentation_dependencies(self) -> Collection[str]:
26
+ return ["agno >= 1.1.4"]
27
+
28
+ def _instrument(self, **kwargs):
29
+ tracer_provider = kwargs.get("tracer_provider")
30
+ tracer = get_tracer(__name__, "", tracer_provider)
31
+ version = v("agno")
32
+
33
+ try:
34
+ _W(
35
+ "agno.agent.agent",
36
+ "Agent.run",
37
+ patch_agent("Agent.run", version, tracer),
38
+ )
39
+ _W(
40
+ "agno.agent.agent",
41
+ "Agent.arun",
42
+ patch_agent("Agent.arun", version, tracer),
43
+ )
44
+ _W(
45
+ "agno.agent.agent",
46
+ "Agent._run",
47
+ patch_agent("Agent._run", version, tracer),
48
+ )
49
+ _W(
50
+ "agno.agent.agent",
51
+ "Agent._arun",
52
+ patch_agent("Agent._arun", version, tracer),
53
+ )
54
+
55
+ _W(
56
+ "agno.memory.agent",
57
+ "AgentMemory.update_memory",
58
+ patch_memory("AgentMemory.update_memory", version, tracer),
59
+ )
60
+ _W(
61
+ "agno.memory.agent",
62
+ "AgentMemory.aupdate_memory",
63
+ patch_memory("AgentMemory.aupdate_memory", version, tracer),
64
+ )
65
+ _W(
66
+ "agno.memory.agent",
67
+ "AgentMemory.update_summary",
68
+ patch_memory("AgentMemory.update_summary", version, tracer),
69
+ )
70
+ _W(
71
+ "agno.memory.agent",
72
+ "AgentMemory.aupdate_summary",
73
+ patch_memory("AgentMemory.aupdate_summary", version, tracer),
74
+ )
75
+
76
+ except Exception:
77
+ pass
78
+
79
+ def _uninstrument(self, **kwargs):
80
+ pass
@@ -0,0 +1,261 @@
1
+ import json
2
+ from importlib_metadata import version as v
3
+ from langtrace.trace_attributes import FrameworkSpanAttributes
4
+ from opentelemetry import baggage
5
+ from opentelemetry.trace import Span, SpanKind, Tracer
6
+ from opentelemetry.trace.status import Status, StatusCode
7
+ from typing import Dict, Any, Optional
8
+
9
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
10
+ from langtrace_python_sdk.constants.instrumentation.common import (
11
+ LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
12
+ SERVICE_PROVIDERS,
13
+ )
14
+ from langtrace_python_sdk.utils import set_span_attribute
15
+ from langtrace_python_sdk.utils.llm import get_span_name, set_span_attributes
16
+ from langtrace_python_sdk.utils.misc import serialize_args, serialize_kwargs
17
+
18
+ def _extract_metrics(metrics: Dict[str, Any]) -> Dict[str, Any]:
19
+ """Helper function to extract and format metrics"""
20
+ formatted_metrics = {}
21
+
22
+ # Extract basic metrics
23
+ for key in ['time', 'time_to_first_token', 'input_tokens', 'output_tokens',
24
+ 'prompt_tokens', 'completion_tokens', 'total_tokens']:
25
+ if key in metrics:
26
+ formatted_metrics[key] = metrics[key]
27
+
28
+ # Extract nested metric details if present
29
+ if 'prompt_tokens_details' in metrics:
30
+ formatted_metrics['prompt_tokens_details'] = metrics['prompt_tokens_details']
31
+ if 'completion_tokens_details' in metrics:
32
+ formatted_metrics['completion_tokens_details'] = metrics['completion_tokens_details']
33
+ if 'tool_call_times' in metrics:
34
+ formatted_metrics['tool_call_times'] = metrics['tool_call_times']
35
+
36
+ return formatted_metrics
37
+
38
+ def patch_memory(operation_name, version, tracer: Tracer):
39
+ def traced_method(wrapped, instance, args, kwargs):
40
+ service_provider = SERVICE_PROVIDERS["AGNO"]
41
+ extra_attributes = baggage.get_baggage(LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY)
42
+ span_attributes = {
43
+ "langtrace.sdk.name": "langtrace-python-sdk",
44
+ "langtrace.service.name": service_provider,
45
+ "langtrace.service.type": "framework",
46
+ "langtrace.service.version": version,
47
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
48
+ **(extra_attributes if extra_attributes is not None else {}),
49
+ }
50
+
51
+ span_attributes.update({
52
+ "agno.memory.type": type(instance).__name__,
53
+ "agno.memory.create_session_summary": str(instance.create_session_summary),
54
+ "agno.memory.create_user_memories": str(instance.create_user_memories),
55
+ "agno.memory.retrieval": str(instance.retrieval)
56
+ })
57
+
58
+ inputs = {}
59
+ if len(args) > 0:
60
+ inputs["args"] = serialize_args(*args)
61
+ if len(kwargs) > 0:
62
+ inputs["kwargs"] = serialize_kwargs(**kwargs)
63
+ span_attributes["agno.memory.inputs"] = json.dumps(inputs)
64
+
65
+ attributes = FrameworkSpanAttributes(**span_attributes)
66
+
67
+ with tracer.start_as_current_span(
68
+ get_span_name(operation_name), kind=SpanKind.CLIENT
69
+ ) as span:
70
+ try:
71
+ set_span_attributes(span, attributes)
72
+ result = wrapped(*args, **kwargs)
73
+
74
+ if result is not None:
75
+ set_span_attribute(span, "agno.memory.output", str(result))
76
+
77
+ if instance.summary is not None:
78
+ set_span_attribute(span, "agno.memory.summary", str(instance.summary))
79
+ if instance.memories is not None:
80
+ set_span_attribute(span, "agno.memory.memories_count", str(len(instance.memories)))
81
+
82
+ span.set_status(Status(StatusCode.OK))
83
+ return result
84
+
85
+ except Exception as err:
86
+ span.record_exception(err)
87
+ span.set_status(Status(StatusCode.ERROR, str(err)))
88
+ raise
89
+
90
+ return traced_method
91
+
92
+ def patch_agent(operation_name, version, tracer: Tracer):
93
+ def traced_method(wrapped, instance, args, kwargs):
94
+ service_provider = SERVICE_PROVIDERS["AGNO"]
95
+ extra_attributes = baggage.get_baggage(LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY)
96
+ span_attributes = {
97
+ "langtrace.sdk.name": "langtrace-python-sdk",
98
+ "langtrace.service.name": service_provider,
99
+ "langtrace.service.type": "framework",
100
+ "langtrace.service.version": version,
101
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
102
+ **(extra_attributes if extra_attributes is not None else {}),
103
+ }
104
+
105
+ attributes = FrameworkSpanAttributes(**span_attributes)
106
+
107
+ with tracer.start_as_current_span(
108
+ get_span_name(operation_name), kind=SpanKind.CLIENT
109
+ ) as span:
110
+ try:
111
+ set_span_attributes(span, attributes)
112
+ AgnoSpanAttributes(span=span, instance=instance)
113
+ result_generator = wrapped(*args, **kwargs)
114
+
115
+ accumulated_content = ""
116
+ current_tool_call = None
117
+ response_metadata = None
118
+ seen_tool_calls = set()
119
+
120
+ try:
121
+ for response in result_generator:
122
+ if not hasattr(response, 'to_dict'):
123
+ yield response
124
+ continue
125
+
126
+ if not response_metadata:
127
+ response_metadata = {
128
+ "run_id": response.run_id,
129
+ "agent_id": response.agent_id,
130
+ "session_id": response.session_id,
131
+ "model": response.model,
132
+ "content_type": response.content_type,
133
+ }
134
+ for key, value in response_metadata.items():
135
+ if value is not None:
136
+ set_span_attribute(span, f"agno.agent.{key}", str(value))
137
+
138
+ if response.content:
139
+ accumulated_content += response.content
140
+ set_span_attribute(span, "agno.agent.response", accumulated_content)
141
+
142
+ if response.messages:
143
+ for msg in response.messages:
144
+ if msg.tool_calls:
145
+ for tool_call in msg.tool_calls:
146
+ tool_id = tool_call.get('id')
147
+ if tool_id and tool_id not in seen_tool_calls:
148
+ seen_tool_calls.add(tool_id)
149
+ tool_info = {
150
+ 'id': tool_id,
151
+ 'name': tool_call.get('function', {}).get('name'),
152
+ 'arguments': tool_call.get('function', {}).get('arguments'),
153
+ 'start_time': msg.created_at,
154
+ }
155
+ current_tool_call = tool_info
156
+ set_span_attribute(span, f"agno.agent.tool_call.{tool_id}", json.dumps(tool_info))
157
+
158
+ if msg.metrics:
159
+ metrics = _extract_metrics(msg.metrics)
160
+ role_prefix = f"agno.agent.metrics.{msg.role}"
161
+ for key, value in metrics.items():
162
+ set_span_attribute(span, f"{role_prefix}.{key}", str(value))
163
+
164
+ if response.tools:
165
+ for tool in response.tools:
166
+ tool_id = tool.get('tool_call_id')
167
+ if tool_id and current_tool_call and current_tool_call['id'] == tool_id:
168
+ tool_result = {
169
+ **current_tool_call,
170
+ 'result': tool.get('content'),
171
+ 'error': tool.get('tool_call_error'),
172
+ 'end_time': tool.get('created_at'),
173
+ 'metrics': tool.get('metrics'),
174
+ }
175
+ set_span_attribute(span, f"agno.agent.tool_call.{tool_id}", json.dumps(tool_result))
176
+ current_tool_call = None
177
+
178
+ yield response
179
+
180
+ except Exception as err:
181
+ span.record_exception(err)
182
+ span.set_status(Status(StatusCode.ERROR, str(err)))
183
+ raise
184
+ finally:
185
+ span.set_status(Status(StatusCode.OK))
186
+ if len(seen_tool_calls) > 0:
187
+ span.set_attribute("agno.agent.total_tool_calls", len(seen_tool_calls))
188
+ except Exception as err:
189
+ span.record_exception(err)
190
+ span.set_status(Status(StatusCode.ERROR, str(err)))
191
+ raise
192
+
193
+ return traced_method
194
+
195
+ class AgnoSpanAttributes:
196
+ span: Span
197
+ agent_data: dict
198
+
199
+ def __init__(self, span: Span, instance) -> None:
200
+ self.span = span
201
+ self.instance = instance
202
+ self.agent_data = {
203
+ "memory": {},
204
+ "model": {},
205
+ "tools": [],
206
+ }
207
+
208
+ self.run()
209
+
210
+ def run(self):
211
+ instance_attrs = {
212
+ "agent_id": self.instance.agent_id,
213
+ "session_id": self.instance.session_id,
214
+ "name": self.instance.name,
215
+ "markdown": self.instance.markdown,
216
+ "reasoning": self.instance.reasoning,
217
+ "add_references": self.instance.add_references,
218
+ "show_tool_calls": self.instance.show_tool_calls,
219
+ "stream": self.instance.stream,
220
+ "stream_intermediate_steps": self.instance.stream_intermediate_steps,
221
+ }
222
+
223
+ for key, value in instance_attrs.items():
224
+ if value is not None:
225
+ set_span_attribute(self.span, f"agno.agent.{key}", str(value))
226
+
227
+ if self.instance.model:
228
+ model_attrs = {
229
+ "id": self.instance.model.id,
230
+ "name": self.instance.model.name,
231
+ "provider": self.instance.model.provider,
232
+ "structured_outputs": self.instance.model.structured_outputs,
233
+ "supports_structured_outputs": self.instance.model.supports_structured_outputs,
234
+ }
235
+ for key, value in model_attrs.items():
236
+ if value is not None:
237
+ set_span_attribute(self.span, f"agno.agent.model.{key}", str(value))
238
+
239
+ if hasattr(self.instance.model, 'metrics') and self.instance.model.metrics:
240
+ metrics = _extract_metrics(self.instance.model.metrics)
241
+ set_span_attribute(self.span, "agno.agent.model.metrics", json.dumps(metrics))
242
+
243
+ if self.instance.tools:
244
+ tool_list = []
245
+ for tool in self.instance.tools:
246
+ if hasattr(tool, "name"):
247
+ tool_list.append(tool.name)
248
+ elif hasattr(tool, "__name__"):
249
+ tool_list.append(tool.__name__)
250
+ set_span_attribute(self.span, "agno.agent.tools", str(tool_list))
251
+
252
+ if self.instance.memory:
253
+ memory_attrs = {
254
+ "create_session_summary": self.instance.memory.create_session_summary,
255
+ "create_user_memories": self.instance.memory.create_user_memories,
256
+ "update_session_summary_after_run": self.instance.memory.update_session_summary_after_run,
257
+ "update_user_memories_after_run": self.instance.memory.update_user_memories_after_run,
258
+ }
259
+ for key, value in memory_attrs.items():
260
+ if value is not None:
261
+ set_span_attribute(self.span, f"agno.agent.memory.{key}", str(value))
@@ -0,0 +1,5 @@
1
+ from .instrumentation import CleanLabInstrumentation
2
+
3
+ __all__ = [
4
+ "CleanLabInstrumentation",
5
+ ]
@@ -0,0 +1,62 @@
1
+ """
2
+ Copyright (c) 2025 Scale3 Labs
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+ Unless required by applicable law or agreed to in writing, software
8
+ distributed under the License is distributed on an "AS IS" BASIS,
9
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
+ See the License for the specific language governing permissions and
11
+ limitations under the License.
12
+ """
13
+
14
+ import importlib.metadata
15
+ import logging
16
+ from typing import Any, Collection, Optional
17
+
18
+ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
19
+ from opentelemetry.trace import TracerProvider, get_tracer
20
+ from wrapt import wrap_function_wrapper
21
+
22
+ from langtrace_python_sdk.instrumentation.cleanlab.patch import generic_patch
23
+
24
+ logging.basicConfig(level=logging.FATAL)
25
+
26
+
27
+ class CleanLabInstrumentation(BaseInstrumentor): # type: ignore
28
+
29
+ def instrumentation_dependencies(self) -> Collection[str]:
30
+ return ["cleanlab-tlm >= 1.0.7", "trace-attributes >= 4.0.5"]
31
+
32
+ def _instrument(self, **kwargs: Any) -> None:
33
+ tracer_provider: Optional[TracerProvider] = kwargs.get("tracer_provider")
34
+ tracer = get_tracer(__name__, "", tracer_provider)
35
+ version: str = importlib.metadata.version("cleanlab_tlm")
36
+
37
+ wrap_function_wrapper(
38
+ "cleanlab_tlm.tlm",
39
+ "TLM.prompt",
40
+ generic_patch(version, tracer),
41
+ )
42
+
43
+ wrap_function_wrapper(
44
+ "cleanlab_tlm.tlm",
45
+ "TLM.get_trustworthiness_score",
46
+ generic_patch(version, tracer),
47
+ )
48
+
49
+ wrap_function_wrapper(
50
+ "cleanlab_tlm.tlm",
51
+ "TLM.try_prompt",
52
+ generic_patch(version, tracer),
53
+ )
54
+
55
+ wrap_function_wrapper(
56
+ "cleanlab_tlm.tlm",
57
+ "TLM.try_get_trustworthiness_score",
58
+ generic_patch(version, tracer),
59
+ )
60
+
61
+ def _uninstrument(self, **kwargs: Any) -> None:
62
+ pass
@@ -0,0 +1,75 @@
1
+ import json
2
+ from typing import Any, Callable, List
3
+
4
+ from importlib_metadata import version as v
5
+ from langtrace.trace_attributes import FrameworkSpanAttributes
6
+ from opentelemetry import baggage
7
+ from opentelemetry.trace import SpanKind, Tracer
8
+ from opentelemetry.trace.status import Status, StatusCode
9
+
10
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
11
+ from langtrace_python_sdk.constants.instrumentation.common import (
12
+ LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY, SERVICE_PROVIDERS)
13
+ from langtrace_python_sdk.instrumentation.openai.types import \
14
+ ChatCompletionsCreateKwargs
15
+ from langtrace_python_sdk.utils.llm import set_span_attributes
16
+ from langtrace_python_sdk.utils.misc import serialize_args, serialize_kwargs
17
+
18
+
19
+ def generic_patch(version: str, tracer: Tracer) -> Callable:
20
+ """Wrap the `prompt` method of the `TLM` class to trace it."""
21
+
22
+ def traced_method(
23
+ wrapped: Callable,
24
+ instance: Any,
25
+ args: List[Any],
26
+ kwargs: ChatCompletionsCreateKwargs,
27
+ ) -> Any:
28
+ service_provider = SERVICE_PROVIDERS["CLEANLAB"]
29
+ extra_attributes = baggage.get_baggage(LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY)
30
+ span_attributes = {
31
+ "langtrace.sdk.name": "langtrace-python-sdk",
32
+ "langtrace.service.name": service_provider,
33
+ "langtrace.service.type": "framework",
34
+ "langtrace.service.version": version,
35
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
36
+ **(extra_attributes if extra_attributes is not None else {}),
37
+ }
38
+
39
+ span_attributes["tlm.metadata"] = serialize_kwargs(**kwargs)
40
+ span_attributes["tlm.inputs"] = serialize_args(*args)
41
+
42
+ attributes = FrameworkSpanAttributes(**span_attributes)
43
+
44
+ with tracer.start_as_current_span(
45
+ name=f"tlm.{wrapped.__name__}", kind=SpanKind.CLIENT
46
+ ) as span:
47
+ try:
48
+ set_span_attributes(span, attributes)
49
+ result = wrapped(*args, **kwargs)
50
+ if result:
51
+ # Handle result serialization based on its type
52
+ if hasattr(result, 'model_dump_json'):
53
+ # For Pydantic models
54
+ result_json = json.loads(result.model_dump_json())
55
+ elif isinstance(result, dict):
56
+ # For dictionary results
57
+ result_json = result
58
+ else:
59
+ # For other types, try to convert to dict or use string representation
60
+ try:
61
+ result_json = json.loads(json.dumps(result, default=str))
62
+ except Exception: # pylint: disable=W0702, W0718
63
+ result_json = str(result)
64
+
65
+ span.set_attribute("tlm.result", str(result_json))
66
+ span.set_status(Status(StatusCode.OK))
67
+
68
+ return result
69
+
70
+ except Exception as err:
71
+ span.record_exception(err)
72
+ span.set_status(Status(StatusCode.ERROR, str(err)))
73
+ raise
74
+
75
+ return traced_method
@@ -1,4 +1,5 @@
1
1
  import json
2
+
2
3
  from importlib_metadata import version as v
3
4
  from langtrace.trace_attributes import FrameworkSpanAttributes
4
5
  from opentelemetry import baggage
@@ -7,9 +8,7 @@ from opentelemetry.trace.status import Status, StatusCode
7
8
 
8
9
  from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
9
10
  from langtrace_python_sdk.constants.instrumentation.common import (
10
- LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
11
- SERVICE_PROVIDERS,
12
- )
11
+ LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY, SERVICE_PROVIDERS)
13
12
  from langtrace_python_sdk.utils.llm import set_span_attributes
14
13
  from langtrace_python_sdk.utils.misc import serialize_args, serialize_kwargs
15
14
 
@@ -27,8 +26,8 @@ def patch_graphlit_operation(operation_name, version, tracer: Tracer):
27
26
  **(extra_attributes if extra_attributes is not None else {}),
28
27
  }
29
28
 
30
- span_attributes["langchain.metadata"] = serialize_kwargs(**kwargs)
31
- span_attributes["langchain.inputs"] = serialize_args(*args)
29
+ span_attributes["graphlit.metadata"] = serialize_kwargs(**kwargs)
30
+ span_attributes["graphlit.inputs"] = serialize_args(*args)
32
31
 
33
32
  attributes = FrameworkSpanAttributes(**span_attributes)
34
33