langtrace-python-sdk 2.3.18__tar.gz → 2.3.19__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 (245) hide show
  1. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/PKG-INFO +1 -1
  2. langtrace_python_sdk-2.3.19/src/examples/dspy_example/QA_basic.py +20 -0
  3. langtrace_python_sdk-2.3.19/src/examples/dspy_example/QA_basic_with_chain_of_thought.py +28 -0
  4. langtrace_python_sdk-2.3.19/src/examples/dspy_example/QA_basic_with_signature.py +30 -0
  5. langtrace_python_sdk-2.3.19/src/examples/dspy_example/QA_multi_step_with_chain_of_thought.py +41 -0
  6. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/extensions/langtrace_exporter.py +1 -1
  7. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/anthropic/patch.py +5 -10
  8. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/autogen/instrumentation.py +0 -6
  9. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/dspy/patch.py +63 -40
  10. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/utils/llm.py +4 -3
  11. langtrace_python_sdk-2.3.19/src/langtrace_python_sdk/version.py +1 -0
  12. langtrace_python_sdk-2.3.18/src/langtrace_python_sdk/version.py +0 -1
  13. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/.gitignore +0 -0
  14. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/LICENSE +0 -0
  15. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/README.md +0 -0
  16. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/pyproject.toml +0 -0
  17. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/__init__.py +0 -0
  18. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/__init__.py +0 -0
  19. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/anthropic_example/__init__.py +0 -0
  20. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/anthropic_example/completion.py +0 -0
  21. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/autogen_example/__init__.py +0 -0
  22. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/autogen_example/main.py +0 -0
  23. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/azureopenai_example/__init__.py +0 -0
  24. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/azureopenai_example/completion.py +0 -0
  25. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/chroma_example/__init__.py +0 -0
  26. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/chroma_example/basic.py +0 -0
  27. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/cohere_example/__init__.py +0 -0
  28. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/cohere_example/chat.py +0 -0
  29. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/cohere_example/chat_stream.py +0 -0
  30. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/cohere_example/embed.py +0 -0
  31. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/cohere_example/rerank.py +0 -0
  32. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/cohere_example/tools.py +0 -0
  33. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/__init__.py +0 -0
  34. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/basic.py +0 -0
  35. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/instagram_post/__init__.py +0 -0
  36. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/instagram_post/agents.py +0 -0
  37. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/instagram_post/main.py +0 -0
  38. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/instagram_post/tasks.py +0 -0
  39. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/instagram_post/tools/__init__.py +0 -0
  40. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/instagram_post/tools/browser_tools.py +0 -0
  41. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/simple_agent/__init__.py +0 -0
  42. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/simple_agent/agents.py +0 -0
  43. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/simple_agent/main.py +0 -0
  44. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/simple_agent/tasks.py +0 -0
  45. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/trip_planner/__init__.py +0 -0
  46. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/trip_planner/agents.py +0 -0
  47. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/trip_planner/main.py +0 -0
  48. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/trip_planner/tasks.py +0 -0
  49. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/trip_planner/tools/calculator.py +0 -0
  50. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/crewai_example/trip_planner/tools/search_tools.py +0 -0
  51. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/dspy_example/math_problems_cot.py +0 -0
  52. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/dspy_example/math_problems_cot_parallel.py +0 -0
  53. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/dspy_example/program_of_thought_basic.py +0 -0
  54. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/dspy_example/quiz_gen.py +0 -0
  55. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/dspy_example/react.py +0 -0
  56. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/embedchain_example/simple.py +0 -0
  57. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/fastapi_example/__init__.py +0 -0
  58. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/fastapi_example/basic_route.py +0 -0
  59. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/gemini_example/__init__.py +0 -0
  60. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/gemini_example/function_tools.py +0 -0
  61. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/gemini_example/main.py +0 -0
  62. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/hiveagent_example/basic.py +0 -0
  63. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/inspect_ai_example/basic_eval.py +0 -0
  64. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/langchain_example/__init__.py +0 -0
  65. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/langchain_example/basic.py +0 -0
  66. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/langchain_example/groq_example.py +0 -0
  67. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/langchain_example/langchain_google_example.py +0 -0
  68. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/langchain_example/langgraph_example.py +0 -0
  69. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/langchain_example/langgraph_example_tools.py +0 -0
  70. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/langchain_example/sagemaker.py +0 -0
  71. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/langchain_example/tool.py +0 -0
  72. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/litellm_example/basic.py +0 -0
  73. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/llamaindex_example/__init__.py +0 -0
  74. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/llamaindex_example/agent.py +0 -0
  75. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/llamaindex_example/basic.py +0 -0
  76. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/llamaindex_example/data/abramov.txt +0 -0
  77. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/mistral_example/__init__.py +0 -0
  78. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/mistral_example/complete.py +0 -0
  79. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/mistral_example/complete_async.py +0 -0
  80. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/mistral_example/embeddings.py +0 -0
  81. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/ollama_example/__init__.py +0 -0
  82. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/ollama_example/basic.py +0 -0
  83. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/__init__.py +0 -0
  84. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/async_tool_calling_nonstreaming.py +0 -0
  85. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/async_tool_calling_streaming.py +0 -0
  86. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/chat_completion.py +0 -0
  87. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/chat_completion_tool_choice.py +0 -0
  88. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/embeddings_create.py +0 -0
  89. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/function_calling.py +0 -0
  90. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/images_edit.py +0 -0
  91. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/images_generate.py +0 -0
  92. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/resources/lounge_flamingo.png +0 -0
  93. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/resources/mask.png +0 -0
  94. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/send_user_feedback.py +0 -0
  95. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/tool_calling.py +0 -0
  96. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/tool_calling_nonstreaming.py +0 -0
  97. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/openai_example/tool_calling_streaming.py +0 -0
  98. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/otlp_example/otlp_basic.py +0 -0
  99. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/otlp_example/otlp_with_langtrace.py +0 -0
  100. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/perplexity_example/basic.py +0 -0
  101. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/pinecone_example/__init__.py +0 -0
  102. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/pinecone_example/basic.py +0 -0
  103. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/qdrant_example/__init__.py +0 -0
  104. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/qdrant_example/basic.py +0 -0
  105. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/routellm_example/basic.py +0 -0
  106. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/vertexai_example/__init__.py +0 -0
  107. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/vertexai_example/main.py +0 -0
  108. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/weaviate_example/__init__.py +0 -0
  109. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/examples/weaviate_example/query_text.py +0 -0
  110. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/__init__.py +0 -0
  111. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/__init__.py +0 -0
  112. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/exporter/langtrace_exporter.py +0 -0
  113. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/__init__.py +0 -0
  114. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/anthropic.py +0 -0
  115. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/chroma.py +0 -0
  116. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/cohere.py +0 -0
  117. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/common.py +0 -0
  118. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/embedchain.py +0 -0
  119. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/gemini.py +0 -0
  120. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/groq.py +0 -0
  121. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/mistral.py +0 -0
  122. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/ollama.py +0 -0
  123. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/openai.py +0 -0
  124. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/pinecone.py +0 -0
  125. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/qdrant.py +0 -0
  126. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/vertexai.py +0 -0
  127. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/constants/instrumentation/weaviate.py +0 -0
  128. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/extensions/__init__.py +0 -0
  129. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/extensions/langtrace_filesystem.py +0 -0
  130. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/__init__.py +0 -0
  131. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/anthropic/__init__.py +0 -0
  132. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/anthropic/instrumentation.py +0 -0
  133. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/anthropic/types.py +0 -0
  134. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/autogen/__init__.py +0 -0
  135. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/autogen/patch.py +0 -0
  136. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/chroma/__init__.py +0 -0
  137. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/chroma/instrumentation.py +0 -0
  138. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/chroma/patch.py +0 -0
  139. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/cohere/__init__.py +0 -0
  140. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/cohere/instrumentation.py +0 -0
  141. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/cohere/patch.py +0 -0
  142. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/crewai/__init__.py +0 -0
  143. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/crewai/instrumentation.py +0 -0
  144. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/crewai/patch.py +0 -0
  145. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/dspy/__init__.py +0 -0
  146. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/dspy/instrumentation.py +0 -0
  147. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/embedchain/__init__.py +0 -0
  148. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/embedchain/instrumentation.py +0 -0
  149. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/embedchain/patch.py +0 -0
  150. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/gemini/__init__.py +0 -0
  151. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/gemini/instrumentation.py +0 -0
  152. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/gemini/patch.py +0 -0
  153. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/groq/__init__.py +0 -0
  154. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/groq/instrumentation.py +0 -0
  155. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/groq/patch.py +0 -0
  156. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langchain/__init__.py +0 -0
  157. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langchain/instrumentation.py +0 -0
  158. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langchain/patch.py +0 -0
  159. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langchain_community/__init__.py +0 -0
  160. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py +0 -0
  161. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langchain_community/patch.py +0 -0
  162. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langchain_core/__init__.py +0 -0
  163. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py +0 -0
  164. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langchain_core/patch.py +0 -0
  165. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langgraph/__init__.py +0 -0
  166. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langgraph/instrumentation.py +0 -0
  167. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/langgraph/patch.py +0 -0
  168. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/llamaindex/__init__.py +0 -0
  169. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py +0 -0
  170. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/llamaindex/patch.py +0 -0
  171. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/mistral/__init__.py +0 -0
  172. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/mistral/instrumentation.py +0 -0
  173. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/mistral/patch.py +0 -0
  174. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/ollama/__init__.py +0 -0
  175. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/ollama/instrumentation.py +0 -0
  176. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/ollama/patch.py +0 -0
  177. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/openai/__init__.py +0 -0
  178. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/openai/instrumentation.py +0 -0
  179. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/openai/patch.py +0 -0
  180. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/openai/types.py +0 -0
  181. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/pinecone/__init__.py +0 -0
  182. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py +0 -0
  183. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/pinecone/patch.py +0 -0
  184. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/qdrant/__init__.py +0 -0
  185. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/qdrant/instrumentation.py +0 -0
  186. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/qdrant/patch.py +0 -0
  187. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/vertexai/__init__.py +0 -0
  188. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/vertexai/instrumentation.py +0 -0
  189. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/vertexai/patch.py +0 -0
  190. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/weaviate/__init__.py +0 -0
  191. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/weaviate/instrumentation.py +0 -0
  192. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/instrumentation/weaviate/patch.py +0 -0
  193. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/langtrace.py +0 -0
  194. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/types/__init__.py +0 -0
  195. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/utils/__init__.py +0 -0
  196. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/utils/langtrace_sampler.py +0 -0
  197. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/utils/misc.py +0 -0
  198. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/utils/prompt_registry.py +0 -0
  199. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/utils/sdk_version_checker.py +0 -0
  200. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/utils/silently_fail.py +0 -0
  201. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/utils/types.py +0 -0
  202. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/langtrace_python_sdk/utils/with_root_span.py +0 -0
  203. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/run_example.py +0 -0
  204. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/__init__.py +0 -0
  205. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/anthropic/cassettes/test_anthropic.yaml +0 -0
  206. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/anthropic/cassettes/test_anthropic_streaming.yaml +0 -0
  207. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/anthropic/cassettes/test_async_anthropic_streaming.yaml +0 -0
  208. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/anthropic/conftest.py +0 -0
  209. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/anthropic/test_anthropic.py +0 -0
  210. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/chroma/conftest.py +0 -0
  211. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/chroma/test_chroma.py +0 -0
  212. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/cohere/cassettes/test_cohere_chat.yaml +0 -0
  213. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/cohere/cassettes/test_cohere_chat_streaming.yaml +0 -0
  214. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/cohere/cassettes/test_cohere_embed.yaml +0 -0
  215. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/cohere/cassettes/test_cohere_rerank.yaml +0 -0
  216. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/cohere/conftest.py +0 -0
  217. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/cohere/test_cohere_chat.py +0 -0
  218. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/cohere/test_cohere_embed.py +0 -0
  219. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/cohere/test_cohere_rerank.py +0 -0
  220. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/conftest.py +0 -0
  221. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/groq/cassettes/test_async_chat_completion.yaml +0 -0
  222. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/groq/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  223. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/groq/cassettes/test_chat_completion.yaml +0 -0
  224. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/groq/cassettes/test_chat_completion_streaming.yaml +0 -0
  225. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/groq/conftest.py +0 -0
  226. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/groq/test_groq.py +0 -0
  227. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/langchain/cassettes/test_langchain.yaml +0 -0
  228. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/langchain/conftest.py +0 -0
  229. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/langchain/test_langchain.py +0 -0
  230. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/openai/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  231. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/openai/cassettes/test_async_image_generation.yaml +0 -0
  232. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/openai/cassettes/test_chat_completion.yaml +0 -0
  233. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/openai/cassettes/test_chat_completion_streaming.yaml +0 -0
  234. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/openai/cassettes/test_image_generation.yaml +0 -0
  235. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/openai/conftest.py +0 -0
  236. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/openai/test_chat_completion.py +0 -0
  237. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/openai/test_embeddings.py +0 -0
  238. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/openai/test_image_generation.py +0 -0
  239. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/pinecone/cassettes/test_query.yaml +0 -0
  240. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/pinecone/cassettes/test_upsert.yaml +0 -0
  241. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/pinecone/conftest.py +0 -0
  242. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/pinecone/test_pinecone.py +0 -0
  243. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/qdrant/conftest.py +0 -0
  244. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/qdrant/test_qdrant.py +0 -0
  245. {langtrace_python_sdk-2.3.18 → langtrace_python_sdk-2.3.19}/src/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langtrace-python-sdk
