openlit 1.24.1__tar.gz → 1.25.0__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 (65) hide show
  1. {openlit-1.24.1 → openlit-1.25.0}/PKG-INFO +2 -1
  2. {openlit-1.24.1 → openlit-1.25.0}/pyproject.toml +1 -1
  3. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/__init__.py +69 -0
  4. {openlit-1.24.1 → openlit-1.25.0}/LICENSE +0 -0
  5. {openlit-1.24.1 → openlit-1.25.0}/README.md +0 -0
  6. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/__helpers.py +0 -0
  7. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/anthropic/__init__.py +0 -0
  8. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/anthropic/anthropic.py +0 -0
  9. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/anthropic/async_anthropic.py +0 -0
  10. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/azure_ai_inference/__init__.py +0 -0
  11. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/azure_ai_inference/async_azure_ai_inference.py +0 -0
  12. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/azure_ai_inference/azure_ai_inference.py +0 -0
  13. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/bedrock/__init__.py +0 -0
  14. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/bedrock/bedrock.py +0 -0
  15. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/chroma/__init__.py +0 -0
  16. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/chroma/chroma.py +0 -0
  17. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/cohere/__init__.py +0 -0
  18. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/cohere/cohere.py +0 -0
  19. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/elevenlabs/__init__.py +0 -0
  20. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/elevenlabs/async_elevenlabs.py +0 -0
  21. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/elevenlabs/elevenlabs.py +0 -0
  22. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/embedchain/__init__.py +0 -0
  23. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/embedchain/embedchain.py +0 -0
  24. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/google_ai_studio/__init__.py +0 -0
  25. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/google_ai_studio/async_google_ai_studio.py +0 -0
  26. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/google_ai_studio/google_ai_studio.py +0 -0
  27. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/gpt4all/__init__.py +0 -0
  28. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/gpt4all/gpt4all.py +0 -0
  29. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/gpu/__init__.py +0 -0
  30. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/groq/__init__.py +0 -0
  31. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/groq/async_groq.py +0 -0
  32. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/groq/groq.py +0 -0
  33. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/haystack/__init__.py +0 -0
  34. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/haystack/haystack.py +0 -0
  35. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/langchain/__init__.py +0 -0
  36. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/langchain/langchain.py +0 -0
  37. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/llamaindex/__init__.py +0 -0
  38. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/llamaindex/llamaindex.py +0 -0
  39. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/milvus/__init__.py +0 -0
  40. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/milvus/milvus.py +0 -0
  41. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/mistral/__init__.py +0 -0
  42. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/mistral/async_mistral.py +0 -0
  43. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/mistral/mistral.py +0 -0
  44. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/ollama/__init__.py +0 -0
  45. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/ollama/async_ollama.py +0 -0
  46. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/ollama/ollama.py +0 -0
  47. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/openai/__init__.py +0 -0
  48. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/openai/async_azure_openai.py +0 -0
  49. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/openai/async_openai.py +0 -0
  50. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/openai/azure_openai.py +0 -0
  51. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/openai/openai.py +0 -0
  52. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/pinecone/__init__.py +0 -0
  53. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/pinecone/pinecone.py +0 -0
  54. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/qdrant/__init__.py +0 -0
  55. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/qdrant/qdrant.py +0 -0
  56. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/transformers/__init__.py +0 -0
  57. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/transformers/transformers.py +0 -0
  58. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/vertexai/__init__.py +0 -0
  59. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/vertexai/async_vertexai.py +0 -0
  60. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/vertexai/vertexai.py +0 -0
  61. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/vllm/__init__.py +0 -0
  62. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/instrumentation/vllm/vllm.py +0 -0
  63. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/otel/metrics.py +0 -0
  64. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/otel/tracing.py +0 -0
  65. {openlit-1.24.1 → openlit-1.25.0}/src/openlit/semcov/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openlit
3
- Version: 1.24.1
3
+ Version: 1.25.0
4
4
  Summary: OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications and GPUs, facilitating the integration of observability into your GenAI-driven projects
