Repository files navigation

Open Source & Open Telemetry(OTEL) Observability for LLM applications

Static BadgeStatic BadgeStatic BadgeStatic Badge


Langtrace is an open source observability software which lets you capture, debug and analyze traces and metrics from all your applications that leverages LLM APIs, Vector Databases and LLM based Frameworks.

Open Telemetry Support

The traces generated by Langtrace adhere to Open Telemetry Standards(OTEL). We are developing semantic conventions for the traces generated by this project. You can checkout the current definitions in this repository. Note: This is an ongoing development and we encourage you to get involved and welcome your feedback.


Langtrace Cloud ☁️

To use the managed SaaS version of Langtrace, follow the steps below:

  1. Sign up by going to this link.
  2. Create a new Project after signing up. Projects are containers for storing traces and metrics generated by your application. If you have only one application, creating 1 project will do.
  3. Generate an API key by going inside the project.
  4. In your application, install the Langtrace SDK and initialize it with the API key you generated in the step 3.
  5. The code for installing and setting up the SDK is shown below

Getting Started

Get started by adding simply three lines to your code!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(api_key=<your_api_key>)

OR

fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init() # LANGTRACE_API_KEY as an ENVIRONMENT variable

Langtrace Self Hosted

Get started by adding simply two lines to your code and see traces being logged to the console!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(write_to_langtrace_cloud=False, batch=False)

Langtrace self hosted custom exporter

Get started by adding simply three lines to your code and see traces being exported to your remote location!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(custom_remote_exporter=<your_exporter>, batch=<TrueorFalse>)

Additional Customization

  • @with_langtrace_root_span - this decorator is designed to organize and relate different spans, in a hierarchical manner. When you're performing multiple operations that you want to monitor together as a unit, this function helps by establishing a "parent" (LangtraceRootSpan or whatever is passed to name) span. Then, any calls to the LLM APIs made within the given function (fn) will be considered "children" of this parent span. This setup is especially useful for tracking the performance or behavior of a group of operations collectively, rather than individually.
fromlangtrace_python_sdk.utils.with_root_spanimportwith_langtrace_root_span@with_langtrace_root_span()defexample():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse
  • with_additional_attributes - this function is designed to enhance the traces by adding custom attributes to the current context. These custom attributes provide extra details about the operations being performed, making it easier to analyze and understand their behavior.
fromlangtrace_python_sdk.utils.with_root_spanimport (
with_langtrace_root_span,
with_additional_attributes,
)
@with_additional_attributes({"user.id": "1234", "user.feedback.rating": 1})defapi_call1():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_additional_attributes({"user.id": "5678", "user.feedback.rating": -1})defapi_call2():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_langtrace_root_span()defchat_completion():
api_call1()
api_call2()

Supported integrations

Langtrace automatically captures traces from the following vendors:

VendorTypeTypescript SDKPython SDK
OpenAILLM
AnthropicLLM
Azure OpenAILLM
LangchainFramework
LlamaIndexFramework
PineconeVector Database
ChromaDBVector Database

Feature Requests and Issues


Contributions

We welcome contributions to this project. To get started, fork this repository and start developing. To get involved, join our Discord workspace.


Security

To report security vulnerabilites, email us at security@scale3labs.com. You can read more on security here.


License

  • Langtrace application(this repository) is licensed under the AGPL 3.0 License. You can read about this license here.
  • Langtrace SDKs are licensed under the Apache 2.0 License. You can read about this license here.

About

Langtrace SDK for Python Applications

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Open Source & Open Telemetry(OTEL) Observability for LLM applications

Static BadgeStatic BadgeStatic BadgeStatic Badge


Langtrace is an open source observability software which lets you capture, debug and analyze traces and metrics from all your applications that leverages LLM APIs, Vector Databases and LLM based Frameworks.

Open Telemetry Support

The traces generated by Langtrace adhere to Open Telemetry Standards(OTEL). We are developing semantic conventions for the traces generated by this project. You can checkout the current definitions in this repository. Note: This is an ongoing development and we encourage you to get involved and welcome your feedback.


