langtrace-python-sdk 3.3.0__tar.gz → 3.3.2__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.3.0 → langtrace_python_sdk-3.3.2}/PKG-INFO +1 -1
  2. langtrace_python_sdk-3.3.2/src/examples/cerebras_example/__init__.py +11 -0
  3. langtrace_python_sdk-3.3.2/src/examples/cerebras_example/main.py +195 -0
  4. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/common.py +1 -0
  5. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/__init__.py +2 -0
  6. langtrace_python_sdk-3.3.2/src/langtrace_python_sdk/instrumentation/cerebras/__init__.py +3 -0
  7. langtrace_python_sdk-3.3.2/src/langtrace_python_sdk/instrumentation/cerebras/instrumentation.py +54 -0
  8. langtrace_python_sdk-3.3.2/src/langtrace_python_sdk/instrumentation/cerebras/patch.py +138 -0
  9. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/langtrace.py +4 -3
  10. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/utils/__init__.py +12 -0
  11. langtrace_python_sdk-3.3.2/src/langtrace_python_sdk/version.py +1 -0
  12. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/run_example.py +8 -1
  13. langtrace_python_sdk-3.3.0/src/langtrace_python_sdk/version.py +0 -1
  14. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/.gitignore +0 -0
  15. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/LICENSE +0 -0
  16. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/README.md +0 -0
  17. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/pyproject.toml +0 -0
  18. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/__init__.py +0 -0
  19. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/__init__.py +0 -0
  20. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/anthropic_example/__init__.py +0 -0
  21. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/anthropic_example/completion.py +0 -0
  22. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/autogen_example/__init__.py +0 -0
  23. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/autogen_example/main.py +0 -0
  24. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/awsbedrock_examples/__init__.py +0 -0
  25. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/awsbedrock_examples/converse.py +0 -0
  26. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/azureopenai_example/__init__.py +0 -0
  27. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/azureopenai_example/completion.py +0 -0
  28. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/chroma_example/__init__.py +0 -0
  29. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/chroma_example/basic.py +0 -0
  30. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/cohere_example/__init__.py +0 -0
  31. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/cohere_example/chat.py +0 -0
  32. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/cohere_example/chat_stream.py +0 -0
  33. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/cohere_example/embed.py +0 -0
  34. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/cohere_example/rerank.py +0 -0
  35. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/cohere_example/tools.py +0 -0
  36. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/__init__.py +0 -0
  37. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/basic.py +0 -0
  38. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/instagram_post/__init__.py +0 -0
  39. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/instagram_post/agents.py +0 -0
  40. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/instagram_post/main.py +0 -0
  41. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/instagram_post/tasks.py +0 -0
  42. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/instagram_post/tools/__init__.py +0 -0
  43. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/instagram_post/tools/browser_tools.py +0 -0
  44. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/simple_agent/__init__.py +0 -0
  45. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/simple_agent/agents.py +0 -0
  46. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/simple_agent/main.py +0 -0
  47. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/simple_agent/tasks.py +0 -0
  48. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/trip_planner/__init__.py +0 -0
  49. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/trip_planner/agents.py +0 -0
  50. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/trip_planner/main.py +0 -0
  51. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/trip_planner/tasks.py +0 -0
  52. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/trip_planner/tools/calculator.py +0 -0
  53. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/crewai_example/trip_planner/tools/search_tools.py +0 -0
  54. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/QA_basic.py +0 -0
  55. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/QA_basic_with_chain_of_thought.py +0 -0
  56. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/QA_basic_with_signature.py +0 -0
  57. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/QA_multi_step_with_chain_of_thought.py +0 -0
  58. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/math_problems_cot.py +0 -0
  59. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/math_problems_cot_parallel.py +0 -0
  60. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/optimizers/bootstrap_fewshot.py +0 -0
  61. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/program_of_thought_basic.py +0 -0
  62. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/quiz_gen.py +0 -0
  63. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/dspy_example/react.py +0 -0
  64. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/embedchain_example/simple.py +0 -0
  65. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/fastapi_example/__init__.py +0 -0
  66. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/fastapi_example/basic_route.py +0 -0
  67. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/gemini_example/__init__.py +0 -0
  68. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/gemini_example/function_tools.py +0 -0
  69. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/gemini_example/main.py +0 -0
  70. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/hiveagent_example/basic.py +0 -0
  71. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/inspect_ai_example/basic_eval.py +0 -0
  72. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/langchain_example/__init__.py +0 -0
  73. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/langchain_example/basic.py +0 -0
  74. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/langchain_example/groq_example.py +0 -0
  75. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/langchain_example/langchain_google_example.py +0 -0
  76. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/langchain_example/langgraph_example.py +0 -0
  77. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/langchain_example/langgraph_example_tools.py +0 -0
  78. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/langchain_example/sagemaker.py +0 -0
  79. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/langchain_example/tool.py +0 -0
  80. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/litellm_example/basic.py +0 -0
  81. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/litellm_example/config.yaml +0 -0
  82. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/litellm_example/proxy_basic.py +0 -0
  83. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/llamaindex_example/__init__.py +0 -0
  84. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/llamaindex_example/agent.py +0 -0
  85. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/llamaindex_example/basic.py +0 -0
  86. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/llamaindex_example/data/abramov.txt +0 -0
  87. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/mistral_example/__init__.py +0 -0
  88. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/mistral_example/complete.py +0 -0
  89. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/mistral_example/complete_async.py +0 -0
  90. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/mistral_example/embeddings.py +0 -0
  91. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/ollama_example/__init__.py +0 -0
  92. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/ollama_example/basic.py +0 -0
  93. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/__init__.py +0 -0
  94. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/async_tool_calling_nonstreaming.py +0 -0
  95. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/async_tool_calling_streaming.py +0 -0
  96. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/chat_completion.py +0 -0
  97. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/chat_completion_tool_choice.py +0 -0
  98. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/embeddings_create.py +0 -0
  99. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/function_calling.py +0 -0
  100. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/images_edit.py +0 -0
  101. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/images_generate.py +0 -0
  102. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/resources/lounge_flamingo.png +0 -0
  103. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/resources/mask.png +0 -0
  104. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/send_user_feedback.py +0 -0
  105. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/tool_calling.py +0 -0
  106. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/tool_calling_nonstreaming.py +0 -0
  107. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/openai_example/tool_calling_streaming.py +0 -0
  108. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/otlp_example/otlp_basic.py +0 -0
  109. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/otlp_example/otlp_with_langtrace.py +0 -0
  110. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/perplexity_example/basic.py +0 -0
  111. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/pinecone_example/__init__.py +0 -0
  112. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/pinecone_example/basic.py +0 -0
  113. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/qdrant_example/__init__.py +0 -0
  114. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/qdrant_example/basic.py +0 -0
  115. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/routellm_example/basic.py +0 -0
  116. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/vertexai_example/__init__.py +0 -0
  117. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/vertexai_example/main.py +0 -0
  118. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/weaviate_example/__init__.py +0 -0
  119. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/examples/weaviate_example/query_text.py +0 -0
  120. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/__init__.py +0 -0
  121. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/__init__.py +0 -0
  122. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/exporter/langtrace_exporter.py +0 -0
  123. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/__init__.py +0 -0
  124. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/anthropic.py +0 -0
  125. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/aws_bedrock.py +0 -0
  126. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/chroma.py +0 -0
  127. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/cohere.py +0 -0
  128. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/embedchain.py +0 -0
  129. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/gemini.py +0 -0
  130. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/groq.py +0 -0
  131. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/litellm.py +0 -0
  132. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/mistral.py +0 -0
  133. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/ollama.py +0 -0
  134. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/openai.py +0 -0
  135. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/pinecone.py +0 -0
  136. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/qdrant.py +0 -0
  137. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/vertexai.py +0 -0
  138. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/constants/instrumentation/weaviate.py +0 -0
  139. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/extensions/__init__.py +0 -0
  140. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/extensions/langtrace_exporter.py +0 -0
  141. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/extensions/langtrace_filesystem.py +0 -0
  142. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/anthropic/__init__.py +0 -0
  143. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/anthropic/instrumentation.py +0 -0
  144. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/anthropic/patch.py +0 -0
  145. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/anthropic/types.py +0 -0
  146. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/autogen/__init__.py +0 -0
  147. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/autogen/instrumentation.py +0 -0
  148. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/autogen/patch.py +0 -0
  149. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/aws_bedrock/__init__.py +0 -0
  150. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/aws_bedrock/instrumentation.py +0 -0
  151. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py +0 -0
  152. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/chroma/__init__.py +0 -0
  153. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/chroma/instrumentation.py +0 -0
  154. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/chroma/patch.py +0 -0
  155. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/cohere/__init__.py +0 -0
  156. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/cohere/instrumentation.py +0 -0
  157. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/cohere/patch.py +0 -0
  158. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/crewai/__init__.py +0 -0
  159. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/crewai/instrumentation.py +0 -0
  160. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/crewai/patch.py +0 -0
  161. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/dspy/__init__.py +0 -0
  162. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/dspy/instrumentation.py +0 -0
  163. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/dspy/patch.py +0 -0
  164. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/embedchain/__init__.py +0 -0
  165. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/embedchain/instrumentation.py +0 -0
  166. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/embedchain/patch.py +0 -0
  167. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/gemini/__init__.py +0 -0
  168. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/gemini/instrumentation.py +0 -0
  169. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/gemini/patch.py +0 -0
  170. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/groq/__init__.py +0 -0
  171. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/groq/instrumentation.py +0 -0
  172. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/groq/patch.py +0 -0
  173. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langchain/__init__.py +0 -0
  174. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langchain/instrumentation.py +0 -0
  175. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langchain/patch.py +0 -0
  176. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langchain_community/__init__.py +0 -0
  177. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py +0 -0
  178. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langchain_community/patch.py +0 -0
  179. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langchain_core/__init__.py +0 -0
  180. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py +0 -0
  181. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langchain_core/patch.py +0 -0
  182. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langgraph/__init__.py +0 -0
  183. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langgraph/instrumentation.py +0 -0
  184. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/langgraph/patch.py +0 -0
  185. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/litellm/__init__.py +0 -0
  186. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/litellm/instrumentation.py +0 -0
  187. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/litellm/patch.py +0 -0
  188. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/litellm/types.py +0 -0
  189. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/llamaindex/__init__.py +0 -0
  190. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py +0 -0
  191. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/llamaindex/patch.py +0 -0
  192. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/mistral/__init__.py +0 -0
  193. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/mistral/instrumentation.py +0 -0
  194. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/mistral/patch.py +0 -0
  195. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/ollama/__init__.py +0 -0
  196. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/ollama/instrumentation.py +0 -0
  197. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/ollama/patch.py +0 -0
  198. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/openai/__init__.py +0 -0
  199. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/openai/instrumentation.py +0 -0
  200. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/openai/patch.py +0 -0
  201. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/openai/types.py +0 -0
  202. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/pinecone/__init__.py +0 -0
  203. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py +0 -0
  204. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/pinecone/patch.py +0 -0
  205. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/qdrant/__init__.py +0 -0
  206. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/qdrant/instrumentation.py +0 -0
  207. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/qdrant/patch.py +0 -0
  208. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/vertexai/__init__.py +0 -0
  209. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/vertexai/instrumentation.py +0 -0
  210. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/vertexai/patch.py +0 -0
  211. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/weaviate/__init__.py +0 -0
  212. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/weaviate/instrumentation.py +0 -0
  213. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/instrumentation/weaviate/patch.py +0 -0
  214. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/types/__init__.py +0 -0
  215. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/utils/langtrace_sampler.py +0 -0
  216. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/utils/llm.py +0 -0
  217. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/utils/misc.py +0 -0
  218. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/utils/prompt_registry.py +0 -0
  219. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/utils/sdk_version_checker.py +0 -0
  220. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/utils/silently_fail.py +0 -0
  221. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/utils/types.py +0 -0
  222. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/langtrace_python_sdk/utils/with_root_span.py +0 -0
  223. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/__init__.py +0 -0
  224. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/anthropic/cassettes/test_anthropic.yaml +0 -0
  225. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/anthropic/cassettes/test_anthropic_streaming.yaml +0 -0
  226. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/anthropic/cassettes/test_async_anthropic_streaming.yaml +0 -0
  227. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/anthropic/conftest.py +0 -0
  228. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/anthropic/test_anthropic.py +0 -0
  229. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/chroma/conftest.py +0 -0
  230. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/chroma/test_chroma.py +0 -0
  231. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/cohere/cassettes/test_cohere_chat.yaml +0 -0
  232. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/cohere/cassettes/test_cohere_chat_streaming.yaml +0 -0
  233. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/cohere/cassettes/test_cohere_embed.yaml +0 -0
  234. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/cohere/cassettes/test_cohere_rerank.yaml +0 -0
  235. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/cohere/conftest.py +0 -0
  236. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/cohere/test_cohere_chat.py +0 -0
  237. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/cohere/test_cohere_embed.py +0 -0
  238. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/cohere/test_cohere_rerank.py +0 -0
  239. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/conftest.py +0 -0
  240. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/groq/cassettes/test_async_chat_completion.yaml +0 -0
  241. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/groq/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  242. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/groq/cassettes/test_chat_completion.yaml +0 -0
  243. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/groq/cassettes/test_chat_completion_streaming.yaml +0 -0
  244. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/groq/conftest.py +0 -0
  245. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/groq/test_groq.py +0 -0
  246. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/langchain/cassettes/test_langchain.yaml +0 -0
  247. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/langchain/conftest.py +0 -0
  248. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/langchain/test_langchain.py +0 -0
  249. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/openai/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  250. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/openai/cassettes/test_async_image_generation.yaml +0 -0
  251. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/openai/cassettes/test_chat_completion.yaml +0 -0
  252. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/openai/cassettes/test_chat_completion_streaming.yaml +0 -0
  253. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/openai/cassettes/test_image_generation.yaml +0 -0
  254. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/openai/conftest.py +0 -0
  255. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/openai/test_chat_completion.py +0 -0
  256. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/openai/test_embeddings.py +0 -0
  257. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/openai/test_image_generation.py +0 -0
  258. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/pinecone/cassettes/test_query.yaml +0 -0
  259. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/pinecone/cassettes/test_upsert.yaml +0 -0
  260. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/pinecone/conftest.py +0 -0
  261. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/pinecone/test_pinecone.py +0 -0
  262. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/qdrant/conftest.py +0 -0
  263. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/src/tests/qdrant/test_qdrant.py +0 -0
  264. {langtrace_python_sdk-3.3.0 → langtrace_python_sdk-3.3.2}/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.3.0
