alita-sdk 0.3.126__tar.gz → 0.3.127__tar.gz

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.
Files changed (108) hide show
  1. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/PKG-INFO +1 -1
  2. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/pyproject.toml +1 -1
  3. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/langraph_agent.py +35 -3
  4. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/tool.py +8 -2
  5. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk.egg-info/PKG-INFO +1 -1
  6. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/LICENSE +0 -0
  7. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/README.md +0 -0
  8. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/requirements.txt +0 -0
  9. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/setup.cfg +0 -0
  10. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/__init__.py +0 -0
  11. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/__init__.py +0 -0
  12. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/agents/__init__.py +0 -0
  13. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/agents/llamaAgentParser.py +0 -0
  14. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/clients/__init__.py +0 -0
  15. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/clients/artifact.py +0 -0
  16. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/clients/client.py +0 -0
  17. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/clients/datasource.py +0 -0
  18. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/clients/prompt.py +0 -0
  19. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/community/__init__.py +0 -0
  20. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/community/analysis/__init__.py +0 -0
  21. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
  22. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
  23. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/community/browseruse/__init__.py +0 -0
  24. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/community/browseruse/api_wrapper.py +0 -0
  25. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/community/utils.py +0 -0
  26. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/__init__.py +0 -0
  27. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/agents/__init__.py +0 -0
  28. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/agents/xml_chat.py +0 -0
  29. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/assistant.py +0 -0
  30. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/chat_message_template.py +0 -0
  31. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/constants.py +0 -0
  32. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  33. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  34. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  35. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  36. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  37. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  38. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  39. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaImageLoader.py +0 -0
  40. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  41. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  42. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/AlitaTableLoader.py +0 -0
  43. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/__init__.py +0 -0
  44. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/constants.py +0 -0
  45. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/document_loaders/utils.py +0 -0
  46. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/indexer.py +0 -0
  47. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/interfaces/__init__.py +0 -0
  48. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/interfaces/kwextractor.py +0 -0
  49. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/interfaces/llm_processor.py +0 -0
  50. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/interfaces/loaders.py +0 -0
  51. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/interfaces/splitters.py +0 -0
  52. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/mixedAgentParser.py +0 -0
  53. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/mixedAgentRenderes.py +0 -0
  54. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/retrievers/AlitaRetriever.py +0 -0
  55. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/retrievers/VectorstoreRetriever.py +0 -0
  56. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/retrievers/__init__.py +0 -0
  57. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/__init__.py +0 -0
  58. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/bdd_parser/__init__.py +0 -0
  59. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  60. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  61. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/bdd_parser/feature_types.py +0 -0
  62. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/bdd_parser/parser.py +0 -0
  63. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/git.py +0 -0
  64. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/log.py +0 -0
  65. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/quota.py +0 -0
  66. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/state.py +0 -0
  67. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/utils.py +0 -0
  68. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/tools/vector.py +0 -0
  69. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/langchain/utils.py +0 -0
  70. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/llamaindex/assistant.py +0 -0
  71. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/llms/__init__.py +0 -0
  72. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/llms/alita.py +0 -0
  73. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/llms/preloaded.py +0 -0
  74. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/toolkits/__init__.py +0 -0
  75. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/toolkits/application.py +0 -0
  76. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/toolkits/artifact.py +0 -0
  77. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/toolkits/datasource.py +0 -0
  78. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/toolkits/prompt.py +0 -0
  79. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/toolkits/subgraph.py +0 -0
  80. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/toolkits/tools.py +0 -0
  81. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/toolkits/vectorstore.py +0 -0
  82. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/__init__.py +0 -0
  83. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/application.py +0 -0
  84. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/artifact.py +0 -0
  85. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/datasource.py +0 -0
  86. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/echo.py +0 -0
  87. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/function.py +0 -0
  88. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/indexer_tool.py +0 -0
  89. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/llm.py +0 -0
  90. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/loop.py +0 -0
  91. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/loop_output.py +0 -0
  92. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/mcp_server_tool.py +0 -0
  93. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/pgvector_search.py +0 -0
  94. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/prompt.py +0 -0
  95. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/router.py +0 -0
  96. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/tools/vectorstore.py +0 -0
  97. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/utils/AlitaCallback.py +0 -0
  98. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/utils/__init__.py +0 -0
  99. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/utils/evaluate.py +0 -0
  100. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/utils/logging.py +0 -0
  101. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/utils/streamlit.py +0 -0
  102. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk/utils/utils.py +0 -0
  103. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk.egg-info/SOURCES.txt +0 -0
  104. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk.egg-info/dependency_links.txt +0 -0
  105. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk.egg-info/requires.txt +0 -0
  106. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/alita_sdk.egg-info/top_level.txt +0 -0
  107. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/tests/__init__.py +0 -0
  108. {alita_sdk-0.3.126 → alita_sdk-0.3.127}/src/tests/test_jira_analysis.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.126
3
+ Version: 0.3.127
4
4
  Summary: SDK for building langchain agents using resouces 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 <lifedjik@gmail.com>
