langtrace-python-sdk 2.2.8__tar.gz → 2.2.9__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 (198) hide show
  1. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/PKG-INFO +6 -1
  2. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/README.md +5 -0
  3. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/anthropic/patch.py +2 -4
  4. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/cohere/patch.py +2 -4
  5. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/groq/patch.py +9 -9
  6. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/ollama/patch.py +4 -12
  7. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/utils/__init__.py +15 -6
  8. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/utils/llm.py +14 -18
  9. langtrace_python_sdk-2.2.9/src/langtrace_python_sdk/version.py +1 -0
  10. langtrace_python_sdk-2.2.8/src/langtrace_python_sdk/version.py +0 -1
  11. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/.gitignore +0 -0
  12. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/LICENSE +0 -0
  13. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/pyproject.toml +0 -0
  14. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/__init__.py +0 -0
  15. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/__init__.py +0 -0
  16. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/anthropic_example/__init__.py +0 -0
  17. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/anthropic_example/completion.py +0 -0
  18. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/chroma_example/__init__.py +0 -0
  19. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/chroma_example/basic.py +0 -0
  20. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/cohere_example/__init__.py +0 -0
  21. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/cohere_example/chat.py +0 -0
  22. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/cohere_example/chat_stream.py +0 -0
  23. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/cohere_example/embed.py +0 -0
  24. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/cohere_example/rerank.py +0 -0
  25. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/cohere_example/tools.py +0 -0
  26. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/crewai_example/basic.py +0 -0
  27. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/dspy_example/math_problems_cot.py +0 -0
  28. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/dspy_example/math_problems_cot_parallel.py +0 -0
  29. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/dspy_example/program_of_thought_basic.py +0 -0
  30. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/dspy_example/quiz_gen.py +0 -0
  31. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/dspy_example/react.py +0 -0
  32. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/fastapi_example/__init__.py +0 -0
  33. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/fastapi_example/basic_route.py +0 -0
  34. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/gemini_example/__init__.py +0 -0
  35. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/gemini_example/function_tools.py +0 -0
  36. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/gemini_example/main.py +0 -0
  37. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/hiveagent_example/basic.py +0 -0
  38. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/inspect_ai_example/basic_eval.py +0 -0
  39. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/langchain_example/__init__.py +0 -0
  40. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/langchain_example/basic.py +0 -0
  41. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/langchain_example/groq_example.py +0 -0
  42. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/langchain_example/langgraph_example.py +0 -0
  43. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/langchain_example/tool.py +0 -0
  44. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/llamaindex_example/__init__.py +0 -0
  45. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/llamaindex_example/agent.py +0 -0
  46. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/llamaindex_example/basic.py +0 -0
  47. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/llamaindex_example/data/abramov.txt +0 -0
  48. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/ollama_example/__init__.py +0 -0
  49. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/ollama_example/basic.py +0 -0
  50. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/__init__.py +0 -0
  51. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/async_tool_calling_nonstreaming.py +0 -0
  52. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/async_tool_calling_streaming.py +0 -0
  53. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/chat_completion.py +0 -0
  54. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/chat_completion_tool_choice.py +0 -0
  55. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/embeddings_create.py +0 -0
  56. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/function_calling.py +0 -0
  57. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/images_edit.py +0 -0
  58. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/images_generate.py +0 -0
  59. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/resources/lounge_flamingo.png +0 -0
  60. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/resources/mask.png +0 -0
  61. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/send_user_feedback.py +0 -0
  62. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/tool_calling.py +0 -0
  63. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/tool_calling_nonstreaming.py +0 -0
  64. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/openai_example/tool_calling_streaming.py +0 -0
  65. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/otlp_example/otlp_basic.py +0 -0
  66. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/otlp_example/otlp_with_langtrace.py +0 -0
  67. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/perplexity_example/basic.py +0 -0
  68. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/pinecone_example/__init__.py +0 -0
  69. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/pinecone_example/basic.py +0 -0
  70. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/qdrant_example/__init__.py +0 -0
  71. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/qdrant_example/basic.py +0 -0
  72. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/routellm_example/basic.py +0 -0
  73. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/vertexai_example/__init__.py +0 -0
  74. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/vertexai_example/main.py +0 -0
  75. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/weaviate_example/__init__.py +0 -0
  76. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/examples/weaviate_example/query_text.py +0 -0
  77. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/__init__.py +0 -0
  78. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/__init__.py +0 -0
  79. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/exporter/langtrace_exporter.py +0 -0
  80. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/__init__.py +0 -0
  81. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/anthropic.py +0 -0
  82. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/chroma.py +0 -0
  83. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/cohere.py +0 -0
  84. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/common.py +0 -0
  85. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/gemini.py +0 -0
  86. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/groq.py +0 -0
  87. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/ollama.py +0 -0
  88. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/openai.py +0 -0
  89. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/pinecone.py +0 -0
  90. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/qdrant.py +0 -0
  91. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/vertexai.py +0 -0
  92. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/constants/instrumentation/weaviate.py +0 -0
  93. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/extensions/__init__.py +0 -0
  94. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/extensions/langtrace_exporter.py +0 -0
  95. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/extensions/langtrace_filesystem.py +0 -0
  96. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/__init__.py +0 -0
  97. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/anthropic/__init__.py +0 -0
  98. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/anthropic/instrumentation.py +0 -0
  99. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/chroma/__init__.py +0 -0
  100. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/chroma/instrumentation.py +0 -0
  101. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/chroma/patch.py +0 -0
  102. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/cohere/__init__.py +0 -0
  103. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/cohere/instrumentation.py +0 -0
  104. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/crewai/__init__.py +0 -0
  105. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/crewai/instrumentation.py +0 -0
  106. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/crewai/patch.py +0 -0
  107. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/dspy/__init__.py +0 -0
  108. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/dspy/instrumentation.py +0 -0
  109. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/dspy/patch.py +0 -0
  110. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/gemini/__init__.py +0 -0
  111. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/gemini/instrumentation.py +0 -0
  112. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/gemini/patch.py +0 -0
  113. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/groq/__init__.py +0 -0
  114. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/groq/instrumentation.py +0 -0
  115. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langchain/__init__.py +0 -0
  116. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langchain/instrumentation.py +0 -0
  117. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langchain/patch.py +0 -0
  118. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langchain_community/__init__.py +0 -0
  119. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py +0 -0
  120. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langchain_community/patch.py +0 -0
  121. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langchain_core/__init__.py +0 -0
  122. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py +0 -0
  123. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langchain_core/patch.py +0 -0
  124. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langgraph/__init__.py +0 -0
  125. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langgraph/instrumentation.py +0 -0
  126. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/langgraph/patch.py +0 -0
  127. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/llamaindex/__init__.py +0 -0
  128. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py +0 -0
  129. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/llamaindex/patch.py +0 -0
  130. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/ollama/__init__.py +0 -0
  131. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/ollama/instrumentation.py +0 -0
  132. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/openai/__init__.py +0 -0
  133. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/openai/instrumentation.py +0 -0
  134. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/openai/patch.py +0 -0
  135. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/pinecone/__init__.py +0 -0
  136. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py +0 -0
  137. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/pinecone/patch.py +0 -0
  138. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/qdrant/__init__.py +0 -0
  139. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/qdrant/instrumentation.py +0 -0
  140. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/qdrant/patch.py +0 -0
  141. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/vertexai/__init__.py +0 -0
  142. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/vertexai/instrumentation.py +0 -0
  143. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/vertexai/patch.py +0 -0
  144. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/weaviate/__init__.py +0 -0
  145. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/weaviate/instrumentation.py +0 -0
  146. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/instrumentation/weaviate/patch.py +0 -0
  147. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/langtrace.py +0 -0
  148. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/types/__init__.py +0 -0
  149. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/utils/langtrace_sampler.py +0 -0
  150. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/utils/misc.py +0 -0
  151. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/utils/prompt_registry.py +0 -0
  152. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/utils/sdk_version_checker.py +0 -0
  153. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/utils/silently_fail.py +0 -0
  154. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/utils/types.py +0 -0
  155. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/langtrace_python_sdk/utils/with_root_span.py +0 -0
  156. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/run_example.py +0 -0
  157. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/__init__.py +0 -0
  158. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/anthropic/cassettes/test_anthropic.yaml +0 -0
  159. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/anthropic/cassettes/test_anthropic_streaming.yaml +0 -0
  160. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/anthropic/cassettes/test_async_anthropic_streaming.yaml +0 -0
  161. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/anthropic/conftest.py +0 -0
  162. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/anthropic/test_anthropic.py +0 -0
  163. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/chroma/conftest.py +0 -0
  164. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/chroma/test_chroma.py +0 -0
  165. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/cohere/cassettes/test_cohere_chat.yaml +0 -0
  166. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/cohere/cassettes/test_cohere_chat_streaming.yaml +0 -0
  167. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/cohere/cassettes/test_cohere_embed.yaml +0 -0
  168. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/cohere/cassettes/test_cohere_rerank.yaml +0 -0
  169. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/cohere/conftest.py +0 -0
  170. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/cohere/test_cohere_chat.py +0 -0
  171. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/cohere/test_cohere_embed.py +0 -0
  172. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/cohere/test_cohere_rerank.py +0 -0
  173. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/conftest.py +0 -0
  174. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/groq/cassettes/test_async_chat_completion.yaml +0 -0
  175. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/groq/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  176. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/groq/cassettes/test_chat_completion.yaml +0 -0
  177. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/groq/cassettes/test_chat_completion_streaming.yaml +0 -0
  178. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/groq/conftest.py +0 -0
  179. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/groq/test_groq.py +0 -0
  180. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/langchain/cassettes/test_langchain.yaml +0 -0
  181. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/langchain/conftest.py +0 -0
  182. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/langchain/test_langchain.py +0 -0
  183. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/openai/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  184. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/openai/cassettes/test_async_image_generation.yaml +0 -0
  185. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/openai/cassettes/test_chat_completion.yaml +0 -0
  186. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/openai/cassettes/test_chat_completion_streaming.yaml +0 -0
  187. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/openai/cassettes/test_image_generation.yaml +0 -0
  188. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/openai/conftest.py +0 -0
  189. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/openai/test_chat_completion.py +0 -0
  190. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/openai/test_embeddings.py +0 -0
  191. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/openai/test_image_generation.py +0 -0
  192. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/pinecone/cassettes/test_query.yaml +0 -0
  193. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/pinecone/cassettes/test_upsert.yaml +0 -0
  194. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/pinecone/conftest.py +0 -0
  195. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/pinecone/test_pinecone.py +0 -0
  196. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/qdrant/conftest.py +0 -0
  197. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/qdrant/test_qdrant.py +0 -0
  198. {langtrace_python_sdk-2.2.8 → langtrace_python_sdk-2.2.9}/src/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langtrace-python-sdk
