LangChain
If you are not already using ClearML, see Getting Started for setup instructions.
LangChain is a popular framework for developing applications powered by
language models. You can integrate ClearML into your LangChain code using the built-in ClearMLCallbackHandler
. This
class is used to create a ClearML Task to log LangChain assets and metrics.
Integrate ClearML with the following steps:
Set up the
ClearMLCallbackHandler
. The following code creates a ClearML Task calledllm
in thelangchain_callback_demo
project, which captures your script's information, including Git details, uncommitted code, and python environment:from langchain.callbacks import ClearMLCallbackHandler
from langchain_openai import OpenAI
# Set up and use the ClearML Callback
clearml_callback = ClearMLCallbackHandler(
task_type="inference",
project_name="langchain_callback_demo",
task_name="llm",
tags=["test"],
# Change the following parameters based on the amount of detail you want tracked
visualize=True,
complexity_metrics=True,
stream_logs=True,
)
llm = OpenAI(temperature=0, callbacks=[clearml_callback])You can also pass the following parameters to the
ClearMLCallbackHandler
object:task_type
– The type of ClearML task to create (see task types)tags
– A list of tags to add to the taskvisualize
- Set toTrue
for ClearML to capture the run's Dependencies and Entities plots to the ClearML taskcomplexity_metrics
- Set toTrue
to log complexity metricsstream_logs
- Set toTrue
to stream callback actions to ClearML Parameters.
Use
ClearMLCallbackHandler.flush_tracker()
after each model request to make sure all outputs, including metrics and prompts, are logged to ClearML:llm_result = llm.generate(["Tell me a joke", "Tell me a poem"] * 3)
clearml_callback.flush_tracker(langchain_asset=llm, name="simple_sequential")Specify the following parameters:
name
- A string identifying a context for the logged information (Tip: Use different names to log different model conversations).langchain_asset
- The LangChain asset to save. This can also be a LangChain agent, and ClearML will track its results.finish
- Set toTrue
to close the ClearML task after logging. If set toTrue
, the Callback cannot be used anymore.
Additional Logging Options
To augment its automatic logging, ClearML also provides an explicit logging interface.
See more information about explicitly logging information to a ClearML Task:
- Models
- Configuration (e.g. parameters, configuration files)
- Artifacts (e.g. output files or python objects created by a task)
- Scalars
- Text/Plots/Debug Samples