Skip to content
26 changes: 18 additions & 8 deletions kedro-agentic-workflows/conf/base/genai-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,22 @@ intent_prompt_langfuse:
# credentials: opik_credentials

# --- Tracing ---
intent_tracer_langfuse:
type: kedro_datasets_experimental.langfuse.LangfuseTraceDataset
credentials: langfuse_credentials
mode: langchain # langchain | openai | sdk
# intent_tracer_langfuse:
# type: kedro_datasets_experimental.langfuse.LangfuseTraceDataset
# credentials: langfuse_credentials
# mode: langchain # langchain | openai | sdk | autogen

intent_tracer_opik:
type: kedro_datasets_experimental.opik.OpikTraceDataset
credentials: opik_credentials
mode: langchain # langchain | openai | sdk | autogen

# autogen_tracer_langfuse:
# type: kedro_datasets_experimental.langfuse.LangfuseTraceDataset
# credentials: langfuse_credentials
# mode: autogen

# intent_tracer_opik:
# type: kedro_datasets_experimental.opik.OpikTraceDataset
# credentials: opik_credentials
# mode: openai # langchain | openai | sdk
autogen_tracer_opik:
type: kedro_datasets_experimental.opik.OpikTraceDataset
credentials: opik_credentials
mode: autogen
2 changes: 1 addition & 1 deletion kedro-agentic-workflows/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ipython>=8.10
jupyterlab>=3.0
notebook
kedro>=1.2.0
kedro-datasets[pandas-sqltabledataset,pandas-sqlquerydataset,yaml-yamldataset,opik,langchain-chatopenaidataset, langfuse]~=9.0.0
kedro-datasets[pandas-sqltabledataset,pandas-sqlquerydataset,yaml-yamldataset,opik,opik-opiktracedataset-autogen,langchain-chatopenaidataset,langfuse]~=9.0.0
kedro-viz>=12.3.0
langgraph~=1.0.0
scikit-learn~=1.7.2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def create_pipeline(**kwargs) -> Pipeline:
"params:user_id",
"user_data",
"session_id",
"intent_tracer_langfuse",
"intent_tracer_opik",
],
outputs=["user_context", "session_config"],
name="load_context_node",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ def generate_response(
intent_detection_result: dict,
user_context: dict,
session_config: dict,
tracer,
) -> dict:
"""
Run the ResponseGenerationAgent to produce a final answer.
Expand All @@ -30,17 +31,37 @@ def generate_response(
result = {"messages": [AIMessage(content=message)]}

else:
agent = ResponseGenerationAgentAutogen(context=response_generation_context)
agent.compile()
# Wrap agent execution in a span for tracing
with tracer.start_as_current_span("response_generation") as span:
# Log input context to the span
span.set_attribute("intent", intent_detection_result["intent"])
span.set_attribute(
"intent_reason", intent_detection_result.get("reason", "")
)
span.set_attribute(
"user_id",
user_context.get("profile", {}).get("user_id", "unknown"),
)

context = {
"messages": [],
"intent": intent_detection_result["intent"],
"intent_generator_summary": intent_detection_result["reason"],
"user_context": user_context,
}
agent = ResponseGenerationAgentAutogen(context=response_generation_context)
agent.compile()

result = agent.invoke(context, session_config)
context = {
"messages": [],
"intent": intent_detection_result["intent"],
"intent_generator_summary": intent_detection_result["reason"],
"user_context": user_context,
}

result = agent.invoke(context, session_config)

# Log output to the span
if result.get("messages"):
span.set_attribute(
"response", result["messages"][-1].content[:500]
) # Truncate for safety
span.set_attribute("claim_created", result.get("claim_created", False))
span.set_attribute("escalated", result.get("escalated", False))

for m in result["messages"]:
try:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
from kedro.pipeline import Pipeline, node, pipeline, llm_context_node, tool

from .nodes import (
generate_response,
log_response_and_end_session,
)
from .nodes import generate_response, log_response_and_end_session
from .tools import build_lookup_docs, build_get_user_claims, build_create_claim


Expand All @@ -28,6 +25,8 @@ def create_pipeline(**kwargs) -> Pipeline:
"intent_detection_result",
"user_context",
"session_config",
# "autogen_tracer_langfuse"
"autogen_tracer_opik"
],
outputs="final_response",
name="generate_response_node",
Expand All @@ -39,4 +38,4 @@ def create_pipeline(**kwargs) -> Pipeline:
name="end_session_node",
),
]
)
)