3
+ Version: 3.3.2
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,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
 
@@ -78,8 +79,6 @@ from langtrace_python_sdk.utils.langtrace_sampler import LangtraceSampler
78
79
  from langtrace_python_sdk.extensions.langtrace_exporter import LangTraceExporter
79
80
  from sentry_sdk.types import Event, Hint
80
81
 
81
- logging.disable(level=logging.INFO)
82
-
83
82
 
84
83
  class LangtraceConfig:
85
84
  def __init__(self, **kwargs):
@@ -215,7 +214,7 @@ def init(
215
214
  disable_logging: bool = False,
216
215
  headers: Dict[str, str] = {},
217
216
  ):
218
- logging.disable(level=logging.INFO)
217
+
219
218
  check_if_sdk_is_outdated()
220
219
  config = LangtraceConfig(
221
220
  api_key=api_key,
@@ -231,6 +230,7 @@ def init(
231
230
  )
232
231
 
233
232
  if config.disable_logging:
233
+ logging.disable(level=logging.INFO)
234
234
  sys.stdout = open(os.devnull, "w")
235
235
 
236
236
  host = get_host(config)
@@ -281,6 +281,7 @@ def init(
281
281
  "mistralai": MistralInstrumentation(),
282
282
  "boto3": AWSBedrockInstrumentation(),
283
283
  "autogen": AutogenInstrumentation(),
284
+ "cerebras-cloud-sdk": CerebrasInstrumentation(),
284
285
  }
285
286
 
286
287
  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.2"
@@ -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.3.0"