langtrace-python-sdk 3.8.8__tar.gz → 3.8.10__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 (322) hide show
  1. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/PKG-INFO +2 -2
  2. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/pyproject.toml +1 -1
  3. langtrace_python_sdk-3.8.10/src/examples/neo4j_example/__init__.py +8 -0
  4. langtrace_python_sdk-3.8.10/src/examples/neo4j_example/basic.py +26 -0
  5. langtrace_python_sdk-3.8.10/src/examples/neo4j_graphrag_example/__init__.py +9 -0
  6. langtrace_python_sdk-3.8.10/src/examples/neo4j_graphrag_example/basic.py +52 -0
  7. langtrace_python_sdk-3.8.10/src/examples/neo4j_graphrag_example/data/abramov.pdf +0 -0
  8. langtrace_python_sdk-3.8.10/src/langtrace_python_sdk/constants/instrumentation/neo4j.py +36 -0
  9. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/__init__.py +1 -0
  10. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/agno/instrumentation.py +22 -1
  11. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/agno/patch.py +169 -55
  12. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/google_genai/instrumentation.py +1 -1
  13. langtrace_python_sdk-3.8.10/src/langtrace_python_sdk/instrumentation/neo4j/__init__.py +3 -0
  14. langtrace_python_sdk-3.8.10/src/langtrace_python_sdk/instrumentation/neo4j/instrumentation.py +51 -0
  15. langtrace_python_sdk-3.8.10/src/langtrace_python_sdk/instrumentation/neo4j/patch.py +180 -0
  16. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/weaviate/patch.py +4 -4
  17. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/langtrace.py +4 -3
  18. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/utils/llm.py +11 -13
  19. langtrace_python_sdk-3.8.10/src/langtrace_python_sdk/version.py +1 -0
  20. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/run_example.py +15 -1
  21. langtrace_python_sdk-3.8.8/src/langtrace_python_sdk/version.py +0 -1
  22. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/.gitignore +0 -0
  23. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/LICENSE +0 -0
  24. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/README.md +0 -0
  25. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/__init__.py +0 -0
  26. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/__init__.py +0 -0
  27. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/anthropic_example/__init__.py +0 -0
  28. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/anthropic_example/completion.py +0 -0
  29. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/autogen_example/__init__.py +0 -0
  30. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/autogen_example/main.py +0 -0
  31. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/awsbedrock_examples/__init__.py +0 -0
  32. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/awsbedrock_examples/converse.py +0 -0
  33. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/azureopenai_example/__init__.py +0 -0
  34. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/azureopenai_example/completion.py +0 -0
  35. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cerebras_example/__init__.py +0 -0
  36. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cerebras_example/main.py +0 -0
  37. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/chroma_example/__init__.py +0 -0
  38. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/chroma_example/basic.py +0 -0
  39. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cleanlab_example/simple.py +0 -0
  40. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cohere_example/__init__.py +0 -0
  41. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cohere_example/chat.py +0 -0
  42. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cohere_example/chat_stream.py +0 -0
  43. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cohere_example/chat_streamv2.py +0 -0
  44. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cohere_example/chatv2.py +0 -0
  45. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cohere_example/embed.py +0 -0
  46. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cohere_example/rerank.py +0 -0
  47. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cohere_example/rerankv2.py +0 -0
  48. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/cohere_example/tools.py +0 -0
  49. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/__init__.py +0 -0
  50. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/basic.py +0 -0
  51. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/instagram_post/__init__.py +0 -0
  52. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/instagram_post/agents.py +0 -0
  53. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/instagram_post/main.py +0 -0
  54. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/instagram_post/tasks.py +0 -0
  55. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/instagram_post/tools/__init__.py +0 -0
  56. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/instagram_post/tools/browser_tools.py +0 -0
  57. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/simple_agent/__init__.py +0 -0
  58. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/simple_agent/agents.py +0 -0
  59. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/simple_agent/main.py +0 -0
  60. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/simple_agent/tasks.py +0 -0
  61. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/trip_planner/__init__.py +0 -0
  62. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/trip_planner/agents.py +0 -0
  63. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/trip_planner/main.py +0 -0
  64. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/trip_planner/tasks.py +0 -0
  65. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/trip_planner/tools/calculator.py +0 -0
  66. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/crewai_example/trip_planner/tools/search_tools.py +0 -0
  67. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/QA_basic.py +0 -0
  68. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/QA_basic_with_chain_of_thought.py +0 -0
  69. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/QA_basic_with_signature.py +0 -0
  70. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/QA_multi_step_with_chain_of_thought.py +0 -0
  71. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/math_problems_cot.py +0 -0
  72. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/math_problems_cot_parallel.py +0 -0
  73. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/optimizers/bootstrap_fewshot.py +0 -0
  74. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/program_of_thought_basic.py +0 -0
  75. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/quiz_gen.py +0 -0
  76. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/dspy_example/react.py +0 -0
  77. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/embedchain_example/simple.py +0 -0
  78. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/fastapi_example/__init__.py +0 -0
  79. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/fastapi_example/basic_route.py +0 -0
  80. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/gemini_example/__init__.py +0 -0
  81. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/gemini_example/function_tools.py +0 -0
  82. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/gemini_example/main.py +0 -0
  83. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/google_genai_example/__init__.py +0 -0
  84. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/google_genai_example/main.py +0 -0
  85. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/graphlit_example/__init__.py +0 -0
  86. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/graphlit_example/conversation.py +0 -0
  87. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/hiveagent_example/basic.py +0 -0
  88. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/inspect_ai_example/basic_eval.py +0 -0
  89. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/langchain_example/__init__.py +0 -0
  90. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/langchain_example/basic.py +0 -0
  91. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/langchain_example/groq_example.py +0 -0
  92. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/langchain_example/langchain_google_example.py +0 -0
  93. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/langchain_example/langgraph_example.py +0 -0
  94. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/langchain_example/langgraph_example_tools.py +0 -0
  95. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/langchain_example/sagemaker.py +0 -0
  96. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/langchain_example/tool.py +0 -0
  97. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/langgraph_example/main.py +0 -0
  98. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/litellm_example/basic.py +0 -0
  99. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/litellm_example/config.yaml +0 -0
  100. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/litellm_example/proxy_basic.py +0 -0
  101. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/llamaindex_example/__init__.py +0 -0
  102. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/llamaindex_example/agent.py +0 -0
  103. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/llamaindex_example/basic.py +0 -0
  104. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/llamaindex_example/data/abramov.txt +0 -0
  105. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/milvus_example/main.py +0 -0
  106. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/mistral_example/__init__.py +0 -0
  107. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/mistral_example/complete.py +0 -0
  108. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/mistral_example/complete_async.py +0 -0
  109. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/mistral_example/embeddings.py +0 -0
  110. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/mongo_vector_search_example/main.py +0 -0
  111. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/ollama_example/__init__.py +0 -0
  112. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/ollama_example/basic.py +0 -0
  113. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/__init__.py +0 -0
  114. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/async_tool_calling_nonstreaming.py +0 -0
  115. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/async_tool_calling_streaming.py +0 -0
  116. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/chat_completion.py +0 -0
  117. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/chat_completion_tool_choice.py +0 -0
  118. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/embeddings_create.py +0 -0
  119. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/function_calling.py +0 -0
  120. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/images_edit.py +0 -0
  121. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/images_generate.py +0 -0
  122. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/resources/lounge_flamingo.png +0 -0
  123. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/resources/mask.png +0 -0
  124. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/send_user_feedback.py +0 -0
  125. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/tool_calling.py +0 -0
  126. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/tool_calling_nonstreaming.py +0 -0
  127. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/openai_example/tool_calling_streaming.py +0 -0
  128. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/otlp_example/otlp_basic.py +0 -0
  129. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/otlp_example/otlp_with_langtrace.py +0 -0
  130. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/perplexity_example/basic.py +0 -0
  131. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/phidata_example/__init__.py +0 -0
  132. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/phidata_example/agent.py +0 -0
  133. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/pinecone_example/__init__.py +0 -0
  134. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/pinecone_example/basic.py +0 -0
  135. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/qdrant_example/__init__.py +0 -0
  136. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/qdrant_example/basic.py +0 -0
  137. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/routellm_example/basic.py +0 -0
  138. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/vertexai_example/__init__.py +0 -0
  139. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/vertexai_example/main.py +0 -0
  140. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/weaviate_example/__init__.py +0 -0
  141. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/examples/weaviate_example/query_text.py +0 -0
  142. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/__init__.py +0 -0
  143. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/__init__.py +0 -0
  144. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/exporter/langtrace_exporter.py +0 -0
  145. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/__init__.py +0 -0
  146. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/anthropic.py +0 -0
  147. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/aws_bedrock.py +0 -0
  148. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/chroma.py +0 -0
  149. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/cohere.py +0 -0
  150. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/common.py +0 -0
  151. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/embedchain.py +0 -0
  152. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/gemini.py +0 -0
  153. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/groq.py +0 -0
  154. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/litellm.py +0 -0
  155. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/milvus.py +0 -0
  156. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/mistral.py +0 -0
  157. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/ollama.py +0 -0
  158. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/openai.py +0 -0
  159. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/pinecone.py +0 -0
  160. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/pymongo.py +0 -0
  161. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/qdrant.py +0 -0
  162. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/vertexai.py +0 -0
  163. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/constants/instrumentation/weaviate.py +0 -0
  164. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/extensions/__init__.py +0 -0
  165. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/extensions/langtrace_exporter.py +0 -0
  166. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/extensions/langtrace_filesystem.py +0 -0
  167. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/agno/__init__.py +0 -0
  168. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/anthropic/__init__.py +0 -0
  169. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/anthropic/instrumentation.py +0 -0
  170. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/anthropic/patch.py +0 -0
  171. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/anthropic/types.py +0 -0
  172. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/autogen/__init__.py +0 -0
  173. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/autogen/instrumentation.py +0 -0
  174. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/autogen/patch.py +0 -0
  175. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/aws_bedrock/__init__.py +0 -0
  176. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/aws_bedrock/bedrock_streaming_wrapper.py +0 -0
  177. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/aws_bedrock/instrumentation.py +0 -0
  178. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py +0 -0
  179. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/aws_bedrock/stream_body_wrapper.py +0 -0
  180. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/cerebras/__init__.py +0 -0
  181. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/cerebras/instrumentation.py +0 -0
  182. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/cerebras/patch.py +0 -0
  183. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/chroma/__init__.py +0 -0
  184. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/chroma/instrumentation.py +0 -0
  185. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/chroma/patch.py +0 -0
  186. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/cleanlab/__init__.py +0 -0
  187. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/cleanlab/instrumentation.py +0 -0
  188. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/cleanlab/patch.py +0 -0
  189. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/cohere/__init__.py +0 -0
  190. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/cohere/instrumentation.py +0 -0
  191. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/cohere/patch.py +0 -0
  192. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/crewai/__init__.py +0 -0
  193. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/crewai/instrumentation.py +0 -0
  194. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/crewai/patch.py +0 -0
  195. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/crewai_tools/__init__.py +0 -0
  196. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/crewai_tools/instrumentation.py +0 -0
  197. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/crewai_tools/patch.py +0 -0
  198. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/dspy/__init__.py +0 -0
  199. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/dspy/instrumentation.py +0 -0
  200. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/dspy/patch.py +0 -0
  201. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/embedchain/__init__.py +0 -0
  202. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/embedchain/instrumentation.py +0 -0
  203. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/embedchain/patch.py +0 -0
  204. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/gemini/__init__.py +0 -0
  205. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/gemini/instrumentation.py +0 -0
  206. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/gemini/patch.py +0 -0
  207. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/google_genai/__init__.py +0 -0
  208. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/google_genai/patch.py +0 -0
  209. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/graphlit/__init__.py +0 -0
  210. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/graphlit/instrumentation.py +0 -0
  211. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/graphlit/patch.py +0 -0
  212. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/groq/__init__.py +0 -0
  213. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/groq/instrumentation.py +0 -0
  214. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/groq/patch.py +0 -0
  215. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langchain/__init__.py +0 -0
  216. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langchain/instrumentation.py +0 -0
  217. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langchain/patch.py +0 -0
  218. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langchain_community/__init__.py +0 -0
  219. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py +0 -0
  220. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langchain_community/patch.py +0 -0
  221. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langchain_core/__init__.py +0 -0
  222. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py +0 -0
  223. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langchain_core/patch.py +0 -0
  224. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langgraph/__init__.py +0 -0
  225. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langgraph/instrumentation.py +0 -0
  226. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/langgraph/patch.py +0 -0
  227. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/litellm/__init__.py +0 -0
  228. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/litellm/instrumentation.py +0 -0
  229. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/litellm/patch.py +0 -0
  230. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/litellm/types.py +0 -0
  231. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/llamaindex/__init__.py +0 -0
  232. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py +0 -0
  233. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/llamaindex/patch.py +0 -0
  234. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/milvus/__init__.py +0 -0
  235. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/milvus/instrumentation.py +0 -0
  236. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/milvus/patch.py +0 -0
  237. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/mistral/__init__.py +0 -0
  238. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/mistral/instrumentation.py +0 -0
  239. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/mistral/patch.py +0 -0
  240. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/neo4j_graphrag/__init__.py +0 -0
  241. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/neo4j_graphrag/instrumentation.py +0 -0
  242. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/neo4j_graphrag/patch.py +0 -0
  243. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/ollama/__init__.py +0 -0
  244. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/ollama/instrumentation.py +0 -0
  245. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/ollama/patch.py +0 -0
  246. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/openai/__init__.py +0 -0
  247. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/openai/instrumentation.py +0 -0
  248. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/openai/patch.py +0 -0
  249. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/openai/types.py +0 -0
  250. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/openai_agents/__init__.py +0 -0
  251. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/openai_agents/instrumentation.py +0 -0
  252. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/openai_agents/patch.py +0 -0
  253. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/phidata/__init__.py +0 -0
  254. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/phidata/instrumentation.py +0 -0
  255. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/phidata/patch.py +0 -0
  256. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/pinecone/__init__.py +0 -0
  257. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py +0 -0
  258. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/pinecone/patch.py +0 -0
  259. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/pymongo/__init__.py +0 -0
  260. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/pymongo/instrumentation.py +0 -0
  261. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/pymongo/patch.py +0 -0
  262. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/qdrant/__init__.py +0 -0
  263. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/qdrant/instrumentation.py +0 -0
  264. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/qdrant/patch.py +0 -0
  265. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/vertexai/__init__.py +0 -0
  266. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/vertexai/instrumentation.py +0 -0
  267. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/vertexai/patch.py +0 -0
  268. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/weaviate/__init__.py +0 -0
  269. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/instrumentation/weaviate/instrumentation.py +0 -0
  270. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/types/__init__.py +0 -0
  271. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/utils/__init__.py +0 -0
  272. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/utils/langtrace_sampler.py +0 -0
  273. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/utils/misc.py +0 -0
  274. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/utils/prompt_registry.py +0 -0
  275. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/utils/sdk_version_checker.py +0 -0
  276. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/utils/silently_fail.py +0 -0
  277. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/utils/types.py +0 -0
  278. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/langtrace_python_sdk/utils/with_root_span.py +0 -0
  279. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/__init__.py +0 -0
  280. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/anthropic/cassettes/test_anthropic.yaml +0 -0
  281. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/anthropic/cassettes/test_anthropic_streaming.yaml +0 -0
  282. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/anthropic/cassettes/test_async_anthropic_streaming.yaml +0 -0
  283. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/anthropic/conftest.py +0 -0
  284. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/anthropic/test_anthropic.py +0 -0
  285. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/chroma/conftest.py +0 -0
  286. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/chroma/test_chroma.py +0 -0
  287. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/cohere/cassettes/test_cohere_chat.yaml +0 -0
  288. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/cohere/cassettes/test_cohere_chat_streaming.yaml +0 -0
  289. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/cohere/cassettes/test_cohere_embed.yaml +0 -0
  290. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/cohere/cassettes/test_cohere_rerank.yaml +0 -0
  291. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/cohere/conftest.py +0 -0
  292. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/cohere/test_cohere_chat.py +0 -0
  293. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/cohere/test_cohere_embed.py +0 -0
  294. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/cohere/test_cohere_rerank.py +0 -0
  295. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/conftest.py +0 -0
  296. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/groq/cassettes/test_async_chat_completion.yaml +0 -0
  297. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/groq/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  298. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/groq/cassettes/test_chat_completion.yaml +0 -0
  299. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/groq/cassettes/test_chat_completion_streaming.yaml +0 -0
  300. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/groq/conftest.py +0 -0
  301. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/groq/test_groq.py +0 -0
  302. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/langchain/cassettes/test_langchain.yaml +0 -0
  303. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/langchain/conftest.py +0 -0
  304. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/langchain/test_langchain.py +0 -0
  305. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  306. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/cassettes/test_async_image_generation.yaml +0 -0
  307. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/cassettes/test_chat_completion.yaml +0 -0
  308. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/cassettes/test_chat_completion_streaming.yaml +0 -0
  309. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/cassettes/test_embeddings_base_url.yaml +0 -0
  310. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/cassettes/test_image_generation.yaml +0 -0
  311. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/conftest.py +0 -0
  312. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/test_chat_completion.py +0 -0
  313. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/test_embeddings.py +0 -0
  314. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/openai/test_image_generation.py +0 -0
  315. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/pinecone/cassettes/test_query.yaml +0 -0
  316. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/pinecone/cassettes/test_upsert.yaml +0 -0
  317. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/pinecone/conftest.py +0 -0
  318. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/pinecone/test_pinecone.py +0 -0
  319. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/qdrant/conftest.py +0 -0
  320. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/qdrant/test_qdrant.py +0 -0
  321. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/src/tests/test_session_id.py +0 -0
  322. {langtrace_python_sdk-3.8.8 → langtrace_python_sdk-3.8.10}/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.8