Langtrace Cloud ☁️

To use the managed SaaS version of Langtrace, follow the steps below:

  1. Sign up by going to this link.
  2. Create a new Project after signing up. Projects are containers for storing traces and metrics generated by your application. If you have only one application, creating 1 project will do.
  3. Generate an API key by going inside the project.
  4. In your application, install the Langtrace SDK and initialize it with the API key you generated in the step 3.
  5. The code for installing and setting up the SDK is shown below

Getting Started

Get started by adding simply three lines to your code!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(api_key=<your_api_key>)

OR

fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init() # LANGTRACE_API_KEY as an ENVIRONMENT variable

Langtrace Self Hosted

Get started by adding simply two lines to your code and see traces being logged to the console!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(write_to_langtrace_cloud=False, batch=False)

Langtrace self hosted custom exporter

Get started by adding simply three lines to your code and see traces being exported to your remote location!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(custom_remote_exporter=<your_exporter>, batch=<TrueorFalse>)

Additional Customization

  • @with_langtrace_root_span - this decorator is designed to organize and relate different spans, in a hierarchical manner. When you're performing multiple operations that you want to monitor together as a unit, this function helps by establishing a "parent" (LangtraceRootSpan or whatever is passed to name) span. Then, any calls to the LLM APIs made within the given function (fn) will be considered "children" of this parent span. This setup is especially useful for tracking the performance or behavior of a group of operations collectively, rather than individually.
fromlangtrace_python_sdk.utils.with_root_spanimportwith_langtrace_root_span@with_langtrace_root_span()defexample():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse
  • with_additional_attributes - this function is designed to enhance the traces by adding custom attributes to the current context. These custom attributes provide extra details about the operations being performed, making it easier to analyze and understand their behavior.
fromlangtrace_python_sdk.utils.with_root_spanimport (
with_langtrace_root_span,
with_additional_attributes,
)
@with_additional_attributes({"user.id": "1234", "user.feedback.rating": 1})defapi_call1():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_additional_attributes({"user.id": "5678", "user.feedback.rating": -1})defapi_call2():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_langtrace_root_span()defchat_completion():
api_call1()
api_call2()

Supported integrations

Langtrace automatically captures traces from the following vendors:

VendorTypeTypescript SDKPython SDK
OpenAILLM
AnthropicLLM
Azure OpenAILLM
LangchainFramework
LlamaIndexFramework
PineconeVector Database
ChromaDBVector Database

Feature Requests and Issues


Contributions

We welcome contributions to this project. To get started, fork this repository and start developing. To get involved, join our Discord workspace.


Security

To report security vulnerabilites, email us at security@scale3labs.com. You can read more on security here.


License

  • Langtrace application(this repository) is licensed under the AGPL 3.0 License. You can read about this license here.
  • Langtrace SDKs are licensed under the Apache 2.0 License. You can read about this license here.

About

Langtrace SDK for Python Applications

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Open Source & Open Telemetry(OTEL) Observability for LLM applications

Static BadgeStatic BadgeStatic BadgeStatic Badge


Langtrace is an open source observability software which lets you capture, debug and analyze traces and metrics from all your applications that leverages LLM APIs, Vector Databases and LLM based Frameworks.

Open Telemetry Support

The traces generated by Langtrace adhere to Open Telemetry Standards(OTEL). We are developing semantic conventions for the traces generated by this project. You can checkout the current definitions in this repository. Note: This is an ongoing development and we encourage you to get involved and welcome your feedback.


Langtrace Cloud ☁️

To use the managed SaaS version of Langtrace, follow the steps below:

  1. Sign up by going to this link.
  2. Create a new Project after signing up. Projects are containers for storing traces and metrics generated by your application. If you have only one application, creating 1 project will do.
  3. Generate an API key by going inside the project.
  4. In your application, install the Langtrace SDK and initialize it with the API key you generated in the step 3.
  5. The code for installing and setting up the SDK is shown below

Getting Started