3
- Version: 2.2.8
3
+ Version: 2.2.9
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>
@@ -273,6 +273,11 @@ from langtrace_python_sdk import get_prompt_from_registry
273
273
  prompt = get_prompt_from_registry(<Registry ID>, options={"prompt_version": 1, "variables": {"foo": "bar"} })
274
274
  ```
275
275
 
276
+ ### Opt out of tracing prompt and completion data
277
+ By default, prompt and completion data are captured. If you would like to opt out of it, set the following env var,
278
+
279
+ `TRACE_PROMPT_COMPLETION_DATA=false`
280
+
276
281
  ## Supported integrations
277
282
 
278
283
  Langtrace automatically captures traces from the following vendors:
@@ -228,6 +228,11 @@ from langtrace_python_sdk import get_prompt_from_registry
228
228
  prompt = get_prompt_from_registry(<Registry ID>, options={"prompt_version": 1, "variables": {"foo": "bar"} })
229
229
  ```
230
230
 
231
+ ### Opt out of tracing prompt and completion data
232
+ By default, prompt and completion data are captured. If you would like to opt out of it, set the following env var,
233
+
234
+ `TRACE_PROMPT_COMPLETION_DATA=false`
235
+
231
236
  ## Supported integrations
232
237
 
233
238
  Langtrace automatically captures traces from the following vendors:
