ref: Remove some useless asyncio.to_thread (#5149)

Remove some useless asyncio.to_thread
This commit is contained in:
Christophe Bornet 2024-12-08 20:13:08 +01:00 committed by GitHub
commit c0b25fa651
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 44 additions and 94 deletions

View file

@ -1,56 +1,10 @@
import asyncio
from typing import cast
from langflow.custom import Component
from langflow.memory import astore_message
from langflow.schema import Data
from langflow.schema.message import Message
class ChatComponent(Component):
display_name = "Chat Component"
description = "Use as base for chat components."
async def build_with_data(
self,
*,
sender: str | None = "User",
sender_name: str | None = "User",
input_value: str | Data | Message | None = None,
files: list[str] | None = None,
session_id: str | None = None,
return_message: bool = False,
) -> str | Message:
message = await asyncio.to_thread(self._create_message, input_value, sender, sender_name, files, session_id)
message_text = message.text if not return_message else message
self.status = message_text
if session_id and isinstance(message, Message) and isinstance(message.text, str):
flow_id = self.graph.flow_id if hasattr(self, "graph") else None
messages = await astore_message(message, flow_id=flow_id)
self.status = messages
self._send_messages_events(messages)
return cast("str | Message", message_text)
def _create_message(self, input_value, sender, sender_name, files, session_id) -> Message:
if isinstance(input_value, Data):
return Message.from_data(input_value)
return Message(
text=input_value,
sender=sender,
sender_name=sender_name,
files=files,
session_id=session_id,
category="message",
)
def _send_messages_events(self, messages) -> None:
if hasattr(self, "_event_manager") and self._event_manager:
for stored_message in messages:
id_ = stored_message.id
self._send_message_event(message=stored_message, id_=id_)
def get_properties_from_source_component(self):
if hasattr(self, "_vertex") and hasattr(self._vertex, "incoming_edges") and self._vertex.incoming_edges:
source_id = self._vertex.incoming_edges[0].source_id

View file

@ -296,9 +296,6 @@ class DirectoryReader:
file_content = str(StringCompressor(file_content).compress_string())
return True, file_content
async def get_output_types_from_code_async(self, code: str):
return await asyncio.to_thread(self.get_output_types_from_code, code)
async def abuild_component_menu_list(self, file_paths):
response = {"menu": []}
logger.debug("-------------------- Async Building component menu list --------------------")
@ -328,7 +325,7 @@ class DirectoryReader:
if validation_result:
try:
output_types = await self.get_output_types_from_code_async(result_content)
output_types = await asyncio.to_thread(self.get_output_types_from_code, result_content)
except Exception: # noqa: BLE001
logger.exception("Error while getting output types from code")
output_types = [component_name_camelcase]

View file

@ -114,10 +114,10 @@ class TracingService(Service):
async def initialize_tracers(self) -> None:
try:
await self.start()
await asyncio.to_thread(self._initialize_langsmith_tracer)
await asyncio.to_thread(self._initialize_langwatch_tracer)
await asyncio.to_thread(self._initialize_langfuse_tracer)
await asyncio.to_thread(self._initialize_arize_phoenix_tracer)
self._initialize_langsmith_tracer()
self._initialize_langwatch_tracer()
self._initialize_langfuse_tracer()
self._initialize_arize_phoenix_tracer()
except Exception as e: # noqa: BLE001
logger.debug(f"Error initializing tracers: {e}")