Get started by adding simply three lines to your code!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(api_key=<your_api_key>)

OR

fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init() # LANGTRACE_API_KEY as an ENVIRONMENT variable

Langtrace Self Hosted

Get started by adding simply two lines to your code and see traces being logged to the console!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(write_to_langtrace_cloud=False, batch=False)

Langtrace self hosted custom exporter

Get started by adding simply three lines to your code and see traces being exported to your remote location!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(custom_remote_exporter=<your_exporter>, batch=<TrueorFalse>)

Additional Customization

  • @with_langtrace_root_span - this decorator is designed to organize and relate different spans, in a hierarchical manner. When you're performing multiple operations that you want to monitor together as a unit, this function helps by establishing a "parent" (LangtraceRootSpan or whatever is passed to name) span. Then, any calls to the LLM APIs made within the given function (fn) will be considered "children" of this parent span. This setup is especially useful for tracking the performance or behavior of a group of operations collectively, rather than individually.
fromlangtrace_python_sdk.utils.with_root_spanimportwith_langtrace_root_span@with_langtrace_root_span()defexample():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse
  • with_additional_attributes - this function is designed to enhance the traces by adding custom attributes to the current context. These custom attributes provide extra details about the operations being performed, making it easier to analyze and understand their behavior.
fromlangtrace_python_sdk.utils.with_root_spanimport (
with_langtrace_root_span,
with_additional_attributes,
)
@with_additional_attributes({"user.id": "1234", "user.feedback.rating": 1})defapi_call1():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_additional_attributes({"user.id": "5678", "user.feedback.rating": -1})defapi_call2():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_langtrace_root_span()defchat_completion():
api_call1()
api_call2()

Supported integrations

Langtrace automatically captures traces from the following vendors:

VendorTypeTypescript SDKPython SDK
OpenAILLM
AnthropicLLM
Azure OpenAILLM
LangchainFramework
LlamaIndexFramework
PineconeVector Database
ChromaDBVector Database

Feature Requests and Issues


Contributions

We welcome contributions to this project. To get started, fork this repository and start developing. To get involved, join our Discord workspace.


Security

To report security vulnerabilites, email us at security@scale3labs.com. You can read more on security here.


License

  • Langtrace application(this repository) is licensed under the AGPL 3.0 License. You can read about this license here.
  • Langtrace SDKs are licensed under the Apache 2.0 License. You can read about this license here.

About

Langtrace SDK for Python Applications

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Open Source & Open Telemetry(OTEL) Observability for LLM applications

Static BadgeStatic BadgeStatic BadgeStatic Badge


Langtrace is an open source observability software which lets you capture, debug and analyze traces and metrics from all your applications that leverages LLM APIs, Vector Databases and LLM based Frameworks.

Open Telemetry Support

The traces generated by Langtrace adhere to Open Telemetry Standards(OTEL). We are developing semantic conventions for the traces generated by this project. You can checkout the current definitions in this repository. Note: This is an ongoing development and we encourage you to get involved and welcome your feedback.


Langtrace Cloud ☁️

To use the managed SaaS version of Langtrace, follow the steps below:

  1. Sign up by going to this link.
  2. Create a new Project after signing up. Projects are containers for storing traces and metrics generated by your application. If you have only one application, creating 1 project will do.
  3. Generate an API key by going inside the project.
  4. In your application, install the Langtrace SDK and initialize it with the API key you generated in the step 3.
  5. The code for installing and setting up the SDK is shown below

Getting Started

Get started by adding simply three lines to your code!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(api_key=<your_api_key>)

OR

fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init() # LANGTRACE_API_KEY as an ENVIRONMENT variable

Langtrace Self Hosted

Get started by adding simply two lines to your code and see traces being logged to the console!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(write_to_langtrace_cloud=False, batch=False)

Langtrace self hosted custom exporter

Get started by adding simply three lines to your code and see traces being exported to your remote location!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(custom_remote_exporter=<your_exporter>, batch=<TrueorFalse>)