3
+ Version: 3.8.10
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>
@@ -23,7 +23,7 @@ Requires-Dist: sentry-sdk>=2.14.0
23
23
  Requires-Dist: setuptools
24
24
  Requires-Dist: sqlalchemy
25
25
  Requires-Dist: tiktoken>=0.1.1
26
- Requires-Dist: trace-attributes==7.2.0
26
+ Requires-Dist: trace-attributes==7.2.1
27
27
  Requires-Dist: transformers>=4.11.3
28
28
  Requires-Dist: ujson>=5.10.0
29
29
  Provides-Extra: dev
@@ -18,7 +18,7 @@ classifiers = [
18
18
  "Operating System :: OS Independent",
19
19
  ]
20
20
  dependencies = [
21
- 'trace-attributes==7.2.0',
21
+ 'trace-attributes==7.2.1',
22
22
  'opentelemetry-api>=1.25.0',
23
23
  'opentelemetry-sdk>=1.25.0',
24
24
  'opentelemetry-instrumentation>=0.47b0',
@@ -0,0 +1,8 @@
1
+ from .basic import execute_query
2
+ from langtrace_python_sdk import with_langtrace_root_span
3
+
4
+
5
+ class Neo4jRunner:
6
+ @with_langtrace_root_span("Neo4jRunner")
7
+ def run(self):
8
+ execute_query()
@@ -0,0 +1,26 @@
1
+ import os
2
+ from langtrace_python_sdk import langtrace
3
+ from neo4j import GraphDatabase
4
+
5
+ langtrace.init()
6
+
7
+ def execute_query():
8
+ driver = GraphDatabase.driver(
9
+ os.getenv("NEO4J_URI"),
10
+ auth=(os.getenv("NEO4J_USERNAME"), os.getenv("NEO4J_PASSWORD"))
11
+ )
12
+
13
+ records, summary, keys = driver.execute_query(
14
+ "MATCH (p:Person {age: $age}) RETURN p.name AS name",
15
+ age=42,
16
+ database_=os.getenv("NEO4J_DATABASE"),
17
+ )
18
+
19
+ # Loop through results and do something with them
20
+ for person in records:
21
+ print(person)
22
+ # Summary information
23
+ print("The query `{query}` returned {records_count} records in {time} ms.".format(
24
+ query=summary.query, records_count=len(records),
25
+ time=summary.result_available_after,
26
+ ))
@@ -0,0 +1,9 @@
1
+ import asyncio
2
+ from .basic import search
3
+ from langtrace_python_sdk import with_langtrace_root_span
4
+
5
+
6
+ class Neo4jGraphRagRunner:
7
+ @with_langtrace_root_span("Neo4jGraphRagRunner")
8
+ def run(self):
9
+ asyncio.run(search())
@@ -0,0 +1,52 @@
1
+ import os
2
+ from langtrace_python_sdk import langtrace
3
+ from langtrace_python_sdk.utils.with_root_span import with_langtrace_root_span
4
+ from neo4j import GraphDatabase
5
+ from neo4j_graphrag.generation import GraphRAG
6
+ from neo4j_graphrag.indexes import create_vector_index
7
+ from neo4j_graphrag.llm import OpenAILLM as LLM
8
+ from neo4j_graphrag.embeddings import OpenAIEmbeddings as Embeddings
9
+ from neo4j_graphrag.retrievers import VectorRetriever
10
+ from neo4j_graphrag.experimental.pipeline.kg_builder import SimpleKGPipeline
11
+
12
+ langtrace.init()
13
+
14
+ neo4j_driver = GraphDatabase.driver(os.getenv("NEO4J_URI"), auth=(os.getenv("NEO4J_USERNAME"), os.getenv("NEO4J_PASSWORD")))
15
+
16
+ ex_llm=LLM(
17
+ model_name="gpt-4o-mini",
18
+ model_params={
19
+ "response_format": {"type": "json_object"},
20
+ "temperature": 0
21
+ })
22
+
23
+ embedder = Embeddings()
24
+
25
+ @with_langtrace_root_span("run_neo_rag")
26
+ async def search():
27
+ # 1. Build KG and Store in Neo4j Database
28
+ kg_builder_pdf = SimpleKGPipeline(
29
+ llm=ex_llm,
30
+ driver=neo4j_driver,
31
+ embedder=embedder,
32
+ from_pdf=True
33
+ )
34
+ await kg_builder_pdf.run_async(file_path='src/examples/neo4j_graphrag_example/data/abramov.pdf')
35
+
36
+ create_vector_index(neo4j_driver, name="text_embeddings", label="Chunk",
37
+ embedding_property="embedding", dimensions=1536, similarity_fn="cosine")
38
+
39
+ # 2. KG Retriever
40
+ vector_retriever = VectorRetriever(
41
+ neo4j_driver,
42
+ index_name="text_embeddings",
43
+ embedder=embedder
44
+ )
45
+
46
+ # 3. GraphRAG Class
47
+ llm = LLM(model_name="gpt-4o")
48
+ rag = GraphRAG(llm=llm, retriever=vector_retriever)
49
+
50
+ # 4. Run
51
+ response = rag.search("What did the author do in college?")
52
+ print(response.answer)
@@ -0,0 +1,36 @@
1
+ from langtrace.trace_attributes import Neo4jMethods
2
+
3
+ APIS = {
4
+ "RUN": {
5
+ "METHOD": Neo4jMethods.RUN.value,
6
+ "OPERATION": "run",
7
+ },
8
+ "BEGIN_TRANSACTION": {
9
+ "METHOD": Neo4jMethods.BEGIN_TRANSACTION.value,
10
+ "OPERATION": "begin_transaction",
11
+ },
12
+ "READ_TRANSACTION": {
13
+ "METHOD": Neo4jMethods.READ_TRANSACTION.value,
14
+ "OPERATION": "read_transaction",
15
+ },
16
+ "WRITE_TRANSACTION": {
17
+ "METHOD": Neo4jMethods.WRITE_TRANSACTION.value,
18
+ "OPERATION": "write_transaction",
19
+ },
20
+ "EXECUTE_READ": {
21
+ "METHOD": Neo4jMethods.EXECUTE_READ.value,
22
+ "OPERATION": "execute_read",
23
+ },
24
+ "EXECUTE_WRITE": {
25
+ "METHOD": Neo4jMethods.EXECUTE_WRITE.value,
26
+ "OPERATION": "execute_write",
27
+ },
28
+ "EXECUTE_QUERY": {
29
+ "METHOD": Neo4jMethods.EXECUTE_QUERY.value,
30
+ "OPERATION": "execute_query",
31
+ },
32
+ "TX_RUN": {
33
+ "METHOD": Neo4jMethods.TX_RUN.value,
34
+ "OPERATION": "tx_run",
35
+ },
36
+ }
@@ -22,6 +22,7 @@ from .litellm import LiteLLMInstrumentation
22
22
  from .llamaindex import LlamaindexInstrumentation
23
23
  from .milvus import MilvusInstrumentation
24
24
  from .mistral import MistralInstrumentation
25
+ from .neo4j import Neo4jInstrumentation
25
26
  from .neo4j_graphrag import Neo4jGraphRAGInstrumentation
26
27
  from .ollama import OllamaInstrumentor
27
28
  from .openai import OpenAIInstrumentation
@@ -21,7 +21,7 @@ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
21
21
  from opentelemetry.trace import get_tracer
22
22
  from wrapt import wrap_function_wrapper as _W
23
23
 
24
- from .patch import patch_agent, patch_memory
24
+ from .patch import patch_agent, patch_memory, patch_team
25
25
 
26
26
 
27
27
  class AgnoInstrumentation(BaseInstrumentor):
@@ -76,6 +76,27 @@ class AgnoInstrumentation(BaseInstrumentor):
76
76
  patch_memory("AgentMemory.aupdate_summary", version, tracer),
77
77
  )