@@ -25,6 +25,7 @@ from langtrace_python_sdk.utils.llm import (
25
25
  get_llm_url,
26
26
  is_streaming,
27
27
  set_event_completion,
28
+ set_event_completion_chunk,
28
29
  set_usage_attributes,
29
30
  )
30
31
  from opentelemetry.trace import SpanKind
@@ -119,10 +120,7 @@ def messages_create(original_method, version, tracer):
119
120
  # Assuming span.add_event is part of a larger logging or event system
120
121
  # Add event for each chunk of content
121
122
  if content:
122
- span.add_event(
123
- Event.STREAM_OUTPUT.value,
124
- {SpanAttributes.LLM_CONTENT_COMPLETION_CHUNK: "".join(content)},
125
- )
123
+ set_event_completion_chunk(span, "".join(content))
126
124
 
127
125
  # Assuming this is part of a generator, yield chunk or aggregated content
128
126
  yield content
@@ -22,6 +22,7 @@ from langtrace_python_sdk.utils.llm import (
22
22
  get_extra_attributes,
23
23
  get_llm_url,
24
24
  set_event_completion,
25
+ set_event_completion_chunk,
25
26
  set_usage_attributes,
26
27
  )
27
28
  from langtrace.trace_attributes import Event, LLMSpanAttributes
