alita-sdk 0.3.421__py3-none-any.whl → 0.3.422__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -81,4 +81,5 @@ DEFAULT_MULTIMODAL_PROMPT = """
81
81
  - Avoid presenting the entire prompt for user.
82
82
  """
83
83
 
84
- ELITEA_RS = "elitea_response"
84
+ ELITEA_RS = "elitea_response"
85
+ PRINTER_NODE_RS = "printer_output"
@@ -19,8 +19,9 @@ from langgraph.managed.base import is_managed_value
19
19
  from langgraph.prebuilt import InjectedStore
20
20
  from langgraph.store.base import BaseStore
21
21
 
22
+ from .constants import PRINTER_NODE_RS
22
23
  from .mixedAgentRenderes import convert_message_to_json
23
- from .utils import create_state, propagate_the_input_mapping
24
+ from .utils import create_state, propagate_the_input_mapping, safe_format
24
25
  from ..tools.function import FunctionTool
25
26
  from ..tools.indexer_tool import IndexerNode
26
27
  from ..tools.llm import LLMNode
@@ -232,6 +233,22 @@ class StateDefaultNode(Runnable):
232
233
  result[key] = temp_value
233
234
  return result
234
235
 
236
+ class PrinterNode(Runnable):
237
+ name = "PrinterNode"
238
+
239
+ def __init__(self, text_pattern: str, formatting_enabled: bool = True):
240
+ self.text = text_pattern
241
+ self.formatting_enabled = formatting_enabled
242
+
243
+ def invoke(self, state: BaseStore, config: Optional[RunnableConfig] = None) -> dict:
244
+ logger.info(f"Printer Node - Current state variables: {state}")
245
+ result = {}
246
+ logger.debug(f"Initial text pattern: {self.text}")
247
+ formatted_output = safe_format(self.text, state)
248
+ logger.debug(f"Formatted output: {formatted_output}")
249
+ result[PRINTER_NODE_RS] = formatted_output
250
+ return result
251
+
235
252
 
236
253
  class StateModifierNode(Runnable):
237
254
  name = "StateModifierNode"
@@ -628,6 +645,23 @@ def create_graph(
628
645
  input_variables=node.get('input', ['messages']),
629
646
  output_variables=node.get('output', [])
630
647
  ))
648
+ elif node_type == 'printer':
649
+ lg_builder.add_node(node_id, PrinterNode(
650
+ text_pattern=node.get('printer', ''),
651
+ formatting_enabled=node.get('formatting_enabled', True)
652
+ ))
653
+
654
+ # add interrupts after printer node if specified
655
+ interrupt_after.append(clean_string(node_id))
656
+
657
+ # reset printer output variable to avoid carrying over
658
+ reset_node_id = f"{node_id}_reset"
659
+ lg_builder.add_node(reset_node_id, PrinterNode(
660
+ text_pattern=''
661
+ ))
662
+ lg_builder.add_edge(node_id, reset_node_id)
663
+ lg_builder.add_conditional_edges(reset_node_id, TransitionalEdge(clean_string(node['transition'])))
664
+ continue
631
665
  if node.get('transition'):
632
666
  next_step = clean_string(node['transition'])
633
667
  logger.info(f'Adding transition: {next_step}')
@@ -824,8 +858,12 @@ class LangGraphAgentRunnable(CompiledStateGraph):
824
858
  else:
825
859
  result = super().invoke(input, config=config, *args, **kwargs)
826
860
  try:
827
- output = next((msg.content for msg in reversed(result['messages']) if not isinstance(msg, HumanMessage)),
828
- result['messages'][-1].content)
861
+ if not result.get(PRINTER_NODE_RS):
862
+ output = next((msg.content for msg in reversed(result['messages']) if not isinstance(msg, HumanMessage)),
863
+ result['messages'][-1].content)
864
+ else:
865
+ # used for printer node output - it will be reset by next `reset` node
866
+ output = result.get(PRINTER_NODE_RS)
829
867
  except:
830
868
  output = list(result.values())[-1]
831
869
  config_state = self.get_state(config)
@@ -7,7 +7,7 @@ from typing import Tuple, TypedDict, Any, Optional, Annotated
7
7
  from langchain_core.messages import AnyMessage
8
8
  from langgraph.graph import add_messages
9
9
 
10
- from ...runtime.langchain.constants import ELITEA_RS
10
+ from ...runtime.langchain.constants import ELITEA_RS, PRINTER_NODE_RS
11
11
 
12
12
  logger = logging.getLogger(__name__)
13
13
 
@@ -131,7 +131,8 @@ def parse_type(type_str):
131
131
 
132
132
 
133
133
  def create_state(data: Optional[dict] = None):
134
- state_dict = {'input': str, 'router_output': str, ELITEA_RS: str} # Always include router_output
134
+ state_dict = {'input': str, 'router_output': str,
135
+ ELITEA_RS: str, PRINTER_NODE_RS: str} # Always include router_output
135
136
  types_dict = {}