5
5
  Home-page: https://github.com/openlit/openlit/tree/main/openlit/python
6
6
  Keywords: OpenTelemetry,otel,otlp,llm,tracing,openai,anthropic,claude,cohere,llm monitoring,observability,monitoring,gpt,Generative AI,chatGPT,gpu
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python :: 3.9
12
12
  Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
15
16
  Requires-Dist: boto3 (>=1.34.0,<2.0.0)
16
17
  Requires-Dist: botocore (>=1.34.0,<2.0.0)
17
18
  Requires-Dist: gpustat (>=1.1.1,<2.0.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "openlit"
3
- version = "1.24.1"
3
+ version = "1.25.0"
4
4
  description = "OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications and GPUs, facilitating the integration of observability into your GenAI-driven projects"
5
5
  authors = ["OpenLIT"]
6
6
  repository = "https://github.com/openlit/openlit/tree/main/openlit/python"
@@ -7,9 +7,11 @@ large language models (LLMs).
7
7
 
8
8
  from typing import Dict
9
9
  import logging
10
+ import os
10
11
  from importlib.util import find_spec
11
12
  from functools import wraps
12
13
  from contextlib import contextmanager
14
+ import requests
13
15
 
14
16
 
15
17
  # Import internal modules for setting up tracing and fetching pricing info.
@@ -316,6 +318,73 @@ def init(environment="default", application_name="default", tracer=None, otlp_en
316
318
  except Exception as e:
317
319
  logger.error("Error during openLIT initialization: %s", e)
318
320
 
321
+ def get_prompt(url=None, name=None, api_key=None, prompt_id=None,
322
+ version=None, should_compile=None, variables=None, meta_properties=None):
323
+ """
324
+ Retrieve and returns the prompt from OpenLIT Prompt Hub
325
+ """
326
+
327
+ def get_env_variable(name, arg_value, error_message):
328
+ """
329
+ Retrieve an environment variable if the argument is not provided
330
+ and raise an error if both are not set.
331
+ """
332
+ if arg_value is not None:
333
+ return arg_value
334
+ value = os.getenv(name)
335
+ if not value:
336
+ logging.error(error_message)
337
+ raise RuntimeError(error_message)
338
+ return value
339
+
340
+ # Validate and set the base URL
341
+ url = get_env_variable(
342
+ 'OPENLIT_URL',
343
+ url,
344
+ 'Missing OpenLIT URL: Provide as arg or set OPENLIT_URL env var.'
345
+ )
346
+
347
+ # Validate and set the API key
348
+ api_key = get_env_variable(
349
+ 'OPENLIT_API_KEY',
350
+ api_key,
351
+ 'Missing API key: Provide as arg or set OPENLIT_API_KEY env var.'
352
+ )
353
+
354
+ # Construct the API endpoint
355
+ endpoint = url + "/api/prompt/get-compiled"
356
+
357
+ # Prepare the payload
358
+ payload = {
359
+ 'name': name,
360
+ 'promptId': prompt_id,
361
+ 'version': version,
362
+ 'shouldCompile': should_compile,
363
+ 'variables': variables,
364
+ 'metaProperties': meta_properties
365
+ }
366
+
367
+ # Remove None values from payload
368
+ payload = {k: v for k, v in payload.items() if v is not None}
369
+
370
+ # Prepare headers
371
+ headers = {
372
+ 'Authorization': f'Bearer {api_key}',
373
+ 'Content-Type': 'application/json'
374
+ }
375
+
376
+ try:
377
+ # Make the POST request to the API with headers
378
+ response = requests.post(endpoint, json=payload, headers=headers, timeout=120)
379
+
380
+ # Check if the response is successful
381
+ response.raise_for_status()
382
+
383
+ # Return the JSON response
384
+ return response.json()
385
+ except requests.RequestException as error:
386
+ print(f"Error fetching prompt: {error}")
387
+ return None
319
388
 
320
389
  def trace(wrapped):
321
390
  """
File without changes
File without changes