Additional Customization

  • @with_langtrace_root_span - this decorator is designed to organize and relate different spans, in a hierarchical manner. When you're performing multiple operations that you want to monitor together as a unit, this function helps by establishing a "parent" (LangtraceRootSpan or whatever is passed to name) span. Then, any calls to the LLM APIs made within the given function (fn) will be considered "children" of this parent span. This setup is especially useful for tracking the performance or behavior of a group of operations collectively, rather than individually.
fromlangtrace_python_sdk.utils.with_root_spanimportwith_langtrace_root_span@with_langtrace_root_span()defexample():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse
  • with_additional_attributes - this function is designed to enhance the traces by adding custom attributes to the current context. These custom attributes provide extra details about the operations being performed, making it easier to analyze and understand their behavior.
fromlangtrace_python_sdk.utils.with_root_spanimport (
with_langtrace_root_span,
with_additional_attributes,
)
@with_additional_attributes({"user.id": "1234", "user.feedback.rating": 1})defapi_call1():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_additional_attributes({"user.id": "5678", "user.feedback.rating": -1})defapi_call2():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_langtrace_root_span()defchat_completion():
api_call1()
api_call2()

Supported integrations

Langtrace automatically captures traces from the following vendors:

VendorTypeTypescript SDKPython SDK
OpenAILLM
AnthropicLLM
Azure OpenAILLM
LangchainFramework
LlamaIndexFramework
PineconeVector Database
ChromaDBVector Database

Feature Requests and Issues


Contributions

We welcome contributions to this project. To get started, fork this repository and start developing. To get involved, join our Discord workspace.


Security

To report security vulnerabilites, email us at security@scale3labs.com. You can read more on security here.


License

  • Langtrace application(this repository) is licensed under the AGPL 3.0 License. You can read about this license here.
  • Langtrace SDKs are licensed under the Apache 2.0 License. You can read about this license here.

About

Langtrace SDK for Python Applications

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Open Source & Open Telemetry(OTEL) Observability for LLM applications

Static BadgeStatic BadgeStatic BadgeStatic Badge


Langtrace is an open source observability software which lets you capture, debug and analyze traces and metrics from all your applications that leverages LLM APIs, Vector Databases and LLM based Frameworks.

Open Telemetry Support

The traces generated by Langtrace adhere to Open Telemetry Standards(OTEL). We are developing semantic conventions for the traces generated by this project. You can checkout the current definitions in this repository. Note: This is an ongoing development and we encourage you to get involved and welcome your feedback.


Langtrace Cloud ☁️

To use the managed SaaS version of Langtrace, follow the steps below:

  1. Sign up by going to this link.
  2. Create a new Project after signing up. Projects are containers for storing traces and metrics generated by your application. If you have only one application, creating 1 project will do.
  3. Generate an API key by going inside the project.
  4. In your application, install the Langtrace SDK and initialize it with the API key you generated in the step 3.
  5. The code for installing and setting up the SDK is shown below

Getting Started

Get started by adding simply three lines to your code!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(api_key=<your_api_key>)

OR

fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init() # LANGTRACE_API_KEY as an ENVIRONMENT variable

Langtrace Self Hosted

Get started by adding simply two lines to your code and see traces being logged to the console!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(write_to_langtrace_cloud=False, batch=False)

Langtrace self hosted custom exporter

Get started by adding simply three lines to your code and see traces being exported to your remote location!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(custom_remote_exporter=<your_exporter>, batch=<TrueorFalse>)

Additional Customization

  • @with_langtrace_root_span - this decorator is designed to organize and relate different spans, in a hierarchical manner. When you're performing multiple operations that you want to monitor together as a unit, this function helps by establishing a "parent" (LangtraceRootSpan or whatever is passed to name) span. Then, any calls to the LLM APIs made within the given function (fn) will be considered "children" of this parent span. This setup is especially useful for tracking the performance or behavior of a group of operations collectively, rather than individually.
