Integrate Helicone with LangChain by configuring your LLM with Helicone’s base URL:
from langchain_openai import ChatOpenAIimport os# Configure LLM with Heliconellm = ChatOpenAI( model="gpt-4o-mini", openai_api_key=os.getenv("OPENAI_API_KEY"), openai_api_base="https://oai.helicone.ai/v1", default_headers={ "Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", },)# Use in your chainsresponse = llm.invoke("What is the capital of France?")print(response.content)
from langchain.chains import LLMChain, SequentialChainfrom langchain.prompts import PromptTemplate# First chain: Generate a topictopic_prompt = PromptTemplate( input_variables=["subject"], template="Generate a specific topic about {subject}")topic_chain = LLMChain(llm=llm, prompt=topic_prompt, output_key="topic")# Second chain: Write about the topicwrite_prompt = PromptTemplate( input_variables=["topic"], template="Write a paragraph about {topic}")write_chain = LLMChain(llm=llm, prompt=write_prompt, output_key="paragraph")# Combine chainsoverall_chain = SequentialChain( chains=[topic_chain, write_chain], input_variables=["subject"], output_variables=["topic", "paragraph"],)result = overall_chain({"subject": "artificial intelligence"})# Each step is logged separately to Helicone
import uuidsession_id = str(uuid.uuid4())llm = ChatOpenAI( model="gpt-4o-mini", openai_api_base="https://oai.helicone.ai/v1", default_headers={ "Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", "Helicone-Session-Id": session_id, "Helicone-Session-Name": "LangChain Chatbot", },)# All calls with this LLM instance are grouped in the same session
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandlerllm = ChatOpenAI( model="gpt-4o-mini", streaming=True, callbacks=[StreamingStdOutCallbackHandler()], openai_api_base="https://oai.helicone.ai/v1", default_headers={ "Helicone-Auth": f"Bearer {os.getenv('HELICONE_API_KEY')}", },)response = llm.invoke("Write a short story")# Streams to stdout while logging to Helicone