3
- Version: 2.3.18
3
+ Version: 2.3.19
4
4
  Summary: Python SDK for LangTrace
5
5
  Project-URL: Homepage, https://github.com/Scale3-Labs/langtrace-python-sdk
6
6
  Author-email: Scale3 Labs <engineering@scale3labs.com>
@@ -0,0 +1,20 @@
1
+ import dspy
2
+ from langtrace_python_sdk import langtrace
3
+ from dotenv import load_dotenv
4
+
5
+ load_dotenv()
6
+
7
+ langtrace.init(disable_instrumentations={"all_except": ["dspy", "anthropic"]})
8
+
9
+ # configure the language model to be used by dspy
10
+
11
+ llm = dspy.Claude()
12
+ dspy.settings.configure(lm=llm)
13
+
14
+ # create a prompt format that says that the llm will take a question and give back an answer
15
+ predict = dspy.Predict("question -> answer")
16
+ prediction = predict(
17
+ question="who scored the final goal in football world cup finals in 2014?"
18
+ )
19
+
20
+ print(prediction.answer)
@@ -0,0 +1,28 @@
1
+ import dspy
2
+ from langtrace_python_sdk import langtrace
3
+ from dotenv import load_dotenv
4
+
5
+ load_dotenv()
6
+
7
+ langtrace.init(disable_instrumentations={"all_except": ["dspy", "anthropic"]})
8
+
9
+ # configure the language model to be used by dspy
10
+ llm = dspy.Claude()
11
+ dspy.settings.configure(lm=llm)
12
+
13
+
14
+ # create a signature for basic question answering
15
+ class BasicQA(dspy.Signature):
16
+ """Given a question, generate the answer."""
17
+
18
+ question = dspy.InputField(desc="User's question")
19
+ answer = dspy.OutputField(desc="often between 1 and 5 words")
20
+
21
+
22
+ # create a prompt format that says that the llm will take a question and give back an answer
23
+ predict = dspy.ChainOfThought(BasicQA)
24
+ prediction = predict(
25
+ question="Who provided the assist for the final goal in the 2014 FIFA World Cup final?"
26
+ )
27
+
28
+ print(prediction.answer)
@@ -0,0 +1,30 @@
1
+ import dspy
2
+ from langtrace_python_sdk import langtrace
3
+ from dotenv import load_dotenv
4
+
5
+ load_dotenv()
6
+
7
+ langtrace.init(disable_instrumentations={"all_except": ["dspy", "anthropic"]})
8
+
9
+ # configure the language model to be used by dspy
10
+ llm = dspy.Claude()
11
+ dspy.settings.configure(lm=llm)
12
+
13
+
14
+ # create a signature for basic question answering
15
+ class BasicQA(dspy.Signature):
16
+ """Answer questions with short factoid answers."""
17
+
18
+ question = dspy.InputField(
19
+ desc="A question that can be answered with a short factoid answer"
20
+ )
21
+ answer = dspy.OutputField(desc="often between 1 and 5 words")
22
+
23
+
24
+ # create a prompt format that says that the llm will take a question and give back an answer
25
+ predict = dspy.Predict(BasicQA)
26
+ prediction = predict(
27
+ question="Sarah has 5 apples. She buys 7 more apples from the store. How many apples does Sarah have now?"
28
+ )
29
+
30
+ print(prediction.answer)
@@ -0,0 +1,41 @@
1
+ import dspy
2
+ from langtrace_python_sdk import langtrace, with_langtrace_root_span
3
+ from dotenv import load_dotenv
4
+
5
+ load_dotenv()
6
+
7
+ langtrace.init(disable_instrumentations={"all_except": ["dspy", "anthropic"]})
8
+
9
+ # configure the language model to be used by dspy
10
+ llm = dspy.Claude()
11
+ dspy.settings.configure(lm=llm)
12
+
13
+
14
+ # create a signature for basic question answering
15
+ class BasicQA(dspy.Signature):
16
+ """Given a question, generate the answer."""
17
+
18
+ question = dspy.InputField(desc="User's question")
19
+ answer = dspy.OutputField(desc="often between 1 and 5 words")
20
+
21
+
22
+ class DoubleChainOfThought(dspy.Module):
23
+ def __init__(self):
24
+ self.cot1 = dspy.ChainOfThought("question -> step_by_step_thought")
25
+ self.cot2 = dspy.ChainOfThought("question, thought -> one_word_answer")
26
+
27
+ def forward(self, question):
28
+ thought = self.cot1(question=question).step_by_step_thought
29
+ answer = self.cot2(question=question, thought=thought).one_word_answer
30
+ return dspy.Prediction(thought=thought, answer=answer)
31
+
32
+
33
+ @with_langtrace_root_span(name="Double Chain Of thought")
34
+ def main():
35
+ multi_step_question = "what is the capital of the birth state of the person who provided the assist for the Mario Gotze's in football world cup in 2014?"
36
+ double_cot = DoubleChainOfThought()
37
+ result = double_cot(question=multi_step_question)
38
+ print(result)
39
+
40
+
41
+ main()
@@ -124,7 +124,7 @@ class LangTraceExporter(SpanExporter):
124
124
  url=f"{self.api_host}",
