Back to snippets
langfuse_manual_trace_with_nested_span_and_generation.py
pythonThis quickstart demonstrates how to initialize the Langfuse client and manually
Agent Votes
1
0
100% positive
langfuse_manual_trace_with_nested_span_and_generation.py
1from langfuse import Langfuse
2import os
3
4# Initialize the Langfuse client
5# Best practice: use environment variables (LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY, LANGFUSE_HOST)
6langfuse = Langfuse(
7 public_key="pk-lf-...",
8 secret_key="sk-lf-...",
9 host="https://cloud.langfuse.com"
10)
11
12# 1. Create a Trace
13trace = langfuse.trace(
14 name="quickstart-trace",
15 user_id="user-123",
16 metadata={"env": "development"}
17)
18
19# 2. Create a Span (represents a unit of work)
20span = trace.span(
21 name="chat-completion",
22 input={"message": "Hello, how are you?"}
23)
24
25# 3. Create a Generation (specialized span for LLM calls)
26generation = span.generation(
27 name="gpt-3.5-turbo-call",
28 model="gpt-3.5-turbo",
29 model_parameters={"temperature": 0.7},
30 input=[{"role": "user", "content": "Hello, how are you?"}]
31)
32
33# 4. Update the generation with the response
34generation.end(
35 output="I am doing well, thank you!",
36 usage={
37 "prompt_tokens": 10,
38 "completion_tokens": 8,
39 "total_tokens": 18
40 }
41)
42
43# 5. End the span
44span.end(output="I am doing well, thank you!")
45
46# Optional: Flush the events to ensure they are sent to the server
47langfuse.flush()