6
6
  Project-URL: Homepage, https://projectalita.ai
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "alita_sdk"
7
- version = "0.3.126"
7
+ version = "0.3.127"
8
8
  description = "SDK for building langchain agents using resouces from Alita"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -4,6 +4,7 @@ from uuid import uuid4
4
4
  from typing import Dict
5
5
 
6
6
  import yaml
7
+ import ast
7
8
  from langchain_core.callbacks import dispatch_custom_event
8
9
  from langchain_core.messages import HumanMessage
9
10
  from langchain_core.runnables import Runnable
@@ -211,6 +212,25 @@ class TransitionalEdge(Runnable):
211
212
  )
212
213
  return self.next_step if self.next_step != 'END' else END
213
214
 
215
+ class StateDefaultNode(Runnable):
216
+ name = "StateDefaultNode"
217
+
218
+ def __init__(self, default_vars: dict = {}):
219
+ self.default_vars = default_vars
220
+
221
+ def invoke(self, state: BaseStore, config: Optional[RunnableConfig] = None) -> dict:
222
+ logger.info("Setting default state variables")
223
+ result = {}
224
+ for key, value in self.default_vars.items():
225
+ if isinstance(value, dict) and 'value' in value:
226
+ temp_value = value['value']
227
+ try:
228
+ result[key] = ast.literal_eval(temp_value)
229
+ except:
230
+ logger.debug("Unable to evaluate value, using as is")
231
+ result[key] = temp_value
232
+ return result
233
+
214
234
 
215
235
  class StateModifierNode(Runnable):
216
236
  name = "StateModifierNode"
@@ -353,7 +373,8 @@ def create_graph(
353
373
  logger.debug(f"Schema: {schema}")
354
374
  logger.debug(f"Tools: {tools}")
355
375
  logger.info(f"Tools: {[tool.name for tool in tools]}")
356
- state_class = create_state(schema.get('state', {}))
376
+ state = schema.get('state', {})
377
+ state_class = create_state(state)
357
378
  lg_builder = StateGraph(state_class)
358
379
  interrupt_before = [clean_string(every) for every in schema.get('interrupt_before', [])]
359
380
  interrupt_after = [clean_string(every) for every in schema.get('interrupt_after', [])]
@@ -503,9 +524,20 @@ def create_graph(
503
524
  conditional_outputs=node['condition'].get('conditional_outputs', []),
504
525
  default_output=node['condition'].get('default_output', 'END')))
505
526
 
506
- lg_builder.set_entry_point(clean_string(schema['entry_point']))
527
+ # set default value for state variable at START
528
+ entry_point = clean_string(schema['entry_point'])
529
+ for key, value in state.items():
530
+ if 'type' in value and 'value' in value:
531
+ # set default value for state variable if it is defined in the schema
532
+ state_default_node = StateDefaultNode(default_vars=state)
533
+ lg_builder.add_node(state_default_node.name, state_default_node)
534
+ lg_builder.set_entry_point(state_default_node.name)
535
+ lg_builder.add_conditional_edges(state_default_node.name, TransitionalEdge(entry_point))
536
+ break
537
+ else:
538
+ # if no state variables are defined, set the entry point directly
539
+ lg_builder.set_entry_point(entry_point)
507
540
 
508
- # assign default values
509
541
  interrupt_before = interrupt_before or []
510
542
  interrupt_after = interrupt_after or []
511
543
 
@@ -10,6 +10,7 @@ from langchain_core.tools import BaseTool
10
10
  from langchain_core.utils.function_calling import convert_to_openai_tool
11
11
  from pydantic import ValidationError, BaseModel, create_model
12
12
 
13
+ from .application import Application
13
14
  from ..langchain.utils import _extract_json
14
15
 
15
16
  logger = logging.getLogger(__name__)
@@ -74,8 +75,9 @@ Anwer must be JSON only extractable by JSON.LOADS."""
74
75
  ))
75
76
  ]
76
77
  if self.structured_output:
77
- # cut defaults from schema
78
- fields = {name: (field.annotation, ...) for name, field in self.tool.args_schema.model_fields.items()}
78
+ # cut defaults from schema and remove chat_history for application as a tool
79
+ fields = {name: (field.annotation, ...) for name, field
80
+ in self.tool.args_schema.model_fields.items() if name != 'chat_history'}
79
81
  input_schema = create_model('NewModel', **fields)
80
82
 
81
83
  llm = self.client.with_structured_output(input_schema)
@@ -87,6 +89,10 @@ Anwer must be JSON only extractable by JSON.LOADS."""
87
89
  result = _extract_json(completion.content.strip())
88
90
  logger.info(f"ToolNode tool params: {result}")
89
91
  try:
92
+ # handler for application added as a tool
93
+ if isinstance(self.tool, Application):
94
+ # set empty chat history
95
+ result['chat_history'] = None
90
96
  tool_result = self.tool.invoke(result, config=config, kwargs=kwargs)
91
97
  dispatch_custom_event(
92
98
  "on_tool_node", {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.126
3
+ Version: 0.3.127
4
4
  Summary: SDK for building langchain agents using resouces 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 <lifedjik@gmail.com>
6
6
  Project-URL: Homepage, https://projectalita.ai
File without changes
File without changes
File without changes
File without changes