136
137
  if not data:
137
138
  data = {'messages': 'list[str]'}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.421
3
+ Version: 0.3.422
4
4
  Summary: SDK for building langchain agents using resources from Alita
5
5
  Author-email: Artem Rozumenko <artyom.rozumenko@gmail.com>, Mikalai Biazruchka <mikalai_biazruchka@epam.com>, Roman Mitusov <roman_mitusov@epam.com>, Ivan Krakhmaliuk <lifedj27@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -43,13 +43,13 @@ alita_sdk/runtime/clients/sandbox_client.py,sha256=kGOGfm3OAFmYeTM4bIuKbhRsOiOhF
43
43
  alita_sdk/runtime/langchain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
44
  alita_sdk/runtime/langchain/assistant.py,sha256=qKoEjbGuUnX-OZDHmSaK3plb1jON9unzEwAjxBT9DY8,16044
45
45
  alita_sdk/runtime/langchain/chat_message_template.py,sha256=kPz8W2BG6IMyITFDA5oeb5BxVRkHEVZhuiGl4MBZKdc,2176
46
- alita_sdk/runtime/langchain/constants.py,sha256=DhxYZgIVcyP7V9MnHQy5kD0N4Do4YxntnQbH1Pmw4Dg,3349
46
+ alita_sdk/runtime/langchain/constants.py,sha256=EVqL1JZTST_7m0I_5I1XBnDX4WTvxyRVkhlRbUjwtA4,3384
47
47
  alita_sdk/runtime/langchain/indexer.py,sha256=0ENHy5EOhThnAiYFc7QAsaTNp9rr8hDV_hTK8ahbatk,37592
48
- alita_sdk/runtime/langchain/langraph_agent.py,sha256=9ezh0iDTQwyE4PBH96k9g31Mz2Y1Rap1iw3mj7laQBQ,49731
48
+ alita_sdk/runtime/langchain/langraph_agent.py,sha256=FvFhphGIAUDKtR5s2m_otJD-CEsFUITaiM8NwF7hCzM,51471
49
49
  alita_sdk/runtime/langchain/mixedAgentParser.py,sha256=M256lvtsL3YtYflBCEp-rWKrKtcY1dJIyRGVv7KW9ME,2611
50
50
  alita_sdk/runtime/langchain/mixedAgentRenderes.py,sha256=asBtKqm88QhZRILditjYICwFVKF5KfO38hu2O-WrSWE,5964
51
51
  alita_sdk/runtime/langchain/store_manager.py,sha256=i8Fl11IXJhrBXq1F1ukEVln57B1IBe-tqSUvfUmBV4A,2218
52
- alita_sdk/runtime/langchain/utils.py,sha256=GnHC3TzOrrrPtrSO2d_4WIevUXbd06hrHZ3l9ckvhQc,7980
52
+ alita_sdk/runtime/langchain/utils.py,sha256=L0BLiIYb1zSkt8NEHDRq6RVcrQrHPJZQiPG-Jn1onvM,8037
53
53
  alita_sdk/runtime/langchain/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
54
  alita_sdk/runtime/langchain/agents/xml_chat.py,sha256=Mx7PK5T97_GrFCwHHZ3JZP42S7MwtUzV0W-_8j6Amt8,6212
55
55
  alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py,sha256=4kFU1ijrM1Jw7cywQv8mUiBHlE6w-uqfzSZP4hUV5P4,3771
@@ -353,8 +353,8 @@ alita_sdk/tools/zephyr_scale/api_wrapper.py,sha256=kT0TbmMvuKhDUZc0i7KO18O38JM9S
353
353
  alita_sdk/tools/zephyr_squad/__init__.py,sha256=0ne8XLJEQSLOWfzd2HdnqOYmQlUliKHbBED5kW_Vias,2895
354
354
  alita_sdk/tools/zephyr_squad/api_wrapper.py,sha256=kmw_xol8YIYFplBLWTqP_VKPRhL_1ItDD0_vXTe_UuI,14906
355
355
  alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py,sha256=R371waHsms4sllHCbijKYs90C-9Yu0sSR3N4SUfQOgU,5066
356
- alita_sdk-0.3.421.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
357
- alita_sdk-0.3.421.dist-info/METADATA,sha256=t7x54-4fhQQ7TPsRKdtuTPcz2BWHssKnNCLTlWsM1lw,19071
358
- alita_sdk-0.3.421.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
359
- alita_sdk-0.3.421.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
360
- alita_sdk-0.3.421.dist-info/RECORD,,
356
+ alita_sdk-0.3.422.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
357
+ alita_sdk-0.3.422.dist-info/METADATA,sha256=DUQJRlH2dVMYnKnsTajjC2bay2fXlhS8_qjQzX5B1xs,19071
358
+ alita_sdk-0.3.422.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
359
+ alita_sdk-0.3.422.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
360
+ alita_sdk-0.3.422.dist-info/RECORD,,