fromlangtrace_python_sdk.utils.with_root_spanimportwith_langtrace_root_span@with_langtrace_root_span()defexample():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse
  • with_additional_attributes - this function is designed to enhance the traces by adding custom attributes to the current context. These custom attributes provide extra details about the operations being performed, making it easier to analyze and understand their behavior.
fromlangtrace_python_sdk.utils.with_root_spanimport (
with_langtrace_root_span,
with_additional_attributes,
)
@with_additional_attributes({"user.id": "1234", "user.feedback.rating": 1})defapi_call1():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_additional_attributes({"user.id": "5678", "user.feedback.rating": -1})defapi_call2():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_langtrace_root_span()defchat_completion():
api_call1()
api_call2()

Supported integrations

Langtrace automatically captures traces from the following vendors:

VendorTypeTypescript SDKPython SDK
OpenAILLM
AnthropicLLM
Azure OpenAILLM
LangchainFramework
LlamaIndexFramework
PineconeVector Database
ChromaDBVector Database

Feature Requests and Issues


Contributions

We welcome contributions to this project. To get started, fork this repository and start developing. To get involved, join our Discord workspace.


Security

To report security vulnerabilites, email us at security@scale3labs.com. You can read more on security here.


License

  • Langtrace application(this repository) is licensed under the AGPL 3.0 License. You can read about this license here.
  • Langtrace SDKs are licensed under the Apache 2.0 License. You can read about this license here.

About

Langtrace SDK for Python Applications

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Open Source & Open Telemetry(OTEL) Observability for LLM applications

Static BadgeStatic BadgeStatic BadgeStatic Badge


Langtrace is an open source observability software which lets you capture, debug and analyze traces and metrics from all your applications that leverages LLM APIs, Vector Databases and LLM based Frameworks.

Open Telemetry Support

The traces generated by Langtrace adhere to Open Telemetry Standards(OTEL). We are developing semantic conventions for the traces generated by this project. You can checkout the current definitions in this repository. Note: This is an ongoing development and we encourage you to get involved and welcome your feedback.


Langtrace Cloud ☁️

To use the managed SaaS version of Langtrace, follow the steps below:

  1. Sign up by going to this link.
  2. Create a new Project after signing up. Projects are containers for storing traces and metrics generated by your application. If you have only one application, creating 1 project will do.
  3. Generate an API key by going inside the project.
  4. In your application, install the Langtrace SDK and initialize it with the API key you generated in the step 3.
  5. The code for installing and setting up the SDK is shown below

Getting Started

Get started by adding simply three lines to your code!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(api_key=<your_api_key>)

OR

fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init() # LANGTRACE_API_KEY as an ENVIRONMENT variable

Langtrace Self Hosted

Get started by adding simply two lines to your code and see traces being logged to the console!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(write_to_langtrace_cloud=False, batch=False)

Langtrace self hosted custom exporter

Get started by adding simply three lines to your code and see traces being exported to your remote location!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(custom_remote_exporter=<your_exporter>, batch=<TrueorFalse>)

Additional Customization

  • @with_langtrace_root_span - this decorator is designed to organize and relate different spans, in a hierarchical manner. When you're performing multiple operations that you want to monitor together as a unit, this function helps by establishing a "parent" (LangtraceRootSpan or whatever is passed to name) span. Then, any calls to the LLM APIs made within the given function (fn) will be considered "children" of this parent span. This setup is especially useful for tracking the performance or behavior of a group of operations collectively, rather than individually.
fromlangtrace_python_sdk.utils.with_root_spanimportwith_langtrace_root_span@with_langtrace_root_span()defexample():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse
  • with_additional_attributes - this function is designed to enhance the traces by adding custom attributes to the current context. These custom attributes provide extra details about the operations being performed, making it easier to analyze and understand their behavior.
fromlangtrace_python_sdk.utils.with_root_spanimport (
with_langtrace_root_span,
with_additional_attributes,
)
@with_additional_attributes({"user.id": "1234", "user.feedback.rating": 1})defapi_call1():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_additional_attributes({"user.id": "5678", "user.feedback.rating": -1})defapi_call2():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_langtrace_root_span()defchat_completion():
api_call1()
api_call2()

