forked from Archives/langchain
d3ec00b566
Co-authored-by: Nuno Campos <nuno@boringbits.io> Co-authored-by: Davis Chase <130488702+dev2049@users.noreply.github.com> Co-authored-by: Zander Chase <130414180+vowelparrot@users.noreply.github.com> Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
58 lines
2.5 KiB
Markdown
58 lines
2.5 KiB
Markdown
# Tracing
|
||
|
||
By enabling tracing in your LangChain runs, you’ll be able to more effectively visualize, step through, and debug your chains and agents.
|
||
|
||
First, you should install tracing and set up your environment properly.
|
||
You can use either a locally hosted version of this (uses Docker) or a cloud hosted version (in closed alpha).
|
||
If you're interested in using the hosted platform, please fill out the form [here](https://forms.gle/tRCEMSeopZf6TE3b6).
|
||
|
||
- [Locally Hosted Setup](./tracing/local_installation.md)
|
||
- [Cloud Hosted Setup](./tracing/hosted_installation.md)
|
||
|
||
## Tracing Walkthrough
|
||
|
||
When you first access the UI, you should see a page with your tracing sessions.
|
||
An initial one "default" should already be created for you.
|
||
A session is just a way to group traces together.
|
||
If you click on a session, it will take you to a page with no recorded traces that says "No Runs."
|
||
You can create a new session with the new session form.
|
||
|
||
![](tracing/homepage.png)
|
||
|
||
If we click on the `default` session, we can see that to start we have no traces stored.
|
||
|
||
![](tracing/default_empty.png)
|
||
|
||
If we now start running chains and agents with tracing enabled, we will see data show up here.
|
||
To do so, we can run [this notebook](tracing/agent_with_tracing.ipynb) as an example.
|
||
After running it, we will see an initial trace show up.
|
||
|
||
![](tracing/first_trace.png)
|
||
|
||
From here we can explore the trace at a high level by clicking on the arrow to show nested runs.
|
||
We can keep on clicking further and further down to explore deeper and deeper.
|
||
|
||
![](tracing/explore.png)
|
||
|
||
We can also click on the "Explore" button of the top level run to dive even deeper.
|
||
Here, we can see the inputs and outputs in full, as well as all the nested traces.
|
||
|
||
![](tracing/explore_trace.png)
|
||
|
||
We can keep on exploring each of these nested traces in more detail.
|
||
For example, here is the lowest level trace with the exact inputs/outputs to the LLM.
|
||
|
||
![](tracing/explore_llm.png)
|
||
|
||
## Changing Sessions
|
||
|
||
1. To initially record traces to a session other than `"default"`, you can set the `LANGCHAIN_SESSION` environment variable to the name of the session you want to record to:
|
||
|
||
```python
|
||
import os
|
||
os.environ["LANGCHAIN_TRACING"] = "true"
|
||
os.environ["LANGCHAIN_SESSION"] = "my_session" # Make sure this session actually exists. You can create a new session in the UI.
|
||
```
|
||
|
||
2. To switch sessions mid-script or mid-notebook, do NOT set the `LANGCHAIN_SESSION` environment variable. Instead: `langchain.set_tracing_callback_manager(session_name="my_session")`
|