@@ -403,10 +404,7 @@ def chat_stream(original_method, version, tracer):
403
404
  content = event.text
404
405
  else:
405
406
  content = ""
406
- span.add_event(
407
- Event.STREAM_OUTPUT.value,
408
- {SpanAttributes.LLM_CONTENT_COMPLETION_CHUNK: "".join(content)},
409
- )
407
+ set_event_completion_chunk(span, "".join(content))
410
408
 
411
409
  if (
412
410
  hasattr(event, "finish_reason")
@@ -30,6 +30,7 @@ from langtrace_python_sdk.utils.llm import (
30
30
  get_llm_url,
31
31
  get_langtrace_attributes,
32
32
  set_event_completion,
33
+ set_event_completion_chunk,
33
34
  set_usage_attributes,
34
35
  )
35
36
  from langtrace_python_sdk.constants.instrumentation.common import (
@@ -242,15 +243,14 @@ def chat_completions_create(original_method, version, tracer):
242
243
  content = content + []
243
244
  else:
244
245
  content = []
245
- span.add_event(
246
- Event.STREAM_OUTPUT.value,
247
- {
248
- SpanAttributes.LLM_CONTENT_COMPLETION_CHUNK: (
249
- "".join(content)
250
- if len(content) > 0 and content[0] is not None
251
- else ""
252
- )
253
- },
246
+
247
+ set_event_completion_chunk(
248
+ span,
249
+ (
250
+ "".join(content)
251
+ if len(content) > 0 and content[0] is not None
252
+ else ""
253
+ ),
254
254
  )
255
255
  result_content.append(content[0] if len(content) > 0 else "")
256
256
  yield chunk
@@ -6,6 +6,7 @@ from langtrace_python_sdk.utils.llm import (
6
6
  get_llm_request_attributes,
7
7
  get_llm_url,
8
8
  set_event_completion,
9
+ set_event_completion_chunk,
9
10
  )
10
11
  from langtrace_python_sdk.utils.silently_fail import silently_fail
11
12
  from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
@@ -177,12 +178,8 @@ def _handle_streaming_response(span, response, api):
177
178
  if api == "generate":
178
179
  accumulated_tokens["response"] += chunk["response"]
179
180
 
180
- span.add_event(
181
- Event.STREAM_OUTPUT.value,
182
- {
183
- SpanAttributes.LLM_CONTENT_COMPLETION_CHUNK: chunk.get("response")
184
- or chunk.get("message").get("content"),
185
- },
181
+ set_event_completion_chunk(
182
+ span, chunk.get("response") or chunk.get("message").get("content")
186
183
  )
187
184
 
188
185
  _set_response_attributes(span, chunk | accumulated_tokens)
@@ -211,12 +208,7 @@ async def _ahandle_streaming_response(span, response, api):
211
208
  if api == "generate":
212
209
  accumulated_tokens["response"] += chunk["response"]
213
210
 
214
- span.add_event(
215
- Event.STREAM_OUTPUT.value,
216
- {
217
- SpanAttributes.LLM_CONTENT_COMPLETION_CHUNK: json.dumps(chunk),
218
- },
219
- )
211
+ set_event_completion_chunk(span, chunk)
220
212
  _set_response_attributes(span, chunk | accumulated_tokens)
221
213
  finally:
222
214
  # Finalize span after processing all chunks
@@ -2,23 +2,32 @@ from openai import NOT_GIVEN
2
2
  from .sdk_version_checker import SDKVersionChecker
3
3
  from opentelemetry.trace import Span
4
4
  from langtrace.trace_attributes import SpanAttributes
5
+ import os
5
6
 
6
7
 
7
8
  def set_span_attribute(span: Span, name, value):
8
9
  if value is not None:
9
10
  if value != "" or value != NOT_GIVEN:
10
11
  if name == SpanAttributes.LLM_PROMPTS:
11
- span.add_event(
12
- name=SpanAttributes.LLM_CONTENT_PROMPT,
13
- attributes={
14
- SpanAttributes.LLM_PROMPTS: value,
15
- },
16
- )
12
+ set_event_prompt(span, value)
17
13
  else:
18
14
  span.set_attribute(name, value)
19
15
  return
20
16
 
21
17
 
18
+ def set_event_prompt(span: Span, prompt):
19
+ enabled = os.environ.get("TRACE_PROMPT_COMPLETION_DATA", "true")
20
+ if enabled.lower() == "false":
21
+ return
22
+
23
+ span.add_event(
24
+ name=SpanAttributes.LLM_CONTENT_PROMPT,
25
+ attributes={
26
+ SpanAttributes.LLM_PROMPTS: prompt,
27
+ },
28
+ )
29
+
30
+
22
31
  def check_if_sdk_is_outdated():
23
32
  SDKVersionChecker().check()
24
33
  return
@@ -30,6 +30,7 @@ import json
30
30
  from opentelemetry import baggage
31
31
  from opentelemetry.trace import Span
32
32
  from opentelemetry.trace.status import StatusCode
33
+ import os
33
34
 
34
35
 
35
36
  def estimate_tokens(prompt):
@@ -42,6 +43,9 @@ def estimate_tokens(prompt):
42
43
 
43
44
 
44
45
  def set_event_completion_chunk(span: Span, chunk):
46
+ enabled = os.environ.get("TRACE_PROMPT_COMPLETION_DATA", "true")
47
+ if enabled.lower() == "false":
48
+ return
45
49
  span.add_event(
46
50
  name=SpanAttributes.LLM_CONTENT_COMPLETION_CHUNK,
47
51
  attributes={
@@ -203,6 +207,9 @@ def get_tool_calls(item):
203
207
 
204
208
 
205
209
  def set_event_completion(span: Span, result_content):
210
+ enabled = os.environ.get("TRACE_PROMPT_COMPLETION_DATA", "true")
211
+ if enabled.lower() == "false":
212
+ return
206
213
 
207
214
  span.add_event(
208
215
  name=SpanAttributes.LLM_CONTENT_COMPLETION,
@@ -352,15 +359,9 @@ class StreamWrapper:
352
359
  )
353
360
  self.completion_tokens += token_counts
354
361
  content.append(tool_call.function.arguments)
355
- self.span.add_event(
356
- Event.STREAM_OUTPUT.value,
357
- {
358
- SpanAttributes.LLM_CONTENT_COMPLETION_CHUNK: (
359
- "".join(content)
360
- if len(content) > 0 and content[0] is not None
361
- else ""
362
- )
363
- },
362
+ set_event_completion_chunk(
363
+ self.span,
364
+ "".join(content) if len(content) > 0 and content[0] is not None else "",
364
365
  )
365
366
  if content:
366
367
  self.result_content.append(content[0])
@@ -369,16 +370,11 @@ class StreamWrapper:
369
370
  token_counts = estimate_tokens(chunk.text)
370
371
  self.completion_tokens += token_counts
371
372
  content = [chunk.text]
372
- self.span.add_event(
373
- Event.STREAM_OUTPUT.value,
374
- {
375
- SpanAttributes.LLM_CONTENT_COMPLETION_CHUNK: (
376
- "".join(content)
377
- if len(content) > 0 and content[0] is not None
378
- else ""
379
- )
380
- },
373
+ set_event_completion_chunk(
374
+ self.span,
375
+ "".join(content) if len(content) > 0 and content[0] is not None else "",
381
376
  )
377
+
382
378
  if content:
383
379
  self.result_content.append(content[0])
384
380
 
@@ -0,0 +1 @@
1
+ __version__ = "2.2.9"
@@ -1 +0,0 @@
1
- __version__ = "2.2.8"