Supported integrations

Langtrace automatically captures traces from the following vendors:

VendorTypeTypescript SDKPython SDK
OpenAILLM
AnthropicLLM
Azure OpenAILLM
LangchainFramework
LlamaIndexFramework
PineconeVector Database
ChromaDBVector Database

Feature Requests and Issues


Contributions

We welcome contributions to this project. To get started, fork this repository and start developing. To get involved, join our Discord workspace.


Security

To report security vulnerabilites, email us at security@scale3labs.com. You can read more on security here.


License

  • Langtrace application(this repository) is licensed under the AGPL 3.0 License. You can read about this license here.
  • Langtrace SDKs are licensed under the Apache 2.0 License. You can read about this license here.

About

Langtrace SDK for Python Applications

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Open Source & Open Telemetry(OTEL) Observability for LLM applications

Static BadgeStatic BadgeStatic BadgeStatic Badge


Langtrace is an open source observability software which lets you capture, debug and analyze traces and metrics from all your applications that leverages LLM APIs, Vector Databases and LLM based Frameworks.

Open Telemetry Support

The traces generated by Langtrace adhere to Open Telemetry Standards(OTEL). We are developing semantic conventions for the traces generated by this project. You can checkout the current definitions in this repository. Note: This is an ongoing development and we encourage you to get involved and welcome your feedback.


Langtrace Cloud ☁️

To use the managed SaaS version of Langtrace, follow the steps below:

  1. Sign up by going to this link.
  2. Create a new Project after signing up. Projects are containers for storing traces and metrics generated by your application. If you have only one application, creating 1 project will do.
  3. Generate an API key by going inside the project.
  4. In your application, install the Langtrace SDK and initialize it with the API key you generated in the step 3.
  5. The code for installing and setting up the SDK is shown below

Getting Started

Get started by adding simply three lines to your code!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(api_key=<your_api_key>)

OR

fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init() # LANGTRACE_API_KEY as an ENVIRONMENT variable

Langtrace Self Hosted

Get started by adding simply two lines to your code and see traces being logged to the console!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(write_to_langtrace_cloud=False, batch=False)

Langtrace self hosted custom exporter

Get started by adding simply three lines to your code and see traces being exported to your remote location!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(custom_remote_exporter=<your_exporter>, batch=<TrueorFalse>)

Additional Customization

  • @with_langtrace_root_span - this decorator is designed to organize and relate different spans, in a hierarchical manner. When you're performing multiple operations that you want to monitor together as a unit, this function helps by establishing a "parent" (LangtraceRootSpan or whatever is passed to name) span. Then, any calls to the LLM APIs made within the given function (fn) will be considered "children" of this parent span. This setup is especially useful for tracking the performance or behavior of a group of operations collectively, rather than individually.
fromlangtrace_python_sdk.utils.with_root_spanimportwith_langtrace_root_span@with_langtrace_root_span()defexample():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse
  • with_additional_attributes - this function is designed to enhance the traces by adding custom attributes to the current context. These custom attributes provide extra details about the operations being performed, making it easier to analyze and understand their behavior.
fromlangtrace_python_sdk.utils.with_root_spanimport (
with_langtrace_root_span,
with_additional_attributes,
)
@with_additional_attributes({"user.id": "1234", "user.feedback.rating": 1})defapi_call1():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_additional_attributes({"user.id": "5678", "user.feedback.rating": -1})defapi_call2():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_langtrace_root_span()defchat_completion():
api_call1()
api_call2()

Supported integrations

Langtrace automatically captures traces from the following vendors:

VendorTypeTypescript SDKPython SDK
OpenAILLM
AnthropicLLM
Azure OpenAILLM
LangchainFramework
LlamaIndexFramework
PineconeVector Database
ChromaDBVector Database

Feature Requests and Issues


Contributions

We welcome contributions to this project. To get started, fork this repository and start developing. To get involved, join our Discord workspace.


Security

