Skip to content

Commit fac6ef7

Browse files
committed
Fix #2803: 🚀 Feature: Install less packages
Move all LLM/AI-provider instrumentation packages from hard dependencies to optional extras in traceloop-sdk's pyproject.toml. Keep only core infrastructure packages (requests, urllib3, logging, threading, sqlalchemy, redis) as hard dependencies. Add per-provider extras (e.g., `pip install traceloop-sdk[openai]`) and an `all` extra for the current behavior. No runtime code changes needed — the SDK already uses conditional imports via `is_package_installed()` checks.
1 parent b80f109 commit fac6ef7

File tree

1 file changed

+64
-31
lines changed

1 file changed

+64
-31
lines changed

packages/traceloop-sdk/pyproject.toml

Lines changed: 64 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -22,37 +22,6 @@ dependencies = [
2222
"opentelemetry-instrumentation-threading>=0.59b0",
2323
"opentelemetry-instrumentation-redis>=0.59b0",
2424
"opentelemetry-semantic-conventions-ai>=0.5.1,<0.6.0",
25-
"opentelemetry-instrumentation-agno",
26-
"opentelemetry-instrumentation-mistralai",
27-
"opentelemetry-instrumentation-openai",
28-
"opentelemetry-instrumentation-openai-agents",
29-
"opentelemetry-instrumentation-ollama",
30-
"opentelemetry-instrumentation-anthropic",
31-
"opentelemetry-instrumentation-cohere",
32-
"opentelemetry-instrumentation-crewai",
33-
"opentelemetry-instrumentation-google-generativeai",
34-
"opentelemetry-instrumentation-pinecone",
35-
"opentelemetry-instrumentation-qdrant",
36-
"opentelemetry-instrumentation-langchain",
37-
"opentelemetry-instrumentation-lancedb",
38-
"opentelemetry-instrumentation-chromadb",
39-
"opentelemetry-instrumentation-transformers",
40-
"opentelemetry-instrumentation-together",
41-
"opentelemetry-instrumentation-llamaindex",
42-
"opentelemetry-instrumentation-milvus",
43-
"opentelemetry-instrumentation-haystack",
44-
"opentelemetry-instrumentation-bedrock",
45-
"opentelemetry-instrumentation-sagemaker",
46-
"opentelemetry-instrumentation-replicate",
47-
"opentelemetry-instrumentation-vertexai",
48-
"opentelemetry-instrumentation-voyageai",
49-
"opentelemetry-instrumentation-watsonx",
50-
"opentelemetry-instrumentation-weaviate",
51-
"opentelemetry-instrumentation-writer",
52-
"opentelemetry-instrumentation-alephalpha",
53-
"opentelemetry-instrumentation-marqo",
54-
"opentelemetry-instrumentation-groq",
55-
"opentelemetry-instrumentation-mcp",
5625
"colorama>=0.4.6,<0.5.0",
5726
"tenacity>=8.2.3,<10.0",
5827
"pydantic>=1",
@@ -68,6 +37,70 @@ Documentation = "https://traceloop.com/docs/openllmetry"
6837

6938
[project.optional-dependencies]
7039
datasets = ["pandas"]
40+
agno = ["opentelemetry-instrumentation-agno"]
41+
alephalpha = ["opentelemetry-instrumentation-alephalpha"]
42+
anthropic = ["opentelemetry-instrumentation-anthropic"]
43+
bedrock = ["opentelemetry-instrumentation-bedrock"]
44+
chromadb = ["opentelemetry-instrumentation-chromadb"]
45+
cohere = ["opentelemetry-instrumentation-cohere"]
46+
crewai = ["opentelemetry-instrumentation-crewai"]
47+
google-generativeai = ["opentelemetry-instrumentation-google-generativeai"]
48+
groq = ["opentelemetry-instrumentation-groq"]
49+
haystack = ["opentelemetry-instrumentation-haystack"]
50+
lancedb = ["opentelemetry-instrumentation-lancedb"]
51+
langchain = ["opentelemetry-instrumentation-langchain"]
52+
llamaindex = ["opentelemetry-instrumentation-llamaindex"]
53+
marqo = ["opentelemetry-instrumentation-marqo"]
54+
mcp = ["opentelemetry-instrumentation-mcp"]
55+
milvus = ["opentelemetry-instrumentation-milvus"]
56+
mistralai = ["opentelemetry-instrumentation-mistralai"]
57+
ollama = ["opentelemetry-instrumentation-ollama"]
58+
openai = ["opentelemetry-instrumentation-openai"]
59+
openai-agents = ["opentelemetry-instrumentation-openai-agents"]
60+
pinecone = ["opentelemetry-instrumentation-pinecone"]
61+
qdrant = ["opentelemetry-instrumentation-qdrant"]
62+
replicate = ["opentelemetry-instrumentation-replicate"]
63+
sagemaker = ["opentelemetry-instrumentation-sagemaker"]
64+
together = ["opentelemetry-instrumentation-together"]
65+
transformers = ["opentelemetry-instrumentation-transformers"]
66+
vertexai = ["opentelemetry-instrumentation-vertexai"]
67+
voyageai = ["opentelemetry-instrumentation-voyageai"]
68+
watsonx = ["opentelemetry-instrumentation-watsonx"]
69+
weaviate = ["opentelemetry-instrumentation-weaviate"]
70+
writer = ["opentelemetry-instrumentation-writer"]
71+
all = [
72+
"opentelemetry-instrumentation-agno",
73+
"opentelemetry-instrumentation-alephalpha",
74+
"opentelemetry-instrumentation-anthropic",
75+
"opentelemetry-instrumentation-bedrock",
76+
"opentelemetry-instrumentation-chromadb",
77+
"opentelemetry-instrumentation-cohere",
78+
"opentelemetry-instrumentation-crewai",
79+
"opentelemetry-instrumentation-google-generativeai",
80+
"opentelemetry-instrumentation-groq",
81+
"opentelemetry-instrumentation-haystack",
82+
"opentelemetry-instrumentation-lancedb",
83+
"opentelemetry-instrumentation-langchain",
84+
"opentelemetry-instrumentation-llamaindex",
85+
"opentelemetry-instrumentation-marqo",
86+
"opentelemetry-instrumentation-mcp",
87+
"opentelemetry-instrumentation-milvus",
88+
"opentelemetry-instrumentation-mistralai",
89+
"opentelemetry-instrumentation-ollama",
90+
"opentelemetry-instrumentation-openai",
91+
"opentelemetry-instrumentation-openai-agents",
92+
"opentelemetry-instrumentation-pinecone",
93+
"opentelemetry-instrumentation-qdrant",
94+
"opentelemetry-instrumentation-replicate",
95+
"opentelemetry-instrumentation-sagemaker",
96+
"opentelemetry-instrumentation-together",
97+
"opentelemetry-instrumentation-transformers",
98+
"opentelemetry-instrumentation-vertexai",
99+
"opentelemetry-instrumentation-voyageai",
100+
"opentelemetry-instrumentation-watsonx",
101+
"opentelemetry-instrumentation-weaviate",
102+
"opentelemetry-instrumentation-writer",
103+
]
71104
[dependency-groups]
72105
dev = [
73106
"autopep8>=2.2.0,<3",

0 commit comments

Comments
 (0)