Skip to content

Commit c783f0c

Browse files
fix: address thread-safety issues in framework integrations
- Replace shared _step_stack with parent_run_id approach in LangChain - Use proper locking and parent-child relationships from framework callbacks - Replace time.time() with UUID for unique IDs in LlamaIndex - Remove unused _context_to_step tracking in Semantic Kernel - Maintain thread-safe access patterns for concurrent executions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent ca69d27 commit c783f0c

4 files changed

Lines changed: 410 additions & 352 deletions

File tree

src/praisonaiui/integrations/__init__.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,28 @@
1212
def __getattr__(name: str):
1313
"""Lazy import for framework integrations."""
1414
if name in ("AiuiLangChainCallbackHandler", "AsyncAiuiLangChainCallbackHandler"):
15-
from praisonaiui.integrations.langchain import AiuiLangChainCallbackHandler, AsyncAiuiLangChainCallbackHandler
15+
from praisonaiui.integrations.langchain import (
16+
AiuiLangChainCallbackHandler,
17+
AsyncAiuiLangChainCallbackHandler,
18+
)
1619
if name == "AiuiLangChainCallbackHandler":
1720
return AiuiLangChainCallbackHandler
1821
else:
1922
return AsyncAiuiLangChainCallbackHandler
20-
23+
2124
elif name == "AiuiLlamaIndexCallbackHandler":
2225
from praisonaiui.integrations.llama_index import AiuiLlamaIndexCallbackHandler
2326
return AiuiLlamaIndexCallbackHandler
24-
27+
2528
elif name == "AiuiSemanticKernelFilter":
2629
from praisonaiui.integrations.semantic_kernel import AiuiSemanticKernelFilter
2730
return AiuiSemanticKernelFilter
28-
31+
2932
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
3033

3134
__all__ = [
3235
"AiuiLangChainCallbackHandler",
33-
"AsyncAiuiLangChainCallbackHandler",
36+
"AsyncAiuiLangChainCallbackHandler",
3437
"AiuiLlamaIndexCallbackHandler",
3538
"AiuiSemanticKernelFilter",
36-
]
39+
]

0 commit comments

Comments
 (0)