langtrace-python-sdk 3.2.0__tar.gz → 3.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/PKG-INFO +2 -1
  2. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/README.md +1 -0
  3. langtrace_python_sdk-3.3.1/src/examples/cerebras_example/__init__.py +11 -0
  4. langtrace_python_sdk-3.3.1/src/examples/cerebras_example/main.py +195 -0
  5. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/common.py +1 -0
  6. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/__init__.py +2 -0
  7. langtrace_python_sdk-3.3.1/src/langtrace_python_sdk/instrumentation/cerebras/__init__.py +3 -0
  8. langtrace_python_sdk-3.3.1/src/langtrace_python_sdk/instrumentation/cerebras/instrumentation.py +54 -0
  9. langtrace_python_sdk-3.3.1/src/langtrace_python_sdk/instrumentation/cerebras/patch.py +138 -0
  10. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/langtrace.py +3 -1
  11. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/utils/__init__.py +12 -0
  12. langtrace_python_sdk-3.3.1/src/langtrace_python_sdk/version.py +1 -0
  13. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/run_example.py +8 -1
  14. langtrace_python_sdk-3.2.0/src/langtrace_python_sdk/version.py +0 -1
  15. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/.gitignore +0 -0
  16. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/LICENSE +0 -0
  17. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/pyproject.toml +0 -0
  18. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/__init__.py +0 -0
  19. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/__init__.py +0 -0
  20. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/anthropic_example/__init__.py +0 -0
  21. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/anthropic_example/completion.py +0 -0
  22. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/autogen_example/__init__.py +0 -0
  23. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/autogen_example/main.py +0 -0
  24. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/awsbedrock_examples/__init__.py +0 -0
  25. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/awsbedrock_examples/converse.py +0 -0
  26. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/azureopenai_example/__init__.py +0 -0
  27. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/azureopenai_example/completion.py +0 -0
  28. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/chroma_example/__init__.py +0 -0
  29. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/chroma_example/basic.py +0 -0
  30. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/cohere_example/__init__.py +0 -0
  31. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/cohere_example/chat.py +0 -0
  32. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/cohere_example/chat_stream.py +0 -0
  33. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/cohere_example/embed.py +0 -0
  34. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/cohere_example/rerank.py +0 -0
  35. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/cohere_example/tools.py +0 -0
  36. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/__init__.py +0 -0
  37. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/basic.py +0 -0
  38. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/instagram_post/__init__.py +0 -0
  39. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/instagram_post/agents.py +0 -0
  40. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/instagram_post/main.py +0 -0
  41. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/instagram_post/tasks.py +0 -0
  42. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/instagram_post/tools/__init__.py +0 -0
  43. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/instagram_post/tools/browser_tools.py +0 -0
  44. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/simple_agent/__init__.py +0 -0
  45. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/simple_agent/agents.py +0 -0
  46. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/simple_agent/main.py +0 -0
  47. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/simple_agent/tasks.py +0 -0
  48. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/trip_planner/__init__.py +0 -0
  49. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/trip_planner/agents.py +0 -0
  50. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/trip_planner/main.py +0 -0
  51. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/trip_planner/tasks.py +0 -0
  52. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/trip_planner/tools/calculator.py +0 -0
  53. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/crewai_example/trip_planner/tools/search_tools.py +0 -0
  54. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/QA_basic.py +0 -0
  55. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/QA_basic_with_chain_of_thought.py +0 -0
  56. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/QA_basic_with_signature.py +0 -0
  57. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/QA_multi_step_with_chain_of_thought.py +0 -0
  58. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/math_problems_cot.py +0 -0
  59. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/math_problems_cot_parallel.py +0 -0
  60. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/optimizers/bootstrap_fewshot.py +0 -0
  61. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/program_of_thought_basic.py +0 -0
  62. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/quiz_gen.py +0 -0
  63. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/dspy_example/react.py +0 -0
  64. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/embedchain_example/simple.py +0 -0
  65. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/fastapi_example/__init__.py +0 -0
  66. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/fastapi_example/basic_route.py +0 -0
  67. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/gemini_example/__init__.py +0 -0
  68. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/gemini_example/function_tools.py +0 -0
  69. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/gemini_example/main.py +0 -0
  70. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/hiveagent_example/basic.py +0 -0
  71. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/inspect_ai_example/basic_eval.py +0 -0
  72. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/langchain_example/__init__.py +0 -0
  73. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/langchain_example/basic.py +0 -0
  74. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/langchain_example/groq_example.py +0 -0
  75. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/langchain_example/langchain_google_example.py +0 -0
  76. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/langchain_example/langgraph_example.py +0 -0
  77. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/langchain_example/langgraph_example_tools.py +0 -0
  78. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/langchain_example/sagemaker.py +0 -0
  79. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/langchain_example/tool.py +0 -0
  80. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/litellm_example/basic.py +0 -0
  81. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/litellm_example/config.yaml +0 -0
  82. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/litellm_example/proxy_basic.py +0 -0
  83. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/llamaindex_example/__init__.py +0 -0
  84. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/llamaindex_example/agent.py +0 -0
  85. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/llamaindex_example/basic.py +0 -0
  86. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/llamaindex_example/data/abramov.txt +0 -0
  87. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/mistral_example/__init__.py +0 -0
  88. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/mistral_example/complete.py +0 -0
  89. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/mistral_example/complete_async.py +0 -0
  90. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/mistral_example/embeddings.py +0 -0
  91. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/ollama_example/__init__.py +0 -0
  92. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/ollama_example/basic.py +0 -0
  93. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/__init__.py +0 -0
  94. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/async_tool_calling_nonstreaming.py +0 -0
  95. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/async_tool_calling_streaming.py +0 -0
  96. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/chat_completion.py +0 -0
  97. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/chat_completion_tool_choice.py +0 -0
  98. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/embeddings_create.py +0 -0
  99. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/function_calling.py +0 -0
  100. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/images_edit.py +0 -0
  101. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/images_generate.py +0 -0
  102. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/resources/lounge_flamingo.png +0 -0
  103. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/resources/mask.png +0 -0
  104. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/send_user_feedback.py +0 -0
  105. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/tool_calling.py +0 -0
  106. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/tool_calling_nonstreaming.py +0 -0
  107. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/openai_example/tool_calling_streaming.py +0 -0
  108. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/otlp_example/otlp_basic.py +0 -0
  109. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/otlp_example/otlp_with_langtrace.py +0 -0
  110. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/perplexity_example/basic.py +0 -0
  111. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/pinecone_example/__init__.py +0 -0
  112. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/pinecone_example/basic.py +0 -0
  113. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/qdrant_example/__init__.py +0 -0
  114. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/qdrant_example/basic.py +0 -0
  115. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/routellm_example/basic.py +0 -0
  116. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/vertexai_example/__init__.py +0 -0
  117. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/vertexai_example/main.py +0 -0
  118. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/weaviate_example/__init__.py +0 -0
  119. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/examples/weaviate_example/query_text.py +0 -0
  120. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/__init__.py +0 -0
  121. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/__init__.py +0 -0
  122. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/exporter/langtrace_exporter.py +0 -0
  123. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/__init__.py +0 -0
  124. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/anthropic.py +0 -0
  125. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/aws_bedrock.py +0 -0
  126. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/chroma.py +0 -0
  127. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/cohere.py +0 -0
  128. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/embedchain.py +0 -0
  129. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/gemini.py +0 -0
  130. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/groq.py +0 -0
  131. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/litellm.py +0 -0
  132. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/mistral.py +0 -0
  133. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/ollama.py +0 -0
  134. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/openai.py +0 -0
  135. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/pinecone.py +0 -0
  136. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/qdrant.py +0 -0
  137. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/vertexai.py +0 -0
  138. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/constants/instrumentation/weaviate.py +0 -0
  139. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/extensions/__init__.py +0 -0
  140. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/extensions/langtrace_exporter.py +0 -0
  141. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/extensions/langtrace_filesystem.py +0 -0
  142. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/anthropic/__init__.py +0 -0
  143. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/anthropic/instrumentation.py +0 -0
  144. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/anthropic/patch.py +0 -0
  145. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/anthropic/types.py +0 -0
  146. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/autogen/__init__.py +0 -0
  147. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/autogen/instrumentation.py +0 -0
  148. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/autogen/patch.py +0 -0
  149. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/aws_bedrock/__init__.py +0 -0
  150. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/aws_bedrock/instrumentation.py +0 -0
  151. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py +0 -0
  152. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/chroma/__init__.py +0 -0
  153. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/chroma/instrumentation.py +0 -0
  154. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/chroma/patch.py +0 -0
  155. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/cohere/__init__.py +0 -0
  156. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/cohere/instrumentation.py +0 -0
  157. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/cohere/patch.py +0 -0
  158. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/crewai/__init__.py +0 -0
  159. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/crewai/instrumentation.py +0 -0
  160. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/crewai/patch.py +0 -0
  161. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/dspy/__init__.py +0 -0
  162. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/dspy/instrumentation.py +0 -0
  163. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/dspy/patch.py +0 -0
  164. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/embedchain/__init__.py +0 -0
  165. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/embedchain/instrumentation.py +0 -0
  166. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/embedchain/patch.py +0 -0
  167. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/gemini/__init__.py +0 -0
  168. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/gemini/instrumentation.py +0 -0
  169. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/gemini/patch.py +0 -0
  170. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/groq/__init__.py +0 -0
  171. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/groq/instrumentation.py +0 -0
  172. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/groq/patch.py +0 -0
  173. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langchain/__init__.py +0 -0
  174. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langchain/instrumentation.py +0 -0
  175. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langchain/patch.py +0 -0
  176. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langchain_community/__init__.py +0 -0
  177. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py +0 -0
  178. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langchain_community/patch.py +0 -0
  179. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langchain_core/__init__.py +0 -0
  180. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py +0 -0
  181. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langchain_core/patch.py +0 -0
  182. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langgraph/__init__.py +0 -0
  183. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langgraph/instrumentation.py +0 -0
  184. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/langgraph/patch.py +0 -0
  185. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/litellm/__init__.py +0 -0
  186. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/litellm/instrumentation.py +0 -0
  187. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/litellm/patch.py +0 -0
  188. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/litellm/types.py +0 -0
  189. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/llamaindex/__init__.py +0 -0
  190. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py +0 -0
  191. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/llamaindex/patch.py +0 -0
  192. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/mistral/__init__.py +0 -0
  193. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/mistral/instrumentation.py +0 -0
  194. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/mistral/patch.py +0 -0
  195. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/ollama/__init__.py +0 -0
  196. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/ollama/instrumentation.py +0 -0
  197. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/ollama/patch.py +0 -0
  198. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/openai/__init__.py +0 -0
  199. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/openai/instrumentation.py +0 -0
  200. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/openai/patch.py +0 -0
  201. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/openai/types.py +0 -0
  202. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/pinecone/__init__.py +0 -0
  203. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py +0 -0
  204. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/pinecone/patch.py +0 -0
  205. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/qdrant/__init__.py +0 -0
  206. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/qdrant/instrumentation.py +0 -0
  207. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/qdrant/patch.py +0 -0
  208. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/vertexai/__init__.py +0 -0
  209. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/vertexai/instrumentation.py +0 -0
  210. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/vertexai/patch.py +0 -0
  211. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/weaviate/__init__.py +0 -0
  212. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/weaviate/instrumentation.py +0 -0
  213. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/instrumentation/weaviate/patch.py +0 -0
  214. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/types/__init__.py +0 -0
  215. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/utils/langtrace_sampler.py +0 -0
  216. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/utils/llm.py +0 -0
  217. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/utils/misc.py +0 -0
  218. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/utils/prompt_registry.py +0 -0
  219. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/utils/sdk_version_checker.py +0 -0
  220. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/utils/silently_fail.py +0 -0
  221. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/utils/types.py +0 -0
  222. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/langtrace_python_sdk/utils/with_root_span.py +0 -0
  223. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/__init__.py +0 -0
  224. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/anthropic/cassettes/test_anthropic.yaml +0 -0
  225. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/anthropic/cassettes/test_anthropic_streaming.yaml +0 -0
  226. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/anthropic/cassettes/test_async_anthropic_streaming.yaml +0 -0
  227. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/anthropic/conftest.py +0 -0
  228. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/anthropic/test_anthropic.py +0 -0
  229. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/chroma/conftest.py +0 -0
  230. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/chroma/test_chroma.py +0 -0
  231. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/cohere/cassettes/test_cohere_chat.yaml +0 -0
  232. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/cohere/cassettes/test_cohere_chat_streaming.yaml +0 -0
  233. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/cohere/cassettes/test_cohere_embed.yaml +0 -0
  234. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/cohere/cassettes/test_cohere_rerank.yaml +0 -0
  235. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/cohere/conftest.py +0 -0
  236. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/cohere/test_cohere_chat.py +0 -0
  237. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/cohere/test_cohere_embed.py +0 -0
  238. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/cohere/test_cohere_rerank.py +0 -0
  239. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/conftest.py +0 -0
  240. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/groq/cassettes/test_async_chat_completion.yaml +0 -0
  241. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/groq/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  242. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/groq/cassettes/test_chat_completion.yaml +0 -0
  243. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/groq/cassettes/test_chat_completion_streaming.yaml +0 -0
  244. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/groq/conftest.py +0 -0
  245. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/groq/test_groq.py +0 -0
  246. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/langchain/cassettes/test_langchain.yaml +0 -0
  247. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/langchain/conftest.py +0 -0
  248. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/langchain/test_langchain.py +0 -0
  249. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/openai/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  250. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/openai/cassettes/test_async_image_generation.yaml +0 -0
  251. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/openai/cassettes/test_chat_completion.yaml +0 -0
  252. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/openai/cassettes/test_chat_completion_streaming.yaml +0 -0
  253. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/openai/cassettes/test_image_generation.yaml +0 -0
  254. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/openai/conftest.py +0 -0
  255. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/openai/test_chat_completion.py +0 -0
  256. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/openai/test_embeddings.py +0 -0
  257. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/openai/test_image_generation.py +0 -0
  258. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/pinecone/cassettes/test_query.yaml +0 -0
  259. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/pinecone/cassettes/test_upsert.yaml +0 -0
  260. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/pinecone/conftest.py +0 -0
  261. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/pinecone/test_pinecone.py +0 -0
  262. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/qdrant/conftest.py +0 -0
  263. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/qdrant/test_qdrant.py +0 -0
  264. {langtrace_python_sdk-3.2.0 → langtrace_python_sdk-3.3.1}/src/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langtrace-python-sdk