To report security vulnerabilites, email us at security@scale3labs.com. You can read more on security here.


License

  • Langtrace application(this repository) is licensed under the AGPL 3.0 License. You can read about this license here.
  • Langtrace SDKs are licensed under the Apache 2.0 License. You can read about this license here.

About

Langtrace SDK for Python Applications

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Open Source & Open Telemetry(OTEL) Observability for LLM applications

Static BadgeStatic BadgeStatic BadgeStatic Badge


Langtrace is an open source observability software which lets you capture, debug and analyze traces and metrics from all your applications that leverages LLM APIs, Vector Databases and LLM based Frameworks.

Open Telemetry Support

The traces generated by Langtrace adhere to Open Telemetry Standards(OTEL). We are developing semantic conventions for the traces generated by this project. You can checkout the current definitions in this repository. Note: This is an ongoing development and we encourage you to get involved and welcome your feedback.


Langtrace Cloud ☁️

To use the managed SaaS version of Langtrace, follow the steps below:

  1. Sign up by going to this link.
  2. Create a new Project after signing up. Projects are containers for storing traces and metrics generated by your application. If you have only one application, creating 1 project will do.
  3. Generate an API key by going inside the project.
  4. In your application, install the Langtrace SDK and initialize it with the API key you generated in the step 3.
  5. The code for installing and setting up the SDK is shown below

Getting Started

Get started by adding simply three lines to your code!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(api_key=<your_api_key>)

OR

fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init() # LANGTRACE_API_KEY as an ENVIRONMENT variable

Langtrace Self Hosted

Get started by adding simply two lines to your code and see traces being logged to the console!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(write_to_langtrace_cloud=False, batch=False)

Langtrace self hosted custom exporter

Get started by adding simply three lines to your code and see traces being exported to your remote location!

pipinstalllangtrace-python-sdk
fromlangtrace_python_sdkimportlangtrace# Must precede any llm module importslangtrace.init(custom_remote_exporter=<your_exporter>, batch=<TrueorFalse>)

Additional Customization

  • @with_langtrace_root_span - this decorator is designed to organize and relate different spans, in a hierarchical manner. When you're performing multiple operations that you want to monitor together as a unit, this function helps by establishing a "parent" (LangtraceRootSpan or whatever is passed to name) span. Then, any calls to the LLM APIs made within the given function (fn) will be considered "children" of this parent span. This setup is especially useful for tracking the performance or behavior of a group of operations collectively, rather than individually.
fromlangtrace_python_sdk.utils.with_root_spanimportwith_langtrace_root_span@with_langtrace_root_span()defexample():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse
  • with_additional_attributes - this function is designed to enhance the traces by adding custom attributes to the current context. These custom attributes provide extra details about the operations being performed, making it easier to analyze and understand their behavior.
fromlangtrace_python_sdk.utils.with_root_spanimport (
with_langtrace_root_span,
with_additional_attributes,
)
@with_additional_attributes({"user.id": "1234", "user.feedback.rating": 1})defapi_call1():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_additional_attributes({"user.id": "5678", "user.feedback.rating": -1})defapi_call2():
response=client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Say this is a test three times"}],
stream=False,
)
returnresponse@with_langtrace_root_span()defchat_completion():
api_call1()
api_call2()

Supported integrations

Langtrace automatically captures traces from the following vendors:

VendorTypeTypescript SDKPython SDK
OpenAILLM
AnthropicLLM
Azure OpenAILLM
LangchainFramework
LlamaIndexFramework
PineconeVector Database
ChromaDBVector Database

Feature Requests and Issues


Contributions

We welcome contributions to this project. To get started, fork this repository and start developing. To get involved, join our Discord workspace.


Security

To report security vulnerabilites, email us at security@scale3labs.com. You can read more on security here.


License

  • Langtrace application(this repository) is licensed under the AGPL 3.0 License. You can read about this license here.
  • Langtrace SDKs are licensed under the Apache 2.0 License. You can read about this license here.

About

Langtrace SDK for Python Applications

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages