Skip to content

Commit

Permalink
fix(llama-index): workflow integration (#1095) (#1097)
Browse files Browse the repository at this point in the history
Co-authored-by: Petros Mitseas <[email protected]>
  • Loading branch information
hassiebp and petros94 authored Jan 31, 2025
1 parent 658210e commit 8547164
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions langfuse/llama_index/_span_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
)

from logging import getLogger
from pydantic import BaseModel

from ._context import InstrumentorContext

logger = getLogger(__name__)
Expand All @@ -25,6 +27,7 @@
StreamingResponse,
AsyncStreamingResponse,
)
from llama_index.core.workflow import Context

except ImportError:
raise ModuleNotFoundError(
Expand Down Expand Up @@ -243,6 +246,9 @@ def _parse_generation_input(
def _parse_output_metadata(
self, instance: Optional[Any], result: Optional[Any]
) -> Tuple[Optional[Any], Optional[Any]]:
if isinstance(result, BaseModel):
return result.__dict__, None

if not result or isinstance(
result,
(Generator, AsyncGenerator, StreamingResponse, AsyncStreamingResponse),
Expand Down Expand Up @@ -289,4 +295,12 @@ def _parse_input(self, *, bound_args: inspect.BoundArguments):
if "nodes" in arguments:
return {"num_nodes": len(arguments["nodes"])}

# Remove Context since it is in not properly serialized
ctx_key = None
for arg, val in arguments.items():
if isinstance(val, Context):
ctx_key = arg
if ctx_key in arguments:
return {arg: val for arg, val in arguments.items() if arg != ctx_key}

return arguments

0 comments on commit 8547164

Please sign in to comment.