78
78
 
79
+ _W(
80
+ "agno.team.team",
81
+ "Team.run",
82
+ patch_team("Team.run", version, tracer),
83
+ )
84
+ _W(
85
+ "agno.team.team",
86
+ "Team.arun",
87
+ patch_team("Team.arun", version, tracer),
88
+ )
89
+ _W(
90
+ "agno.team.team",
91
+ "Team._run",
92
+ patch_team("Team._run", version, tracer),
93
+ )
94
+ _W(
95
+ "agno.team.team",
96
+ "Team._arun",
97
+ patch_team("Team._arun", version, tracer),
98
+ )
99
+
79
100
  except Exception:
80
101
  pass
81
102
 
@@ -26,9 +26,7 @@ from opentelemetry.trace.status import Status, StatusCode
26
26
 
27
27
  from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
28
28
  from langtrace_python_sdk.constants.instrumentation.common import (
29
- LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
30
- SERVICE_PROVIDERS,
31
- )
29
+ LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY, SERVICE_PROVIDERS)
32
30
  from langtrace_python_sdk.utils import set_span_attribute
33
31
  from langtrace_python_sdk.utils.llm import get_span_name, set_span_attributes
34
32
  from langtrace_python_sdk.utils.misc import serialize_args, serialize_kwargs
@@ -62,9 +60,9 @@ def patch_agent(operation_name, version, tracer: Tracer):
62
60
  try:
63
61
  set_span_attributes(span, attributes)
64
62
  AgnoSpanAttributes(span=span, instance=instance)
65
-
63
+
66
64
  result = wrapped(*args, **kwargs)
67
-
65
+
68
66
  span.set_status(Status(StatusCode.OK))
69
67
 
70
68
  if operation_name in ["Agent._run", "Agent._arun", "Agent.run", "Agent.arun", "Agent.print_response"]:
@@ -72,14 +70,14 @@ def patch_agent(operation_name, version, tracer: Tracer):
72
70
  if hasattr(instance, "run_response") and instance.run_response:
73
71
  if hasattr(instance.run_response, "run_id") and instance.run_response.run_id:
74
72
  set_span_attribute(span, "agno.agent.run_id", instance.run_response.run_id)
75
-
73
+
76
74
  if hasattr(instance.run_response, "created_at") and instance.run_response.created_at:
77
75
  set_span_attribute(span, "agno.agent.timestamp", instance.run_response.created_at)
78
76
 
79
77
  if hasattr(instance.run_response, "content") and instance.run_response.content:
80
78
  content = str(instance.run_response.content)
81
79
  set_span_attribute(span, "agno.agent.response_content", content)