125
125
  data=json.dumps(data),
126
126
  headers=headers,
127
- timeout=20,
127
+ timeout=40,
128
128
  )
129
129
 
130
130
  if not response.ok:
@@ -14,10 +14,8 @@ See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  """
16
16
 
17
- from typing import Any, Callable, Dict, List, Optional, Iterator, TypedDict, Union
18
- from langtrace.trace_attributes import Event, SpanAttributes, LLMSpanAttributes
19
- from langtrace_python_sdk.utils import set_span_attribute
20
- from langtrace_python_sdk.utils.silently_fail import silently_fail
17
+ from typing import Any, Callable, List, Iterator, Union
18
+ from langtrace.trace_attributes import SpanAttributes, LLMSpanAttributes
21
19
  import json
22
20
 
23
21
  from langtrace_python_sdk.utils.llm import (
@@ -28,6 +26,7 @@ from langtrace_python_sdk.utils.llm import (
28
26
  get_llm_url,
29
27
  get_span_name,
30
28
  set_event_completion,
29
+ set_span_attributes,
31
30
  set_usage_attributes,
32
31
  set_span_attribute,
33
32
  )
@@ -39,8 +38,6 @@ from langtrace_python_sdk.instrumentation.anthropic.types import (
39
38
  StreamingResult,
40
39
  ResultType,
41
40
  MessagesCreateKwargs,
42
- ContentItem,
43
- Usage,
44
41
  )
45
42
 
46
43
 
@@ -62,13 +59,12 @@ def messages_create(version: str, tracer: Tracer) -> Callable[..., Any]:
62
59
  prompts = [{"role": "system", "content": system}] + kwargs.get(
63
60
  "messages", []
64
61
  )
65
- extraAttributes = get_extra_attributes()
66
62
  span_attributes = {
67
63
  **get_langtrace_attributes(version, service_provider),
68
64
  **get_llm_request_attributes(kwargs, prompts=prompts),
69
65
  **get_llm_url(instance),
70
66
  SpanAttributes.LLM_PATH: APIS["MESSAGES_CREATE"]["ENDPOINT"],
71
- **extraAttributes, # type: ignore
67
+ **get_extra_attributes(),
72
68
  }
73
69
 
74
70
  attributes = LLMSpanAttributes(**span_attributes)
@@ -76,8 +72,7 @@ def messages_create(version: str, tracer: Tracer) -> Callable[..., Any]:
76
72
  span = tracer.start_span(
77
73
  name=get_span_name(APIS["MESSAGES_CREATE"]["METHOD"]), kind=SpanKind.CLIENT
78
74
  )
79
- for field, value in attributes.model_dump(by_alias=True).items():
80
- set_span_attribute(span, field, value)
75
+ set_span_attributes(span, attributes)
81
76
  try:
82
77
  # Attempt to call the original method
83
78
  result = wrapped(*args, **kwargs)
@@ -10,15 +10,9 @@ class AutogenInstrumentation(BaseInstrumentor):
10
10
  return ["autogen >= 0.1.0"]
11
11
 
12
12
  def _instrument(self, **kwargs):
13
- print("Instrumneting autogen")
14
13
  tracer_provider = kwargs.get("tracer_provider")
15
14
  tracer = get_tracer(__name__, "", tracer_provider)
16
15
  version = v("autogen")
17
- # conversable_agent.intiate_chat
18
- # conversable_agent.register_function
19
- # agent.Agent
20
- # AgentCreation
21
- # Tools --> Register_for_llm, register_for_execution, register_for_function
22
16
  try:
23
17
  _W(
24
18
  module="autogen.agentchat.conversable_agent",
@@ -2,6 +2,12 @@ import json
2
2
  from importlib_metadata import version as v
3
3
  from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
4
4
  from langtrace_python_sdk.utils import set_span_attribute
5
+ from langtrace_python_sdk.utils.llm import (
6
+ get_extra_attributes,
7
+ get_langtrace_attributes,
8
+ get_span_name,
9
+ set_span_attributes,
10
+ )
5
11
  from langtrace_python_sdk.utils.silently_fail import silently_fail
6
12
  from langtrace_python_sdk.constants.instrumentation.common import (
7
13
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
@@ -39,25 +45,29 @@ def patch_bootstrapfewshot_optimizer(operation_name, version, tracer):
39
45
  ),
40
46
  }
41
47
  span_attributes["dspy.optimizer.module.prog"] = json.dumps(prog)
42
- if hasattr(instance, 'metric'):
43
- span_attributes["dspy.optimizer.metric"] = getattr(instance, 'metric').__name__
48
+ if hasattr(instance, "metric"):
49
+ span_attributes["dspy.optimizer.metric"] = getattr(
50
+ instance, "metric"
51
+ ).__name__
44
52
  if kwargs.get("trainset") and len(kwargs.get("trainset")) > 0:
45
53
  span_attributes["dspy.optimizer.trainset"] = str(kwargs.get("trainset"))
46
54
  config = {}
47
- if hasattr(instance, 'metric_threshold'):
48
- config["metric_threshold"] = getattr(instance, 'metric_threshold')
49
- if hasattr(instance, 'teacher_settings'):
50
- config["teacher_settings"] = getattr(instance, 'teacher_settings')
51
- if hasattr(instance, 'max_bootstrapped_demos'):
52
- config["max_bootstrapped_demos"] = getattr(instance, 'max_bootstrapped_demos')
53
- if hasattr(instance, 'max_labeled_demos'):
54
- config["max_labeled_demos"] = getattr(instance, 'max_labeled_demos')
55
- if hasattr(instance, 'max_rounds'):
56
- config["max_rounds"] = getattr(instance, 'max_rounds')
57
- if hasattr(instance, 'max_steps'):
58
- config["max_errors"] = getattr(instance, 'max_errors')
59
- if hasattr(instance, 'error_count'):
60
- config["error_count"] = getattr(instance, 'error_count')
55
+ if hasattr(instance, "metric_threshold"):
56
+ config["metric_threshold"] = getattr(instance, "metric_threshold")
57
+ if hasattr(instance, "teacher_settings"):
58
+ config["teacher_settings"] = getattr(instance, "teacher_settings")
59
+ if hasattr(instance, "max_bootstrapped_demos"):
60
+ config["max_bootstrapped_demos"] = getattr(
61
+ instance, "max_bootstrapped_demos"
62
+ )
63
+ if hasattr(instance, "max_labeled_demos"):
64
+ config["max_labeled_demos"] = getattr(instance, "max_labeled_demos")
65
+ if hasattr(instance, "max_rounds"):
66
+ config["max_rounds"] = getattr(instance, "max_rounds")
67
+ if hasattr(instance, "max_steps"):
68
+ config["max_errors"] = getattr(instance, "max_errors")
69
+ if hasattr(instance, "error_count"):
70
+ config["error_count"] = getattr(instance, "error_count")
61
71
  if config and len(config) > 0:
62
72
  span_attributes["dspy.optimizer.config"] = json.dumps(config)
63
73
 
@@ -96,37 +106,36 @@ def patch_signature(operation_name, version, tracer):
96
106
  def traced_method(wrapped, instance, args, kwargs):
97
107
 
98
108
  service_provider = SERVICE_PROVIDERS["DSPY"]
99
- extra_attributes = baggage.get_baggage(LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY)
100
109
  span_attributes = {
101
- "langtrace.sdk.name": "langtrace-python-sdk",
102
- "langtrace.service.name": service_provider,
103
- "langtrace.service.type": "framework",
104
- "langtrace.service.version": version,
105
- "langtrace.version": v(LANGTRACE_SDK_NAME),
106
- **(extra_attributes if extra_attributes is not None else {}),
110
+ **get_langtrace_attributes(
111
+ service_provider=service_provider,
112
+ version=version,
113
+ vendor_type="framework",
114
+ ),
115
+ **get_extra_attributes(),
107
116
  }
108
117
 
109
- # passed operation name
110
- opname = operation_name
111
- if extra_attributes is not None and "langtrace.span.name" in extra_attributes:
112
- # append the operation name to the span name
113
- opname = f"{operation_name}-{extra_attributes['langtrace.span.name']}"
114
-
115
118
  if instance.__class__.__name__:
116
119
  span_attributes["dspy.signature.name"] = instance.__class__.__name__
117
- span_attributes["dspy.signature"] = str(instance)
120
+ span_attributes["dspy.signature"] = str(instance.signature)
118
121
 
119
122
  if kwargs and len(kwargs) > 0:
120
123
  span_attributes["dspy.signature.args"] = str(kwargs)
121
124
 
122
125
  attributes = FrameworkSpanAttributes(**span_attributes)
123
- with tracer.start_as_current_span(opname, kind=SpanKind.CLIENT) as span:
124
- _set_input_attributes(span, kwargs, attributes)
126
+ with tracer.start_as_current_span(
127
+ get_span_name(operation_name=operation_name), kind=SpanKind.CLIENT
128
+ ) as span:
129
+ set_span_attributes(span, attributes)
125
130
 
126
131
  try:
127
132
  result = wrapped(*args, **kwargs)
128
133
  if result:
129
- set_span_attribute(span, "dspy.signature.result", str(result))
134
+ set_span_attribute(
135
+ span,
136
+ "dspy.signature.result",
137
+ json.dumps(result.toDict()),
138
+ )
130
139
  span.set_status(Status(StatusCode.OK))
131
140
 
132
141
  span.end()
@@ -168,27 +177,41 @@ def patch_evaluate(operation_name, version, tracer):
168
177
  if hasattr(instance, "devset"):
169
178
  span_attributes["dspy.evaluate.devset"] = str(getattr(instance, "devset"))
170
179
  if hasattr(instance, "trainset"):
171
- span_attributes["dspy.evaluate.display"] = str(getattr(instance, "trainset"))
180
+ span_attributes["dspy.evaluate.display"] = str(
181
+ getattr(instance, "trainset")
182
+ )
172
183
  if hasattr(instance, "num_threads"):
173
- span_attributes["dspy.evaluate.num_threads"] = str(getattr(instance, "num_threads"))
184
+ span_attributes["dspy.evaluate.num_threads"] = str(
185
+ getattr(instance, "num_threads")
186
+ )
174
187
  if hasattr(instance, "return_outputs"):
175
188
  span_attributes["dspy.evaluate.return_outputs"] = str(
176
189
  getattr(instance, "return_outputs")
177
190
  )
178
191
  if hasattr(instance, "display_table"):
179
- span_attributes["dspy.evaluate.display_table"] = str(getattr(instance, "display_table"))
192
+ span_attributes["dspy.evaluate.display_table"] = str(
193
+ getattr(instance, "display_table")
194
+ )
180
195
  if hasattr(instance, "display_progress"):
181
196
  span_attributes["dspy.evaluate.display_progress"] = str(
182
197
  getattr(instance, "display_progress")
183
198
  )
184
199
  if hasattr(instance, "metric"):
185
- span_attributes["dspy.evaluate.metric"] = getattr(instance, "metric").__name__
200
+ span_attributes["dspy.evaluate.metric"] = getattr(
201
+ instance, "metric"
202
+ ).__name__
186
203
  if hasattr(instance, "error_count"):
187
- span_attributes["dspy.evaluate.error_count"] = str(getattr(instance, "error_count"))
204
+ span_attributes["dspy.evaluate.error_count"] = str(
205
+ getattr(instance, "error_count")
206
+ )
188
207
  if hasattr(instance, "error_lock"):
189
- span_attributes["dspy.evaluate.error_lock"] = str(getattr(instance, "error_lock"))
208
+ span_attributes["dspy.evaluate.error_lock"] = str(
209
+ getattr(instance, "error_lock")
210
+ )
190
211
  if hasattr(instance, "max_errors"):
191
- span_attributes["dspy.evaluate.max_errors"] = str(getattr(instance, "max_errors"))
212
+ span_attributes["dspy.evaluate.max_errors"] = str(
213
+ getattr(instance, "max_errors")
214
+ )
192
215
  if args and len(args) > 0:
193
216
  span_attributes["dspy.evaluate.args"] = str(args)
194
217
 
@@ -18,7 +18,6 @@ from typing import Any, Dict, Union
18
18
  from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
19
19
  from langtrace_python_sdk.utils import set_span_attribute
20
20
  from langtrace_python_sdk.types import NOT_GIVEN
21
- from tiktoken import get_encoding
22
21
  from tiktoken import get_encoding, list_encoding_names
23
22
 
24
23
  from langtrace_python_sdk.constants.instrumentation.common import (
@@ -26,7 +25,7 @@ from langtrace_python_sdk.constants.instrumentation.common import (
26
25
  TIKTOKEN_MODEL_MAPPING,
27
26
  )
28
27
  from langtrace_python_sdk.constants.instrumentation.openai import OPENAI_COST_TABLE
29
- from langtrace.trace_attributes import SpanAttributes, Event
28
+ from langtrace.trace_attributes import SpanAttributes
30
29
  from importlib_metadata import version as v
31
30
  import json
32
31
  from opentelemetry import baggage
@@ -142,7 +141,9 @@ def get_llm_request_attributes(kwargs, prompts=None, model=None, operation_name=
142
141
  SpanAttributes.LLM_FREQUENCY_PENALTY: kwargs.get("frequency_penalty"),
143
142
  SpanAttributes.LLM_REQUEST_SEED: kwargs.get("seed"),
144
143
  SpanAttributes.LLM_TOOLS: json.dumps(tools) if tools else None,
145
- SpanAttributes.LLM_TOOL_CHOICE: json.dumps(tool_choice) if tool_choice else None,
144
+ SpanAttributes.LLM_TOOL_CHOICE: (
145
+ json.dumps(tool_choice) if tool_choice else None
146
+ ),
146
147
  SpanAttributes.LLM_REQUEST_LOGPROPS: kwargs.get("logprobs"),
147
148
  SpanAttributes.LLM_REQUEST_LOGITBIAS: kwargs.get("logit_bias"),
148
149
  SpanAttributes.LLM_REQUEST_TOP_LOGPROPS: kwargs.get("top_logprobs"),
@@ -0,0 +1 @@
1
+ __version__ = "2.3.19"
@@ -1 +0,0 @@
1
- __version__ = "2.3.18"