3
- Version: 3.2.0
3
+ Version: 3.3.1
4
4
  Summary: Python SDK for LangTrace
5
5
  Project-URL: Homepage, https://github.com/Scale3-Labs/langtrace-python-sdk
6
6
  Author-email: Scale3 Labs <engineering@scale3labs.com>
@@ -315,6 +315,7 @@ Langtrace automatically captures traces from the following vendors:
315
315
  | Langchain | Framework | :x: | :white_check_mark: |
316
316
  | Langgraph | Framework | :x: | :white_check_mark: |
317
317
  | LlamaIndex | Framework | :white_check_mark: | :white_check_mark: |
318
+ | AWS Bedrock | Framework | :white_check_mark: | :white_check_mark: |
318
319
  | LiteLLM | Framework | :x: | :white_check_mark: |
319
320
  | DSPy | Framework | :x: | :white_check_mark: |
320
321
  | CrewAI | Framework | :x: | :white_check_mark: |
@@ -263,6 +263,7 @@ Langtrace automatically captures traces from the following vendors:
263
263
  | Langchain | Framework | :x: | :white_check_mark: |
264
264
  | Langgraph | Framework | :x: | :white_check_mark: |
265
265
  | LlamaIndex | Framework | :white_check_mark: | :white_check_mark: |
