langtrace-python-sdk 3.8.15__tar.gz → 3.8.18__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 (323) hide show
  1. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/PKG-INFO +2 -2
  2. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/pyproject.toml +4 -1
  3. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/anthropic.py +4 -0
  4. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/anthropic/instrumentation.py +7 -1
  5. langtrace_python_sdk-3.8.18/src/langtrace_python_sdk/instrumentation/anthropic/patch.py +280 -0
  6. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/google_genai/patch.py +53 -7
  7. langtrace_python_sdk-3.8.18/src/langtrace_python_sdk/version.py +1 -0
  8. langtrace_python_sdk-3.8.15/src/langtrace_python_sdk/instrumentation/anthropic/patch.py +0 -133
  9. langtrace_python_sdk-3.8.15/src/langtrace_python_sdk/version.py +0 -1
  10. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/.gitignore +0 -0
  11. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/LICENSE +0 -0
  12. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/README.md +0 -0
  13. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/__init__.py +0 -0
  14. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/__init__.py +0 -0
  15. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/anthropic_example/__init__.py +0 -0
  16. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/anthropic_example/completion.py +0 -0
  17. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/autogen_example/__init__.py +0 -0
  18. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/autogen_example/main.py +0 -0
  19. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/awsbedrock_examples/__init__.py +0 -0
  20. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/awsbedrock_examples/converse.py +0 -0
  21. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/azureopenai_example/__init__.py +0 -0
  22. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/azureopenai_example/completion.py +0 -0
  23. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cerebras_example/__init__.py +0 -0
  24. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cerebras_example/main.py +0 -0
  25. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/chroma_example/__init__.py +0 -0
  26. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/chroma_example/basic.py +0 -0
  27. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cleanlab_example/simple.py +0 -0
  28. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cohere_example/__init__.py +0 -0
  29. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cohere_example/chat.py +0 -0
  30. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cohere_example/chat_stream.py +0 -0
  31. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cohere_example/chat_streamv2.py +0 -0
  32. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cohere_example/chatv2.py +0 -0
  33. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cohere_example/embed.py +0 -0
  34. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cohere_example/rerank.py +0 -0
  35. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cohere_example/rerankv2.py +0 -0
  36. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/cohere_example/tools.py +0 -0
  37. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/__init__.py +0 -0
  38. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/basic.py +0 -0
  39. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/instagram_post/__init__.py +0 -0
  40. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/instagram_post/agents.py +0 -0
  41. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/instagram_post/main.py +0 -0
  42. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/instagram_post/tasks.py +0 -0
  43. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/instagram_post/tools/__init__.py +0 -0
  44. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/instagram_post/tools/browser_tools.py +0 -0
  45. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/simple_agent/__init__.py +0 -0
  46. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/simple_agent/agents.py +0 -0
  47. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/simple_agent/main.py +0 -0
  48. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/simple_agent/tasks.py +0 -0
  49. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/trip_planner/__init__.py +0 -0
  50. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/trip_planner/agents.py +0 -0
  51. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/trip_planner/main.py +0 -0
  52. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/trip_planner/tasks.py +0 -0
  53. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/trip_planner/tools/calculator.py +0 -0
  54. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/crewai_example/trip_planner/tools/search_tools.py +0 -0
  55. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/QA_basic.py +0 -0
  56. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/QA_basic_with_chain_of_thought.py +0 -0
  57. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/QA_basic_with_signature.py +0 -0
  58. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/QA_multi_step_with_chain_of_thought.py +0 -0
  59. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/math_problems_cot.py +0 -0
  60. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/math_problems_cot_parallel.py +0 -0
  61. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/optimizers/bootstrap_fewshot.py +0 -0
  62. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/program_of_thought_basic.py +0 -0
  63. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/quiz_gen.py +0 -0
  64. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/dspy_example/react.py +0 -0
  65. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/embedchain_example/simple.py +0 -0
  66. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/fastapi_example/__init__.py +0 -0
  67. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/fastapi_example/basic_route.py +0 -0
  68. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/gemini_example/__init__.py +0 -0
  69. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/gemini_example/function_tools.py +0 -0
  70. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/gemini_example/main.py +0 -0
  71. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/google_genai_example/__init__.py +0 -0
  72. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/google_genai_example/main.py +0 -0
  73. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/graphlit_example/__init__.py +0 -0
  74. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/graphlit_example/conversation.py +0 -0
  75. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/hiveagent_example/basic.py +0 -0
  76. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/inspect_ai_example/basic_eval.py +0 -0
  77. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/langchain_example/__init__.py +0 -0
  78. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/langchain_example/basic.py +0 -0
  79. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/langchain_example/groq_example.py +0 -0
  80. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/langchain_example/langchain_google_example.py +0 -0
  81. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/langchain_example/langgraph_example.py +0 -0
  82. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/langchain_example/langgraph_example_tools.py +0 -0
  83. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/langchain_example/sagemaker.py +0 -0
  84. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/langchain_example/tool.py +0 -0
  85. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/langgraph_example/main.py +0 -0
  86. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/litellm_example/basic.py +0 -0
  87. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/litellm_example/config.yaml +0 -0
  88. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/litellm_example/proxy_basic.py +0 -0
  89. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/llamaindex_example/__init__.py +0 -0
  90. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/llamaindex_example/agent.py +0 -0
  91. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/llamaindex_example/basic.py +0 -0
  92. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/llamaindex_example/data/abramov.txt +0 -0
  93. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/milvus_example/main.py +0 -0
  94. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/mistral_example/__init__.py +0 -0
  95. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/mistral_example/complete.py +0 -0
  96. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/mistral_example/complete_async.py +0 -0
  97. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/mistral_example/embeddings.py +0 -0
  98. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/mongo_vector_search_example/main.py +0 -0
  99. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/neo4j_example/__init__.py +0 -0
  100. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/neo4j_example/basic.py +0 -0
  101. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/neo4j_graphrag_example/__init__.py +0 -0
  102. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/neo4j_graphrag_example/basic.py +0 -0
  103. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/neo4j_graphrag_example/data/abramov.pdf +0 -0
  104. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/ollama_example/__init__.py +0 -0
  105. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/ollama_example/basic.py +0 -0
  106. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/__init__.py +0 -0
  107. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/async_tool_calling_nonstreaming.py +0 -0
  108. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/async_tool_calling_streaming.py +0 -0
  109. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/chat_completion.py +0 -0
  110. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/chat_completion_tool_choice.py +0 -0
  111. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/embeddings_create.py +0 -0
  112. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/function_calling.py +0 -0
  113. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/images_edit.py +0 -0
  114. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/images_generate.py +0 -0
  115. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/resources/lounge_flamingo.png +0 -0
  116. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/resources/mask.png +0 -0
  117. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/send_user_feedback.py +0 -0
  118. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/tool_calling.py +0 -0
  119. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/tool_calling_nonstreaming.py +0 -0
  120. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/openai_example/tool_calling_streaming.py +0 -0
  121. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/otlp_example/otlp_basic.py +0 -0
  122. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/otlp_example/otlp_with_langtrace.py +0 -0
  123. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/perplexity_example/basic.py +0 -0
  124. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/phidata_example/__init__.py +0 -0
  125. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/phidata_example/agent.py +0 -0
  126. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/pinecone_example/__init__.py +0 -0
  127. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/pinecone_example/basic.py +0 -0
  128. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/qdrant_example/__init__.py +0 -0
  129. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/qdrant_example/basic.py +0 -0
  130. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/routellm_example/basic.py +0 -0
  131. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/vertexai_example/__init__.py +0 -0
  132. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/vertexai_example/main.py +0 -0
  133. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/weaviate_example/__init__.py +0 -0
  134. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/examples/weaviate_example/query_text.py +0 -0
  135. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/__init__.py +0 -0
  136. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/__init__.py +0 -0
  137. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/exporter/langtrace_exporter.py +0 -0
  138. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/__init__.py +0 -0
  139. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/aws_bedrock.py +0 -0
  140. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/chroma.py +0 -0
  141. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/cohere.py +0 -0
  142. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/common.py +0 -0
  143. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/embedchain.py +0 -0
  144. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/gemini.py +0 -0
  145. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/groq.py +0 -0
  146. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/litellm.py +0 -0
  147. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/milvus.py +0 -0
  148. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/mistral.py +0 -0
  149. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/neo4j.py +0 -0
  150. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/ollama.py +0 -0
  151. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/openai.py +0 -0
  152. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/pinecone.py +0 -0
  153. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/pymongo.py +0 -0
  154. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/qdrant.py +0 -0
  155. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/vertexai.py +0 -0
  156. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/constants/instrumentation/weaviate.py +0 -0
  157. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/extensions/__init__.py +0 -0
  158. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/extensions/langtrace_exporter.py +0 -0
  159. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/extensions/langtrace_filesystem.py +0 -0
  160. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/__init__.py +0 -0
  161. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/agno/__init__.py +0 -0
  162. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/agno/instrumentation.py +0 -0
  163. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/agno/patch.py +0 -0
  164. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/anthropic/__init__.py +0 -0
  165. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/anthropic/types.py +0 -0
  166. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/autogen/__init__.py +0 -0
  167. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/autogen/instrumentation.py +0 -0
  168. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/autogen/patch.py +0 -0
  169. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/aws_bedrock/__init__.py +0 -0
  170. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/aws_bedrock/bedrock_streaming_wrapper.py +0 -0
  171. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/aws_bedrock/instrumentation.py +0 -0
  172. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py +0 -0
  173. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/aws_bedrock/stream_body_wrapper.py +0 -0
  174. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/cerebras/__init__.py +0 -0
  175. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/cerebras/instrumentation.py +0 -0
  176. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/cerebras/patch.py +0 -0
  177. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/chroma/__init__.py +0 -0
  178. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/chroma/instrumentation.py +0 -0
  179. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/chroma/patch.py +0 -0
  180. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/cleanlab/__init__.py +0 -0
  181. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/cleanlab/instrumentation.py +0 -0
  182. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/cleanlab/patch.py +0 -0
  183. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/cohere/__init__.py +0 -0
  184. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/cohere/instrumentation.py +0 -0
  185. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/cohere/patch.py +0 -0
  186. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/crewai/__init__.py +0 -0
  187. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/crewai/instrumentation.py +0 -0
  188. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/crewai/patch.py +0 -0
  189. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/crewai_tools/__init__.py +0 -0
  190. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/crewai_tools/instrumentation.py +0 -0
  191. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/crewai_tools/patch.py +0 -0
  192. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/dspy/__init__.py +0 -0
  193. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/dspy/instrumentation.py +0 -0
  194. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/dspy/patch.py +0 -0
  195. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/embedchain/__init__.py +0 -0
  196. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/embedchain/instrumentation.py +0 -0
  197. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/embedchain/patch.py +0 -0
  198. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/gemini/__init__.py +0 -0
  199. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/gemini/instrumentation.py +0 -0
  200. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/gemini/patch.py +0 -0
  201. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/google_genai/__init__.py +0 -0
  202. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/google_genai/instrumentation.py +0 -0
  203. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/graphlit/__init__.py +0 -0
  204. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/graphlit/instrumentation.py +0 -0
  205. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/graphlit/patch.py +0 -0
  206. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/groq/__init__.py +0 -0
  207. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/groq/instrumentation.py +0 -0
  208. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/groq/patch.py +0 -0
  209. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langchain/__init__.py +0 -0
  210. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langchain/instrumentation.py +0 -0
  211. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langchain/patch.py +0 -0
  212. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langchain_community/__init__.py +0 -0
  213. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py +0 -0
  214. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langchain_community/patch.py +0 -0
  215. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langchain_core/__init__.py +0 -0
  216. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py +0 -0
  217. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langchain_core/patch.py +0 -0
  218. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langgraph/__init__.py +0 -0
  219. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langgraph/instrumentation.py +0 -0
  220. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/langgraph/patch.py +0 -0
  221. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/litellm/__init__.py +0 -0
  222. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/litellm/instrumentation.py +0 -0
  223. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/litellm/patch.py +0 -0
  224. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/litellm/types.py +0 -0
  225. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/llamaindex/__init__.py +0 -0
  226. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py +0 -0
  227. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/llamaindex/patch.py +0 -0
  228. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/milvus/__init__.py +0 -0
  229. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/milvus/instrumentation.py +0 -0
  230. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/milvus/patch.py +0 -0
  231. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/mistral/__init__.py +0 -0
  232. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/mistral/instrumentation.py +0 -0
  233. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/mistral/patch.py +0 -0
  234. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/neo4j/__init__.py +0 -0
  235. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/neo4j/instrumentation.py +0 -0
  236. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/neo4j/patch.py +0 -0
  237. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/neo4j_graphrag/__init__.py +0 -0
  238. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/neo4j_graphrag/instrumentation.py +0 -0
  239. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/neo4j_graphrag/patch.py +0 -0
  240. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/ollama/__init__.py +0 -0
  241. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/ollama/instrumentation.py +0 -0
  242. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/ollama/patch.py +0 -0
  243. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/openai/__init__.py +0 -0
  244. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/openai/instrumentation.py +0 -0
  245. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/openai/patch.py +0 -0
  246. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/openai/types.py +0 -0
  247. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/openai_agents/__init__.py +0 -0
  248. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/openai_agents/instrumentation.py +0 -0
  249. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/openai_agents/patch.py +0 -0
  250. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/phidata/__init__.py +0 -0
  251. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/phidata/instrumentation.py +0 -0
  252. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/phidata/patch.py +0 -0
  253. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/pinecone/__init__.py +0 -0
  254. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py +0 -0
  255. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/pinecone/patch.py +0 -0
  256. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/pymongo/__init__.py +0 -0
  257. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/pymongo/instrumentation.py +0 -0
  258. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/pymongo/patch.py +0 -0
  259. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/qdrant/__init__.py +0 -0
  260. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/qdrant/instrumentation.py +0 -0
  261. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/qdrant/patch.py +0 -0
  262. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/vertexai/__init__.py +0 -0
  263. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/vertexai/instrumentation.py +0 -0
  264. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/vertexai/patch.py +0 -0
  265. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/weaviate/__init__.py +0 -0
  266. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/weaviate/instrumentation.py +0 -0
  267. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/instrumentation/weaviate/patch.py +0 -0
  268. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/langtrace.py +0 -0
  269. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/types/__init__.py +0 -0
  270. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/utils/__init__.py +0 -0
  271. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/utils/langtrace_sampler.py +0 -0
  272. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/utils/llm.py +0 -0
  273. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/utils/misc.py +0 -0
  274. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/utils/prompt_registry.py +0 -0
  275. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/utils/sdk_version_checker.py +0 -0
  276. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/utils/silently_fail.py +0 -0
  277. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/utils/types.py +0 -0
  278. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/langtrace_python_sdk/utils/with_root_span.py +0 -0
  279. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/run_example.py +0 -0
  280. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/__init__.py +0 -0
  281. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/anthropic/cassettes/test_anthropic.yaml +0 -0
  282. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/anthropic/cassettes/test_anthropic_streaming.yaml +0 -0
  283. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/anthropic/cassettes/test_async_anthropic_streaming.yaml +0 -0
  284. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/anthropic/conftest.py +0 -0
  285. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/anthropic/test_anthropic.py +0 -0
  286. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/chroma/conftest.py +0 -0
  287. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/chroma/test_chroma.py +0 -0
  288. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/cohere/cassettes/test_cohere_chat.yaml +0 -0
  289. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/cohere/cassettes/test_cohere_chat_streaming.yaml +0 -0
  290. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/cohere/cassettes/test_cohere_embed.yaml +0 -0
  291. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/cohere/cassettes/test_cohere_rerank.yaml +0 -0
  292. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/cohere/conftest.py +0 -0
  293. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/cohere/test_cohere_chat.py +0 -0
  294. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/cohere/test_cohere_embed.py +0 -0
  295. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/cohere/test_cohere_rerank.py +0 -0
  296. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/conftest.py +0 -0
  297. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/groq/cassettes/test_async_chat_completion.yaml +0 -0
  298. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/groq/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  299. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/groq/cassettes/test_chat_completion.yaml +0 -0
  300. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/groq/cassettes/test_chat_completion_streaming.yaml +0 -0
  301. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/groq/conftest.py +0 -0
  302. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/groq/test_groq.py +0 -0
  303. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/langchain/cassettes/test_langchain.yaml +0 -0
  304. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/langchain/conftest.py +0 -0
  305. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/langchain/test_langchain.py +0 -0
  306. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  307. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/cassettes/test_async_image_generation.yaml +0 -0
  308. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/cassettes/test_chat_completion.yaml +0 -0
  309. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/cassettes/test_chat_completion_streaming.yaml +0 -0
  310. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/cassettes/test_embeddings_base_url.yaml +0 -0
  311. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/cassettes/test_image_generation.yaml +0 -0
  312. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/conftest.py +0 -0
  313. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/test_chat_completion.py +0 -0
  314. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/test_embeddings.py +0 -0
  315. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/openai/test_image_generation.py +0 -0
  316. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/pinecone/cassettes/test_query.yaml +0 -0
  317. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/pinecone/cassettes/test_upsert.yaml +0 -0
  318. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/pinecone/conftest.py +0 -0
  319. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/pinecone/test_pinecone.py +0 -0
  320. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/qdrant/conftest.py +0 -0
  321. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/qdrant/test_qdrant.py +0 -0
  322. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/src/tests/test_session_id.py +0 -0
  323. {langtrace_python_sdk-3.8.15 → langtrace_python_sdk-3.8.18}/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.8.15
3
+ Version: 3.8.18
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>
@@ -10,7 +10,7 @@ Classifier: License :: OSI Approved :: Apache Software License
10
10
  Classifier: Operating System :: OS Independent
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: >=3.9
13
- Requires-Dist: boto3
13
+ Requires-Dist: boto3==1.38.0
14
14
  Requires-Dist: colorama>=0.4.6
15
15
  Requires-Dist: fsspec>=2024.6.0
16
16
  Requires-Dist: opentelemetry-api>=1.25.0
@@ -32,7 +32,7 @@ dependencies = [
32
32
  "transformers>=4.11.3",
33
33
  "sentry-sdk>=2.14.0",
34
34
  "ujson>=5.10.0",
35
- "boto3",
35
+ "boto3==1.38.0",
36
36
  "setuptools",
37
37
  ]
38
38
 
@@ -81,6 +81,9 @@ include = ["/src"]
81
81
  [tool.hatch.build.targets.wheel]
82
82
  packages = ["src/langtrace_python_sdk", "src/examples", "src/tests"]
83
83
 
84
+ [tool.hatch.source]
85
+ url = "https://langtrace.gateway.scarf.sh/simple/"
86
+
84
87
  [project.entry-points."fsspec.specs"]
85
88
  langtracefs = "langtrace_python_sdk:LangTraceFileSystem"
86
89
 
@@ -3,4 +3,8 @@ APIS = {
3
3
  "METHOD": "anthropic.messages.create",
4
4
  "ENDPOINT": "/v1/messages",
5
5
  },
6
+ "MESSAGES_STREAM": {
7
+ "METHOD": "anthropic.messages.stream",
8
+ "ENDPOINT": "/v1/messages",
9
+ },
6
10
  }
@@ -23,7 +23,7 @@ from opentelemetry.trace import TracerProvider
23
23
  from opentelemetry.trace import get_tracer
24
24
  from wrapt import wrap_function_wrapper
25
25
  from typing import Any
26
- from langtrace_python_sdk.instrumentation.anthropic.patch import messages_create
26
+ from langtrace_python_sdk.instrumentation.anthropic.patch import messages_create, messages_stream
27
27
 
28
28
  logging.basicConfig(level=logging.FATAL)
29
29
 
@@ -46,6 +46,12 @@ class AnthropicInstrumentation(BaseInstrumentor): # type: ignore[misc]
46
46
  "Messages.create",
47
47
  messages_create(version, tracer),
48
48
  )
49
+
50
+ wrap_function_wrapper(
51
+ "anthropic.resources.messages",
52
+ "Messages.stream",
53
+ messages_stream(version, tracer),
54
+ )
49
55
 
50
56
  def _instrument_module(self, module_name: str) -> None:
51
57
  pass
@@ -0,0 +1,280 @@
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 typing import Any, Callable, List, Iterator, Union
18
+ from langtrace.trace_attributes import SpanAttributes, LLMSpanAttributes
19
+ import json
20
+
21
+ from langtrace_python_sdk.utils.llm import (
22
+ StreamWrapper,
23
+ get_extra_attributes,
24
+ get_langtrace_attributes,
25
+ get_llm_request_attributes,
26
+ get_llm_url,
27
+ get_span_name,
28
+ set_event_completion,
29
+ set_span_attributes,
30
+ set_usage_attributes,
31
+ set_span_attribute,
32
+ )
33
+ from opentelemetry.trace import Span, Tracer, SpanKind
34
+ from opentelemetry.trace.status import StatusCode
35
+ from langtrace_python_sdk.constants.instrumentation.anthropic import APIS
36
+ from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
37
+ from langtrace_python_sdk.instrumentation.anthropic.types import (
38
+ StreamingResult,
39
+ ResultType,
40
+ MessagesCreateKwargs,
41
+ )
42
+
43
+
44
+ def messages_create(version: str, tracer: Tracer) -> Callable[..., Any]:
45
+ """Wrap the `messages_create` method."""
46
+
47
+ def traced_method(
48
+ wrapped: Callable[..., Any],
49
+ instance: Any,
50
+ args: List[Any],
51
+ kwargs: MessagesCreateKwargs,
52
+ ) -> Any:
53
+ service_provider = SERVICE_PROVIDERS["ANTHROPIC"]
54
+
55
+ # Extract system from kwargs and attach as a role to the prompts
56
+ prompts = kwargs.get("messages", [])
57
+ system = kwargs.get("system")
58
+ if system:
59
+ prompts.append({"role": "system", "content": system})
60
+ span_attributes = {
61
+ **get_langtrace_attributes(version, service_provider),
62
+ **get_llm_request_attributes(kwargs, prompts=prompts),
63
+ **get_llm_url(instance),
64
+ SpanAttributes.LLM_PATH: APIS["MESSAGES_CREATE"]["ENDPOINT"],
65
+ **get_extra_attributes(),
66
+ }
67
+
68
+ attributes = LLMSpanAttributes(**span_attributes)
69
+
70
+ span = tracer.start_span(
71
+ name=get_span_name(APIS["MESSAGES_CREATE"]["METHOD"]), kind=SpanKind.CLIENT
72
+ )
73
+
74
+ set_span_attributes(span, attributes)
75
+
76
+ tools = []
77
+ if kwargs.get("tools") is not None and kwargs.get("tools"):
78
+ tools.append(json.dumps(kwargs.get("tools")))
79
+ set_span_attribute(span, SpanAttributes.LLM_TOOLS, json.dumps(tools))
80
+
81
+ try:
82
+ # Attempt to call the original method
83
+ result = wrapped(*args, **kwargs)
84
+ return set_response_attributes(result, span)
85
+
86
+ except Exception as err:
87
+ # Record the exception in the span
88
+ span.record_exception(err)
89
+ # Set the span status to indicate an error
90
+ span.set_status(StatusCode.ERROR, str(err))
91
+ # Reraise the exception to ensure it's not swallowed
92
+ span.end()
93
+ raise
94
+
95
+ def set_response_attributes(
96
+ result: Union[ResultType, StreamingResult], span: Span
97
+ ) -> Any:
98
+ if not isinstance(result, Iterator):
99
+ if hasattr(result, "content") and result.content is not None:
100
+ set_span_attribute(
101
+ span, SpanAttributes.LLM_RESPONSE_MODEL, result.model
102
+ )
103
+ if hasattr(result, "content") and result.content[0] is not None:
104
+ content = result.content[0]
105
+ typ = content.type
106
+ role = result.role if result.role else "assistant"
107
+ if typ == "tool_result" or typ == "tool_use":
108
+ content = content.json() # type: ignore
109
+ set_span_attribute(
110
+ span, SpanAttributes.LLM_TOOL_RESULTS, json.dumps(content)
111
+ )
112
+ if typ == "text":
113
+ content = result.content[0].text
114
+ set_event_completion(
115
+ span, [{"type": typ, "role": role, "content": content}]
116
+ )
117
+
118
+ if (
119
+ hasattr(result, "system_fingerprint")
120
+ and result.system_fingerprint is not None
121
+ ):
122
+ span.set_attribute(
123
+ SpanAttributes.LLM_SYSTEM_FINGERPRINT,
124
+ result.system_fingerprint,
125
+ )
126
+ # Get the usage
127
+ if hasattr(result, "usage") and result.usage is not None:
128
+ usage = result.usage
129
+ set_usage_attributes(span, vars(usage))
130
+
131
+ span.set_status(StatusCode.OK)
132
+ span.end()
133
+ return result
134
+ else:
135
+ return StreamWrapper(result, span, tool_calls=True)
136
+
137
+ # return the wrapped method
138
+ return traced_method
139
+
140
+
141
+ def messages_stream(version: str, tracer: Tracer) -> Callable[..., Any]:
142
+
143
+ def traced_method(
144
+ wrapped: Callable[..., Any],
145
+ instance: Any,
146
+ args: List[Any],
147
+ kwargs: MessagesCreateKwargs,
148
+ ) -> Any:
149
+ service_provider = SERVICE_PROVIDERS["ANTHROPIC"]
150
+
151
+ prompts = kwargs.get("messages", [])
152
+ system = kwargs.get("system")
153
+ if system:
154
+ prompts.append({"role": "assistant", "content": system})
155
+ span_attributes = {
156
+ **get_langtrace_attributes(version, service_provider),
157
+ **get_llm_request_attributes(kwargs, prompts=prompts),
158
+ **get_llm_url(instance),
159
+ SpanAttributes.LLM_PATH: APIS["MESSAGES_STREAM"]["ENDPOINT"],
160
+ **get_extra_attributes(),
161
+ }
162
+
163
+ attributes = LLMSpanAttributes(**span_attributes)
164
+
165
+ span = tracer.start_span(
166
+ name=get_span_name(APIS["MESSAGES_STREAM"]["METHOD"]), kind=SpanKind.CLIENT
167
+ )
168
+
169
+ set_span_attributes(span, attributes)
170
+
171
+ tools = []
172
+ if kwargs.get("tools") is not None:
173
+ tools.append(json.dumps(kwargs.get("tools")))
174
+ set_span_attribute(span, SpanAttributes.LLM_TOOLS, json.dumps(tools))
175
+
176
+ try:
177
+ # Create the original message stream manager
178
+ original_stream_manager = wrapped(*args, **kwargs)
179
+
180
+ # Create a new stream manager that will instrument the stream
181
+ # while preserving the stream
182
+ class InstrumentedMessageStreamManager:
183
+ def __init__(self, original_manager, span):
184
+ self.original_manager = original_manager
185
+ self.span = span
186
+
187
+ def __enter__(self):
188
+ # Enter the original context manager to get the stream
189
+ original_stream = self.original_manager.__enter__()
190
+
191
+ # Create a wrapper iterator
192
+ class InstrumentedStream:
193
+ def __init__(self, original_stream, span):
194
+ self.original_stream = original_stream
195
+ self.span = span
196
+ self.message_stop_processed = False
197
+
198
+ def __iter__(self):
199
+ return self
200
+
201
+ def __next__(self):
202
+ try:
203
+ chunk = next(self.original_stream)
204
+
205
+ # Apply instrumentation only once on message_stop
206
+ if chunk.type == "message_stop" and not self.message_stop_processed:
207
+ self.message_stop_processed = True
208
+ response_message = chunk.message
209
+
210
+ responses = [
211
+ {
212
+ "role": (
213
+ response_message.role
214
+ if response_message.role
215
+ else "assistant"
216
+ ),
217
+ "content": message.text,
218
+ }
219
+ for message in response_message.content if message.type == "text"
220
+ ]
221
+
222
+ set_event_completion(self.span, responses)
223
+
224
+ if hasattr(response_message, "usage") and response_message.usage is not None:
225
+ set_span_attribute(
226
+ self.span,
227
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS,
228
+ response_message.usage.input_tokens,
229
+ )
230
+ set_span_attribute(
231
+ self.span,
232
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS,
233
+ response_message.usage.output_tokens,
234
+ )
235
+ set_span_attribute(
236
+ self.span,
237
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS,
238
+ response_message.usage.input_tokens + response_message.usage.output_tokens,
239
+ )
240
+
241
+ # Forward the chunk
242
+ return chunk
243
+ except StopIteration:
244
+ # End the span when we're done with the stream
245
+ self.span.end()
246
+ raise
247
+ except Exception as err:
248
+ self.span.record_exception(err)
249
+ self.span.set_status(StatusCode.ERROR, str(err))
250
+ self.span.end()
251
+ raise
252
+
253
+ def close(self):
254
+ self.original_stream.close()
255
+ if not self.message_stop_processed:
256
+ self.span.end()
257
+
258
+ # Return our instrumented stream wrapper
259
+ return InstrumentedStream(original_stream, self.span)
260
+
261
+ def __exit__(self, exc_type, exc_val, exc_tb):
262
+ result = self.original_manager.__exit__(exc_type, exc_val, exc_tb)
263
+
264
+ if exc_type is not None:
265
+ self.span.record_exception(exc_val)
266
+ self.span.set_status(StatusCode.ERROR, str(exc_val))
267
+ self.span.end()
268
+
269
+ return result
270
+
271
+ # Return the instrumented stream manager
272
+ return InstrumentedMessageStreamManager(original_stream_manager, span)
273
+
274
+ except Exception as err:
275
+ span.record_exception(err)
276
+ span.set_status(StatusCode.ERROR, str(err))
277
+ span.end()
278
+ raise
279
+
280
+ return traced_method
@@ -1,3 +1,4 @@
1
+ import base64
1
2
  from langtrace_python_sdk.utils.llm import (
2
3
  get_langtrace_attributes,
3
4
  get_llm_request_attributes,
@@ -14,20 +15,65 @@ from langtrace.trace_attributes import SpanAttributes
14
15
 
15
16
  from typing import Iterator
16
17
 
18
+ def capture_input_data(contents):
19
+ input_data = []
20
+
21
+ if isinstance(contents, list):
22
+ content_parts = []
23
+ for content in contents:
24
+ if hasattr(content, 'parts'):
25
+ for part in content.parts:
26
+ if hasattr(part, 'text') and part.text:
27
+ content_parts.append({
28
+ "type": "text",
29
+ "text": part.text
30
+ })
31
+ if hasattr(part, 'inline_data') and part.inline_data:
32
+ content_parts.append({
33
+ "type": "image_url",
34
+ "image_url": f"data:{part.inline_data.mime_type};base64,{base64.b64encode(part.inline_data.data).decode('utf-8')}"
35
+ })
36
+ else:
37
+ if isinstance(content, str):
38
+ content_parts.append({
39
+ "type": "text",
40
+ "text": content
41
+ })
42
+ elif hasattr(content, 'text') and content.text:
43
+ content_parts.append({
44
+ "type": "text",
45
+ "text": content.text
46
+ })
47
+ elif hasattr(content, 'inline_data') and content.inline_data:
48
+ content_parts.append({
49
+ "type": "image_url",
50
+ "image_url": f"data:{content.inline_data.mime_type};base64,{base64.b64encode(content.inline_data.data).decode('utf-8')}"
51
+ })
52
+ else:
53
+ content_parts.append({
54
+ "type": "text",
55
+ "text": content
56
+ })
57
+ input_data.append({
58
+ "role": "user",
59
+ "content": content_parts
60
+ })
61
+ else:
62
+ input_data.append({
63
+ "role": "user",
64
+ "content": contents
65
+ })
66
+
67
+ return input_data
68
+
17
69
 
18
70
  def patch_google_genai(tracer: Tracer, version: str):
19
71
  def traced_method(wrapped, instance, args, kwargs):
20
- prompt = [
21
- {
22
- "role": "user",
23
- "content": kwargs["contents"],
24
- }
25
- ]
26
72
  span_attributes = {
27
73
  **get_langtrace_attributes(
28
74
  service_provider="google_genai", version=version
29
75
  ),
30
- **get_llm_request_attributes(kwargs=kwargs, prompts=prompt),
76
+ **get_llm_request_attributes(kwargs=kwargs, prompts=capture_input_data(kwargs["contents"])),
31
77
  }
32
78
  with tracer.start_as_current_span(
33
79
  name="google.genai.generate_content",
@@ -0,0 +1 @@
1
+ __version__ = "3.8.18"
@@ -1,133 +0,0 @@
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 typing import Any, Callable, List, Iterator, Union
18
- from langtrace.trace_attributes import SpanAttributes, LLMSpanAttributes
19
- import json
20
-
21
- from langtrace_python_sdk.utils.llm import (
22
- StreamWrapper,
23
- get_extra_attributes,
24
- get_langtrace_attributes,
25
- get_llm_request_attributes,
26
- get_llm_url,
27
- get_span_name,
28
- set_event_completion,
29
- set_span_attributes,
30
- set_usage_attributes,
31
- set_span_attribute,
32
- )
33
- from opentelemetry.trace import Span, Tracer, SpanKind
34
- from opentelemetry.trace.status import StatusCode
35
- from langtrace_python_sdk.constants.instrumentation.anthropic import APIS
36
- from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
37
- from langtrace_python_sdk.instrumentation.anthropic.types import (
38
- StreamingResult,
39
- ResultType,
40
- MessagesCreateKwargs,
41
- )
42
-
43
-
44
- def messages_create(version: str, tracer: Tracer) -> Callable[..., Any]:
45
- """Wrap the `messages_create` method."""
46
-
47
- def traced_method(
48
- wrapped: Callable[..., Any],
49
- instance: Any,
50
- args: List[Any],
51
- kwargs: MessagesCreateKwargs,
52
- ) -> Any:
53
- service_provider = SERVICE_PROVIDERS["ANTHROPIC"]
54
-
55
- # Extract system from kwargs and attach as a role to the prompts
56
- prompts = kwargs.get("messages", [])
57
- system = kwargs.get("system")
58
- if system:
59
- prompts = [{"role": "system", "content": system}] + kwargs.get(
60
- "messages", []
61
- )
62
- span_attributes = {
63
- **get_langtrace_attributes(version, service_provider),
64
- **get_llm_request_attributes(kwargs, prompts=prompts),
65
- **get_llm_url(instance),
66
- SpanAttributes.LLM_PATH: APIS["MESSAGES_CREATE"]["ENDPOINT"],
67
- **get_extra_attributes(),
68
- }
69
-
70
- attributes = LLMSpanAttributes(**span_attributes)
71
-
72
- span = tracer.start_span(
73
- name=get_span_name(APIS["MESSAGES_CREATE"]["METHOD"]), kind=SpanKind.CLIENT
74
- )
75
- set_span_attributes(span, attributes)
76
- try:
77
- # Attempt to call the original method
78
- result = wrapped(*args, **kwargs)
79
- return set_response_attributes(result, span)
80
-
81
- except Exception as err:
82
- # Record the exception in the span
83
- span.record_exception(err)
84
- # Set the span status to indicate an error
85
- span.set_status(StatusCode.ERROR, str(err))
86
- # Reraise the exception to ensure it's not swallowed
87
- span.end()
88
- raise
89
-
90
- def set_response_attributes(
91
- result: Union[ResultType, StreamingResult], span: Span
92
- ) -> Any:
93
- if not isinstance(result, Iterator):
94
- if hasattr(result, "content") and result.content is not None:
95
- set_span_attribute(
96
- span, SpanAttributes.LLM_RESPONSE_MODEL, result.model
97
- )
98
- if hasattr(result, "content") and result.content[0] is not None:
99
- content = result.content[0]
100
- typ = content.type
101
- role = result.role if result.role else "assistant"
102
- if typ == "tool_result" or typ == "tool_use":
103
- content = content.json() # type: ignore
104
- set_span_attribute(
105
- span, SpanAttributes.LLM_TOOL_RESULTS, json.dumps(content)
106
- )
107
- if typ == "text":
108
- content = result.content[0].text
109
- set_event_completion(
110
- span, [{"type": typ, "role": role, "content": content}]
111
- )
112
-
113
- if (
114
- hasattr(result, "system_fingerprint")
115
- and result.system_fingerprint is not None
116
- ):
117
- span.set_attribute(
118
- SpanAttributes.LLM_SYSTEM_FINGERPRINT,
119
- result.system_fingerprint,
120
- )
121
- # Get the usage
122
- if hasattr(result, "usage") and result.usage is not None:
123
- usage = result.usage
124
- set_usage_attributes(span, vars(usage))
125
-
126
- span.set_status(StatusCode.OK)
127
- span.end()
128
- return result
129
- else:
130
- return StreamWrapper(result, span)
131
-
132
- # return the wrapped method
133
- return traced_method
@@ -1 +0,0 @@
1
- __version__ = "3.8.15"