openinference-instrumentation-langchain (original) (raw)
Project description
Python auto-instrumentation library for LangChain.
These traces are fully OpenTelemetry compatible and can be sent to an OpenTelemetry collector for viewing, such as arize-phoenix.
Installation
pip install openinference-instrumentation-langchain
Quickstart
Install packages needed for this demonstration.
pip install openinference-instrumentation-langchain langchain arize-phoenix opentelemetry-sdk opentelemetry-exporter-otlp
Start the Phoenix app in the background as a collector. By default, it listens on http://localhost:6006
. You can visit the app via a browser at the same address.
The Phoenix app does not send data over the internet. It only operates locally on your machine.
python -m phoenix.server.main serve
The following Python code sets up the LangChainInstrumentor
to trace langchain
and send the traces to Phoenix at the endpoint shown below.
from langchain.chains import LLMChain from langchain_core.prompts import PromptTemplate from langchain_openai import OpenAI from openinference.instrumentation.langchain import LangChainInstrumentor from opentelemetry import trace as trace_api from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter from opentelemetry.sdk import trace as trace_sdk from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor
endpoint = "http://127.0.0.1:6006/v1/traces" tracer_provider = trace_sdk.TracerProvider() trace_api.set_tracer_provider(tracer_provider) tracer_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(endpoint))) tracer_provider.add_span_processor(SimpleSpanProcessor(ConsoleSpanExporter()))
LangChainInstrumentor().instrument()
To demonstrate langchain
tracing, we'll make a simple chain to tell a joke. First, configure your OpenAI credentials.
import os
os.environ["OPENAI_API_KEY"] = ""
Now we can create a chain and run it.
prompt_template = "Tell me a {adjective} joke" prompt = PromptTemplate(input_variables=["adjective"], template=prompt_template) llm = LLMChain(llm=OpenAI(), prompt=prompt, metadata={"category": "jokes"}) completion = llm.predict(adjective="funny", metadata={"variant": "funny"}) print(completion)
Visit the Phoenix app at http://localhost:6006
to see the traces.
More Info
- More info on OpenInference and Phoenix
- How to customize spans to track sessions, metadata, etc.
- How to account for private information and span payload customization
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file openinference_instrumentation_langchain-0.1.43.tar.gz
.
File metadata
- Download URL: openinference_instrumentation_langchain-0.1.43.tar.gz
- Upload date: May 20, 2025
- Size: 52.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
Hashes for openinference_instrumentation_langchain-0.1.43.tar.gz | Algorithm | Hash digest | | | ----------- | ---------------------------------------------------------------- | | | SHA256 | 18b5ac3ba52fcb85a576dd94175e025c6cbacce9cb2619a8f8b281b2c30e06cb | | | MD5 | 80ce3d29f1f42c7526e6a440175424a9 | | | BLAKE2b-256 | 6984f85ea5c4b73ee6570f5f4a0a247243fc08cde8ed3b5c4ae40df7b9580c38 | |
See more details on using hashes here.
File details
Details for the file openinference_instrumentation_langchain-0.1.43-py3-none-any.whl
.
File metadata
- Download URL: openinference_instrumentation_langchain-0.1.43-py3-none-any.whl
- Upload date: May 20, 2025
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
Hashes for openinference_instrumentation_langchain-0.1.43-py3-none-any.whl | Algorithm | Hash digest | | | ----------- | ---------------------------------------------------------------- | | | SHA256 | 66645839eac2c3cf986bc917ef309dc89c468f3bb0a56b20eaba6c89b8b44e9a | | | MD5 | b0e9a44d3fa873cfced7bb60a9649c8e | | | BLAKE2b-256 | 27b108b85cf9af64d8e994e554edda3898af5563b9b6073f6690a463af67338d | |