266
+ | AWS Bedrock | Framework | :white_check_mark: | :white_check_mark: |
266
267
  | LiteLLM | Framework | :x: | :white_check_mark: |
267
268
  | DSPy | Framework | :x: | :white_check_mark: |
268
269
  | CrewAI | Framework | :x: | :white_check_mark: |
@@ -0,0 +1,11 @@
1
+ class CerebrasRunner:
2
+ def run(self):
3
+ from .main import (
4
+ completion_example,
5
+ completion_with_tools_example,
6
+ openai_cerebras_example,
7
+ )
8
+
9
+ completion_with_tools_example()
10
+ completion_example()
11
+ openai_cerebras_example()
@@ -0,0 +1,195 @@
1
+ from langtrace_python_sdk import langtrace
2
+ from cerebras.cloud.sdk import Cerebras
3
+ from dotenv import load_dotenv
4
+ import re
5
+ import json
6
+ from openai import OpenAI
7
+ import os
8
+
9
+ load_dotenv()
10
+
11
+ langtrace.init()
12
+ openai_client = OpenAI(
13
+ base_url="https://api.cerebras.ai/v1",
14
+ api_key=os.getenv("CEREBRAS_API_KEY"),
15
+ )
16
+ client = Cerebras()
17
+
18
+
19
+ def openai_cerebras_example(stream=False):
20
+ completion = openai_client.chat.completions.create(
21
+ messages=[
22
+ {
23
+ "role": "user",
24
+ "content": "Why is fast inference important?",
25
+ }
26
+ ],
27
+ model="llama3.1-8b",
28
+ stream=stream,
29
+ )
30
+
31
+ if stream:
32
+ for chunk in completion:
33
+ print(chunk)
34
+ else:
35
+ return completion
36
+
37
+
38
+ def completion_example(stream=False):
39
+ completion = client.chat.completions.create(
40
+ messages=[
41
+ {
42
+ "role": "user",
43
+ "content": "Why is fast inference important?",
44
+ }
45
+ ],
46
+ model="llama3.1-8b",
47
+ stream=stream,
48
+ )
49
+
50
+ if stream:
51
+ for chunk in completion:
52
+ print(chunk)
53
+ else:
54
+ return completion
55
+
56
+
57
+ def completion_with_tools_example(stream=False):
58
+ messages = [
59
+ {
60
+ "role": "system",
61
+ "content": "You are a helpful assistant with access to a calculator. Use the calculator tool to compute mathematical expressions when needed.",
62
+ },
63
+ {"role": "user", "content": "What's the result of 15 multiplied by 7?"},
64
+ ]
65
+
66
+ response = client.chat.completions.create(
67
+ model="llama3.1-8b",
68
+ messages=messages,
69
+ tools=tools,
70
+ stream=stream,
71
+ )
72
+
73
+ if stream:
74
+ # Handle streaming response
75
+ full_content = ""
76
+ for chunk in response:
77
+ if chunk.choices[0].delta.tool_calls:
78
+ tool_call = chunk.choices[0].delta.tool_calls[0]
79
+ if hasattr(tool_call, "function"):
80
+ if tool_call.function.name == "calculate":
81
+ arguments = json.loads(tool_call.function.arguments)
82
+ result = calculate(arguments["expression"])
83
+ print(f"Calculation result: {result}")
84
+
85
+ # Get final response with calculation result
86
+ messages.append(
87
+ {
88
+ "role": "assistant",
89
+ "content": None,
90
+ "tool_calls": [
91
+ {
92
+ "function": {
93
+ "name": "calculate",
94
+ "arguments": tool_call.function.arguments,
95
+ },
96
+ "id": tool_call.id,
97
+ "type": "function",
98
+ }
99
+ ],
100
+ }
101
+ )
102
+ messages.append(
103
+ {
104
+ "role": "tool",
105
+ "content": str(result),
106
+ "tool_call_id": tool_call.id,
107
+ }
108
+ )
109
+
110
+ final_response = client.chat.completions.create(
111
+ model="llama3.1-70b", messages=messages, stream=True
112
+ )
113
+
114
+ for final_chunk in final_response:
115
+ if final_chunk.choices[0].delta.content:
116
+ print(final_chunk.choices[0].delta.content, end="")
117
+ elif chunk.choices[0].delta.content:
118
+ print(chunk.choices[0].delta.content, end="")
119
+ full_content += chunk.choices[0].delta.content
120
+ else:
121
+ # Handle non-streaming response
122
+ choice = response.choices[0].message
123
+ if choice.tool_calls:
124
+ function_call = choice.tool_calls[0].function
125
+ if function_call.name == "calculate":
126
+ arguments = json.loads(function_call.arguments)
127
+ result = calculate(arguments["expression"])
128
+ print(f"Calculation result: {result}")
129
+
130
+ messages.append(
131
+ {
132
+ "role": "assistant",
133
+ "content": None,
134
+ "tool_calls": [
135
+ {
136
+ "function": {
137
+ "name": "calculate",
138
+ "arguments": function_call.arguments,
139
+ },
140
+ "id": choice.tool_calls[0].id,
141
+ "type": "function",
142
+ }
143
+ ],
144
+ }
145
+ )
146
+ messages.append(
147
+ {
148
+ "role": "tool",
149
+ "content": str(result),
150
+ "tool_call_id": choice.tool_calls[0].id,
151
+ }
152
+ )
153
+
154
+ final_response = client.chat.completions.create(
155
+ model="llama3.1-70b",
156
+ messages=messages,
157
+ )
158
+
159
+ if final_response:
160
+ print(final_response.choices[0].message.content)
161
+ else:
162
+ print("No final response received")
163
+ else:
164
+ print("Unexpected response from the model")
165
+
166
+
167
+ def calculate(expression):
168
+ expression = re.sub(r"[^0-9+\-*/().]", "", expression)
169
+
170
+ try:
171
+ result = eval(expression)
172
+ return str(result)
173
+ except (SyntaxError, ZeroDivisionError, NameError, TypeError, OverflowError):
174
+ return "Error: Invalid expression"
175
+
176
+
177
+ tools = [
178
+ {
179
+ "type": "function",
180
+ "function": {
181
+ "name": "calculate",
182
+ "description": "A calculator tool that can perform basic arithmetic operations. Use this when you need to compute mathematical expressions or solve numerical problems.",
183
+ "parameters": {
184
+ "type": "object",
185
+ "properties": {
186
+ "expression": {
187
+ "type": "string",
188
+ "description": "The mathematical expression to evaluate",
189
+ }
190
+ },
191
+ "required": ["expression"],
192
+ },
193
+ },
194
+ }
195
+ ]
@@ -35,6 +35,7 @@ SERVICE_PROVIDERS = {
35
35
  "AUTOGEN": "Autogen",
36
36
  "XAI": "XAI",
37
37
  "AWS_BEDROCK": "AWS Bedrock",
38
+ "CEREBRAS": "Cerebras",
38
39
  }
39
40
 
40
41
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY = "langtrace_additional_attributes"
@@ -21,6 +21,7 @@ from .mistral import MistralInstrumentation
21
21
  from .aws_bedrock import AWSBedrockInstrumentation
22
22
  from .embedchain import EmbedchainInstrumentation
23
23
  from .litellm import LiteLLMInstrumentation
24
+ from .cerebras import CerebrasInstrumentation
24
25
 
25
26
  __all__ = [
26
27
  "AnthropicInstrumentation",
@@ -46,4 +47,5 @@ __all__ = [
46
47
  "GeminiInstrumentation",
47
48
  "MistralInstrumentation",
48
49
  "AWSBedrockInstrumentation",
50
+ "CerebrasInstrumentation",
49
51
  ]
@@ -0,0 +1,3 @@
1
+ from .instrumentation import CerebrasInstrumentation
2
+
3
+ __all__ = ["CerebrasInstrumentation"]
@@ -0,0 +1,54 @@
1
+ """
2
+ Copyright (c) 2024 Scale3 Labs
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ """
16
+
17
+ from typing import Collection
18
+ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
19
+ from opentelemetry.trace import get_tracer
20
+ from opentelemetry.semconv.schemas import Schemas
21
+ from wrapt import wrap_function_wrapper
22
+ from importlib_metadata import version as v
23
+ from .patch import chat_completions_create, async_chat_completions_create
24
+
25
+
26
+ class CerebrasInstrumentation(BaseInstrumentor):
27
+ """
28
+ The CerebrasInstrumentation class represents the Cerebras instrumentation
29
+ """
30
+
31
+ def instrumentation_dependencies(self) -> Collection[str]:
32
+ return ["cerebras-cloud-sdk >= 1.0.0"]
33
+
34
+ def _instrument(self, **kwargs):
35
+ tracer_provider = kwargs.get("tracer_provider")
36
+ tracer = get_tracer(
37
+ __name__, "", tracer_provider, schema_url=Schemas.V1_27_0.value
38
+ )
39
+ version = v("cerebras-cloud-sdk")
40
+
41
+ wrap_function_wrapper(
42
+ module="cerebras.cloud.sdk",
43
+ name="resources.chat.completions.CompletionsResource.create",
44
+ wrapper=chat_completions_create(version, tracer),
45
+ )
46
+
47
+ wrap_function_wrapper(
48
+ module="cerebras.cloud.sdk",
49
+ name="resources.chat.completions.AsyncCompletionsResource.create",
50
+ wrapper=async_chat_completions_create(version, tracer),
51
+ )
52
+
53
+ def _uninstrument(self, **kwargs):
54
+ pass
@@ -0,0 +1,138 @@
1
+ from langtrace_python_sdk.instrumentation.groq.patch import extract_content
2
+ from opentelemetry.trace import SpanKind
3
+ from langtrace_python_sdk.utils.llm import (
4
+ get_llm_request_attributes,
5
+ get_langtrace_attributes,
6
+ get_extra_attributes,
7
+ get_llm_url,
8
+ is_streaming,
9
+ set_event_completion,
10
+ set_span_attributes,
11
+ StreamWrapper,
12
+ )
13
+ from langtrace_python_sdk.utils.silently_fail import silently_fail
14
+ from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
15
+ from langtrace.trace_attributes import SpanAttributes
16
+ from langtrace_python_sdk.utils import handle_span_error, set_span_attribute
17
+
18
+
19
+ def chat_completions_create(version: str, tracer):
20
+ def traced_method(wrapped, instance, args, kwargs):
21
+ llm_prompts = []
22
+ for message in kwargs.get("messages", []):
23
+ llm_prompts.append(message)
24
+
25
+ span_attributes = {
26
+ **get_langtrace_attributes(version, SERVICE_PROVIDERS["CEREBRAS"]),
27
+ **get_llm_request_attributes(kwargs, prompts=llm_prompts),
28
+ **get_llm_url(instance),
29
+ **get_extra_attributes(),
30
+ }
31
+
32
+ span_name = f"{span_attributes[SpanAttributes.LLM_OPERATION_NAME]} {span_attributes[SpanAttributes.LLM_REQUEST_MODEL]}"
33
+ with tracer.start_as_current_span(
34
+ name=span_name,
35
+ kind=SpanKind.CLIENT,
36
+ attributes=span_attributes,
37
+ end_on_exit=False,
38
+ ) as span:
39
+
40
+ try:
41
+ _set_input_attributes(span, kwargs, span_attributes)
42
+ result = wrapped(*args, **kwargs)
43
+ if is_streaming(kwargs):
44
+ return StreamWrapper(result, span)
45
+
46
+ if span.is_recording():
47
+ _set_response_attributes(span, result)
48
+ span.end()
49
+ return result
50
+
51
+ except Exception as error:
52
+ handle_span_error(span, error)
53
+ raise
54
+
55
+ return traced_method
56
+
57
+
58
+ def async_chat_completions_create(version: str, tracer):
59
+ async def traced_method(wrapped, instance, args, kwargs):
60
+ llm_prompts = []
61
+ for message in kwargs.get("messages", []):
62
+ llm_prompts.append(message)
63
+
64
+ span_attributes = {
65
+ **get_langtrace_attributes(version, SERVICE_PROVIDERS["CEREBRAS"]),
66
+ **get_llm_request_attributes(kwargs, prompts=llm_prompts),
67
+ **get_llm_url(instance),
68
+ **get_extra_attributes(),
69
+ }
70
+
71
+ span_name = f"{span_attributes[SpanAttributes.LLM_OPERATION_NAME]} {span_attributes[SpanAttributes.LLM_REQUEST_MODEL]}"
72
+ with tracer.start_as_current_span(
73
+ name=span_name,
74
+ kind=SpanKind.CLIENT,
75
+ attributes=span_attributes,
76
+ end_on_exit=False,
77
+ ) as span:
78
+
79
+ try:
80
+ _set_input_attributes(span, kwargs, span_attributes)
81
+ result = await wrapped(*args, **kwargs)
82
+ if is_streaming(kwargs):
83
+ return StreamWrapper(result, span)
84
+
85
+ if span.is_recording():
86
+ _set_response_attributes(span, result)
87
+ span.end()
88
+ return result
89
+
90
+ except Exception as error:
91
+ handle_span_error(span, error)
92
+ raise
93
+
94
+ return traced_method
95
+
96
+
97
+ @silently_fail
98
+ def _set_response_attributes(span, result):
99
+ set_span_attribute(span, SpanAttributes.LLM_RESPONSE_MODEL, result.model)
100
+
101
+ if getattr(result, "id", None):
102
+ set_span_attribute(span, SpanAttributes.LLM_RESPONSE_ID, result.id)
103
+
104
+ if getattr(result, "choices", None):
105
+ responses = [
106
+ {
107
+ "role": (
108
+ choice.message.role
109
+ if choice.message and choice.message.role
110
+ else "assistant"
111
+ ),
112
+ "content": extract_content(choice),
113
+ **(
114
+ {"content_filter_results": choice.content_filter_results}
115
+ if hasattr(choice, "content_filter_results")
116
+ else {}
117
+ ),
118
+ }
119
+ for choice in result.choices
120
+ ]
121
+ set_event_completion(span, responses)
122
+ # Get the usage
123
+ if getattr(result, "usage", None):
124
+ set_span_attribute(
125
+ span,
126
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS,
127
+ result.usage.prompt_tokens,
128
+ )
129
+ set_span_attribute(
130
+ span,
131
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS,
132
+ result.usage.completion_tokens,
133
+ )
134
+
135
+
136
+ @silently_fail
137
+ def _set_input_attributes(span, kwargs, attributes):
138
+ set_span_attributes(span, attributes)
@@ -64,6 +64,7 @@ from langtrace_python_sdk.instrumentation import (
64
64
  AutogenInstrumentation,
65
65
  VertexAIInstrumentation,
66
66
  WeaviateInstrumentation,
67
+ CerebrasInstrumentation,
67
68
  )
68
69
  from opentelemetry.util.re import parse_env_headers
69
70
 
@@ -151,7 +152,7 @@ def get_exporter(config: LangtraceConfig, host: str):
151
152
  headers = get_headers(config)
152
153
  host = f"{host}/api/trace" if host == LANGTRACE_REMOTE_URL else host
153
154
  if "http" in host.lower() or "https" in host.lower():
154
- return LangTraceExporter(host, config.api_key, config.disable_logging)
155
+ return HTTPExporter(endpoint=host, headers=headers)
155
156
  else:
156
157
  return GRPCExporter(endpoint=host, headers=headers)
157
158
 
@@ -281,6 +282,7 @@ def init(
281
282
  "mistralai": MistralInstrumentation(),
282
283
  "boto3": AWSBedrockInstrumentation(),
283
284
  "autogen": AutogenInstrumentation(),
285
+ "cerebras-cloud-sdk": CerebrasInstrumentation(),
284
286
  }
285
287
 
286
288
  init_instrumentations(config.disable_instrumentations, all_instrumentations)
@@ -1,6 +1,11 @@
1
1
  from langtrace_python_sdk.types import NOT_GIVEN, InstrumentationType
2
2
  from .sdk_version_checker import SDKVersionChecker
3
3
  from opentelemetry.trace import Span
4
+ from opentelemetry.semconv.attributes import (
5
+ error_attributes as ErrorAttributes,
6
+ )
7
+ from opentelemetry.trace.status import Status, StatusCode
8
+
4
9
  from langtrace.trace_attributes import SpanAttributes
5
10
  import inspect
6
11
  import os
@@ -90,3 +95,10 @@ def is_package_installed(package_name):
90
95
 
91
96
  installed_packages = {p.key for p in pkg_resources.working_set}
92
97
  return package_name in installed_packages
98
+
99
+
100
+ def handle_span_error(span: Span, error):
101
+ span.set_status(Status(StatusCode.ERROR, str(error)))
102
+ if span.is_recording():
103
+ span.set_attribute(ErrorAttributes.ERROR_TYPE, type(error).__qualname__)
104
+ span.end()
@@ -0,0 +1 @@
1
+ __version__ = "3.3.1"
@@ -20,7 +20,8 @@ ENABLED_EXAMPLES = {
20
20
  "vertexai": False,
21
21
  "gemini": False,
22
22
  "mistral": False,
23
- "awsbedrock": True,
23
+ "awsbedrock": False,
24
+ "cerebras": True,
24
25
  }
25
26
 
26
27
  if ENABLED_EXAMPLES["anthropic"]:
@@ -130,3 +131,9 @@ if ENABLED_EXAMPLES["awsbedrock"]:
130
131
 
131
132
  print(Fore.BLUE + "Running AWS Bedrock example" + Fore.RESET)
132
133
  AWSBedrockRunner().run()
134
+
135
+ if ENABLED_EXAMPLES["cerebras"]:
136
+ from examples.cerebras_example import CerebrasRunner
137
+
138
+ print(Fore.BLUE + "Running Cerebras example" + Fore.RESET)
139
+ CerebrasRunner().run()
@@ -1 +0,0 @@
1
- __version__ = "3.2.0"