82
-
80
+
83
81
  # Capture any tools that were used
84
82
  if hasattr(instance.run_response, "tools") and instance.run_response.tools:
85
83
  tools = instance.run_response.tools
@@ -122,7 +120,7 @@ def patch_agent(operation_name, version, tracer: Tracer):
122
120
  else:
123
121
  set_span_attribute(span, "agno.agent.token_usage.input",
124
122
  metrics['input_tokens'])
125
-
123
+
126
124
  if 'output_tokens' in metrics:
127
125
  if isinstance(metrics['output_tokens'], list) and metrics['output_tokens']:
128
126
  set_span_attribute(span, "agno.agent.token_usage.output",
@@ -130,7 +128,7 @@ def patch_agent(operation_name, version, tracer: Tracer):
130
128
  else:
131
129
  set_span_attribute(span, "agno.agent.token_usage.output",
132
130
  metrics['output_tokens'])
133
-
131
+
134
132
  if 'total_tokens' in metrics:
135
133
  if isinstance(metrics['total_tokens'], list) and metrics['total_tokens']:
136
134
  set_span_attribute(span, "agno.agent.token_usage.total",
@@ -140,21 +138,21 @@ def patch_agent(operation_name, version, tracer: Tracer):
140
138
  metrics['total_tokens'])
141
139
  except Exception as err:
142
140
  set_span_attribute(span, "agno.agent.run_response_error", str(err))
143
-
141
+
144
142
  return result
145
-
143
+
146
144
  except Exception as err:
147
145
  span.record_exception(err)
148
146
  span.set_status(Status(StatusCode.ERROR, str(err)))
149
147
  raise
150
-
148
+
151
149
  return traced_method
152
150
 
153
151
 
154
152
  def patch_memory(operation_name, version, tracer: Tracer):
155
153
  """
156
154
  Apply instrumentation patches to AgentMemory class methods.
157
-
155
+
158
156
  Args:
159
157
  operation_name: The name of the operation
160
158
  version: The version of Agno
@@ -163,7 +161,7 @@ def patch_memory(operation_name, version, tracer: Tracer):
163
161
  def traced_method(wrapped, instance, args, kwargs):
164
162
  service_provider = SERVICE_PROVIDERS.get("AGNO", "agno")
165
163
  extra_attributes = baggage.get_baggage(LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY)
166
-
164
+
167
165
  # Collect basic span attributes
168
166
  span_attributes = {
169
167
  "langtrace.sdk.name": "langtrace-python-sdk",
@@ -180,7 +178,7 @@ def patch_memory(operation_name, version, tracer: Tracer):
180
178
  inputs["args"] = serialize_args(*args)
181
179
  if len(kwargs) > 0:
182
180
  inputs["kwargs"] = serialize_kwargs(**kwargs)
183
-
181
+
184
182
  span_attributes["agno.memory.inputs"] = json.dumps(inputs)
185
183
 
186
184
  if hasattr(instance, "messages"):
@@ -199,10 +197,10 @@ def patch_memory(operation_name, version, tracer: Tracer):
199
197
  try:
200
198
  # Set attributes
201
199
  set_span_attributes(span, attributes)
202
-
200
+
203
201
  # Execute the wrapped method
204
202
  result = wrapped(*args, **kwargs)
205
-
203
+
206
204
  # Add memory stats after operation
207
205
  if hasattr(instance, "messages"):
208
206
  set_span_attribute(span, "agno.memory.messages_count_after", len(instance.messages))
@@ -210,37 +208,153 @@ def patch_memory(operation_name, version, tracer: Tracer):
210
208
  set_span_attribute(span, "agno.memory.runs_count_after", len(instance.runs))
211
209
  if hasattr(instance, "memories") and instance.memories:
212
210
  set_span_attribute(span, "agno.memory.memories_count_after", len(instance.memories))
213
-
211
+
214
212
  # Record execution time
215
213
  set_span_attribute(span, "agno.memory.execution_time_ms", int((time.time() - start_time) * 1000))
216
-
214
+
217
215
  # Record success status
218
216
  span.set_status(Status(StatusCode.OK))
219
-
217
+
220
218
  # Add result if relevant
221
219
  if result is not None:
222
220
  set_span_attribute(span, "agno.memory.result", str(result))
223
-
221
+
224
222
  return result
225
-
223
+
226
224
  except Exception as err:
227
225
  # Record the exception
228
226
  span.record_exception(err)
229
227
  span.set_status(Status(StatusCode.ERROR, str(err)))
230
228
  raise
231
-
229
+
232
230
  return traced_method
233
231
 
234
232
 
233
+ def patch_team(operation_name, version, tracer: Tracer):
234
+ def traced_method(wrapped, instance, args, kwargs):
235
+ service_provider = SERVICE_PROVIDERS.get("AGNO", "agno")
236
+ extra_attributes = baggage.get_baggage(LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY)
237
+
238
+ span_attributes = {
239
+ "langtrace.sdk.name": "langtrace-python-sdk",
240
+ "langtrace.service.name": service_provider,
241
+ "langtrace.service.type": "framework",
242
+ "langtrace.service.version": version,
243
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
244
+ **(extra_attributes if extra_attributes is not None else {}),
245
+ }
246
+
247
+ inputs = {}
248
+ if len(args) > 0:
249
+ inputs["args"] = serialize_args(*args)
250
+ if len(kwargs) > 0:
251
+ inputs["kwargs"] = serialize_kwargs(**kwargs)
252
+ span_attributes["agno.team.inputs"] = json.dumps(inputs)
253
+ attributes = FrameworkSpanAttributes(**span_attributes)
254
+
255
+ with tracer.start_as_current_span(
256
+ get_span_name(operation_name), kind=SpanKind.CLIENT
257
+ ) as span:
258
+ try:
259
+ set_span_attributes(span, attributes)
260
+ AgnoSpanAttributes(span=span, instance=instance)
261
+
262
+ result = wrapped(*args, **kwargs)
263
+
264
+ span.set_status(Status(StatusCode.OK))
265
+
266
+ if operation_name in ["Team.run", "Team.arun", "Team._run", "Team._arun"]:
267
+ try:
268
+ if hasattr(instance, "run_response") and instance.run_response:
269
+ if hasattr(instance.run_response, "run_id") and instance.run_response.run_id:
270
+ set_span_attribute(span, "agno.team.run_id", instance.run_response.run_id)
271
+
272
+ if hasattr(instance.run_response, "created_at") and instance.run_response.created_at:
273
+ set_span_attribute(span, "agno.team.timestamp", instance.run_response.created_at)
274
+
275
+ if hasattr(instance.run_response, "content") and instance.run_response.content:
276
+ content = str(instance.run_response.content)
277
+ set_span_attribute(span, "agno.team.response_content", content)
278
+
279
+ # Capture any tools that were used
280
+ if hasattr(instance.run_response, "tools") and instance.run_response.tools:
281
+ tools = instance.run_response.tools
282
+ tool_summary = []
283
+ for tool in tools:
284
+ if 'tool_name' in tool:
285
+ tool_summary.append(tool['tool_name'])
286
+ elif 'function' in tool and 'name' in tool['function']:
287
+ tool_summary.append(tool['function']['name'])
288
+ set_span_attribute(span, "agno.team.tools_used", json.dumps(tool_summary))
289
+
290
+ if hasattr(instance.run_response, "metrics") and instance.run_response.metrics:
291
+ metrics = instance.run_response.metrics
292
+ for metric_name, metric_values in metrics.items():
293
+ if isinstance(metric_values, list):
294
+
295
+ if all(isinstance(v, (int, float)) for v in metric_values):
296
+ set_span_attribute(
297
+ span,
298
+ f"agno.team.metrics.{metric_name}",
299
+ sum(metric_values) / len(metric_values) if metric_values else 0
300
+ )
301
+ elif len(metric_values) > 0:
302
+ set_span_attribute(
303
+ span,
304
+ f"agno.team.metrics.{metric_name}",
305
+ str(metric_values[-1])
306
+ )
307
+ else:
308
+ set_span_attribute(
309
+ span,
310
+ f"agno.team.metrics.{metric_name}",
311
+ str(metric_values)
312
+ )
313
+
314
+ if 'input_tokens' in metrics:
315
+ if isinstance(metrics['input_tokens'], list) and metrics['input_tokens']:
316
+ set_span_attribute(span, "agno.team.token_usage.input",
317
+ sum(metrics['input_tokens']))
318
+ else:
319
+ set_span_attribute(span, "agno.team.token_usage.input",
320
+ metrics['input_tokens'])
321
+
322
+ if 'output_tokens' in metrics:
323
+ if isinstance(metrics['output_tokens'], list) and metrics['output_tokens']:
324
+ set_span_attribute(span, "agno.team.token_usage.output",
325
+ sum(metrics['output_tokens']))
326
+ else:
327
+ set_span_attribute(span, "agno.team.token_usage.output",
328
+ metrics['output_tokens'])
329
+
330
+ if 'total_tokens' in metrics:
331
+ if isinstance(metrics['total_tokens'], list) and metrics['total_tokens']:
332
+ set_span_attribute(span, "agno.team.token_usage.total",
333
+ sum(metrics['total_tokens']))
334
+ else:
335
+ set_span_attribute(span, "agno.team.token_usage.total",
336
+ metrics['total_tokens'])
337
+ except Exception as err:
338
+ set_span_attribute(span, "agno.team.run_response_error", str(err))
339
+
340
+ return result
341
+
342
+ except Exception as err:
343
+ span.record_exception(err)
344
+ span.set_status(Status(StatusCode.ERROR, str(err)))
345
+ raise
346
+
347
+ return traced_method
348
+
235
349
  class AgnoSpanAttributes:
236
350
  """
237
351
  Helper class to extract and set Agno Agent attributes on spans.
238
352
  """
239
-
353
+
240
354
  def __init__(self, span: Span, instance: Any) -> None:
241
355
  """
242
356
  Initialize with a span and Agno instance.
243
-
357
+
244
358
  Args:
245
359
  span: OpenTelemetry span to update
246
360
  instance: Agno Agent instance
@@ -248,14 +362,14 @@ class AgnoSpanAttributes:
248
362
  self.span = span
249
363
  self.instance = instance
250
364
  self.agent_data = {}
251
-
365
+
252
366
  self.run()
253
-
367
+
254
368
  def run(self) -> None:
255
369
  """Process the instance attributes and add them to the span."""
256
370
  # Collect basic agent attributes
257
371
  self.collect_agent_attributes()
258
-
372
+
259
373
  # Add attributes to span
260
374
  for key, value in self.agent_data.items():
261
375
  if value is not None:
@@ -264,68 +378,68 @@ class AgnoSpanAttributes:
264
378
  f"agno.agent.{key}",
265
379
  str(value) if not isinstance(value, (int, float, bool)) else value
266
380
  )
267
-
381
+
268
382
  def collect_agent_attributes(self) -> None:
269
383
  """Collect important attributes from the Agent instance."""
270
384
  # Extract basic agent information
271
385
  if hasattr(self.instance, "agent_id"):
272
386
  self.agent_data["id"] = self.instance.agent_id
273
-
387
+
274
388
  if hasattr(self.instance, "name"):
275
389
  self.agent_data["name"] = self.instance.name
276
-
390
+
277
391
  if hasattr(self.instance, "session_id"):
278
392
  self.agent_data["session_id"] = self.instance.session_id
279
-
393
+
280
394
  if hasattr(self.instance, "user_id"):
281
395
  self.agent_data["user_id"] = self.instance.user_id
282
-
396
+
283
397
  if hasattr(self.instance, "run_id"):
284
398
  self.agent_data["run_id"] = self.instance.run_id
285
-
286
- # Extract model information
399
+
400
+ # Extract model information
287
401
  if hasattr(self.instance, "model") and self.instance.model:
288
402
  model = self.instance.model
289
403
  model_info = {}
290
-
404
+
291
405
  if hasattr(model, "id"):
292
406
  model_info["id"] = model.id
293
-
407
+
294
408
  if hasattr(model, "name"):
295
409
  model_info["name"] = model.name
296
-
410
+
297
411
  if hasattr(model, "provider"):
298
412
  model_info["provider"] = model.provider
299
-
413
+
300
414
  # Add temperature if available
301
415
  if hasattr(model, "temperature") and model.temperature is not None:
302
416
  model_info["temperature"] = model.temperature
303
-
417
+
304
418
  # Add max_tokens if available
305
419
  if hasattr(model, "max_tokens") and model.max_tokens is not None:
306
420
  model_info["max_tokens"] = model.max_tokens
307
-
421
+
308
422
  self.agent_data["model"] = json.dumps(model_info)
309
-
423
+
310
424
  # Extract tool information
311
425
  if hasattr(self.instance, "tools") and self.instance.tools:
312
426
  tool_info = []
313
427
  for tool in self.instance.tools:
314
428
  tool_data = {}
315
-
429
+
316
430
  # Handle different types of tools
317
431
  if hasattr(tool, "name"):
318
432
  tool_data["name"] = tool.name
319
-
433
+
320
434
  # Handle DuckDuckGoTools and similar toolkits
321
435
  if hasattr(tool, "functions") and isinstance(tool.functions, dict):
322
436
  tool_data["functions"] = list(tool.functions.keys())
323
-
437
+
324
438
  elif hasattr(tool, "__name__"):
325
439
  tool_data["name"] = tool.__name__
326
440
  else:
327
441
  tool_data["name"] = str(tool)
328
-
442
+
329
443
  # Add functions if available
330
444
  if not "functions" in tool_data and hasattr(tool, "functions"):
331
445
  if callable(getattr(tool, "functions")):
@@ -336,28 +450,28 @@ class AgnoSpanAttributes:
336
450
  for f in tool_functions]
337
451
  except:
338
452
  pass
339
-
453
+
340
454
  tool_info.append(tool_data)
341
-
455
+
342
456
  self.agent_data["tools"] = json.dumps(tool_info)
343
-
457
+
344
458
  # Extract reasoning settings
345
459
  if hasattr(self.instance, "reasoning") and self.instance.reasoning:
346
460
  self.agent_data["reasoning_enabled"] = True
347
-
461
+
348
462
  if hasattr(self.instance, "reasoning_model") and self.instance.reasoning_model:
349
463
  self.agent_data["reasoning_model"] = str(self.instance.reasoning_model.id)
350
-
464
+
351
465
  if hasattr(self.instance, "reasoning_min_steps"):
352
466
  self.agent_data["reasoning_min_steps"] = self.instance.reasoning_min_steps
353
-
467
+
354
468
  if hasattr(self.instance, "reasoning_max_steps"):
355
469
  self.agent_data["reasoning_max_steps"] = self.instance.reasoning_max_steps
356
-
470
+
357
471
  # Extract knowledge settings
358
472
  if hasattr(self.instance, "knowledge") and self.instance.knowledge:
359
473
  self.agent_data["knowledge_enabled"] = True
360
-
474
+
361
475
  # Extract streaming settings
362
476
  if hasattr(self.instance, "stream"):
363
- self.agent_data["stream"] = self.instance.stream
477
+ self.agent_data["stream"] = self.instance.stream
@@ -8,7 +8,7 @@ from .patch import patch_google_genai, patch_google_genai_streaming
8
8
 
9
9
  class GoogleGenaiInstrumentation(BaseInstrumentor):
10
10
  def instrumentation_dependencies(self) -> Collection[str]:
11
- return ["google-genai >= 0.1.0", "google-generativeai < 1.0.0"]
11
+ return ["google-genai >= 0.1.0"]
12
12
 
13
13
  def _instrument(self, **kwargs):
14
14
  trace_provider = kwargs.get("tracer_provider")
@@ -0,0 +1,3 @@
1
+ from .instrumentation import Neo4jInstrumentation
2
+
3
+ __all__ = ["Neo4jInstrumentation"]