alita-sdk 0.3.121__tar.gz → 0.3.123__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 (106) hide show
  1. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/PKG-INFO +1 -1
  2. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/pyproject.toml +1 -1
  3. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaConfluenceLoader.py +1 -1
  4. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/interfaces/llm_processor.py +7 -0
  5. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/langraph_agent.py +8 -2
  6. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/function.py +2 -3
  7. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/llm.py +10 -1
  8. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk.egg-info/PKG-INFO +1 -1
  9. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/LICENSE +0 -0
  10. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/README.md +0 -0
  11. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/requirements.txt +0 -0
  12. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/setup.cfg +0 -0
  13. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/__init__.py +0 -0
  14. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/__init__.py +0 -0
  15. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/agents/__init__.py +0 -0
  16. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/agents/llamaAgentParser.py +0 -0
  17. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/clients/__init__.py +0 -0
  18. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/clients/artifact.py +0 -0
  19. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/clients/client.py +0 -0
  20. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/clients/datasource.py +0 -0
  21. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/clients/prompt.py +0 -0
  22. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/community/__init__.py +0 -0
  23. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/community/analysis/__init__.py +0 -0
  24. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
  25. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
  26. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/community/browseruse/__init__.py +0 -0
  27. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/community/browseruse/api_wrapper.py +0 -0
  28. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/community/utils.py +0 -0
  29. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/__init__.py +0 -0
  30. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/agents/__init__.py +0 -0
  31. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/agents/xml_chat.py +0 -0
  32. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/assistant.py +0 -0
  33. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/chat_message_template.py +0 -0
  34. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/constants.py +0 -0
  35. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  36. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  37. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  38. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  39. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  40. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  41. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaImageLoader.py +0 -0
  42. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  43. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  44. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/AlitaTableLoader.py +0 -0
  45. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/__init__.py +0 -0
  46. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/constants.py +0 -0
  47. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/document_loaders/utils.py +0 -0
  48. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/indexer.py +0 -0
  49. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/interfaces/__init__.py +0 -0
  50. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/interfaces/kwextractor.py +0 -0
  51. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/interfaces/loaders.py +0 -0
  52. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/interfaces/splitters.py +0 -0
  53. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/mixedAgentParser.py +0 -0
  54. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/mixedAgentRenderes.py +0 -0
  55. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/retrievers/AlitaRetriever.py +0 -0
  56. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/retrievers/VectorstoreRetriever.py +0 -0
  57. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/retrievers/__init__.py +0 -0
  58. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/__init__.py +0 -0
  59. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/bdd_parser/__init__.py +0 -0
  60. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  61. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  62. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/bdd_parser/feature_types.py +0 -0
  63. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/bdd_parser/parser.py +0 -0
  64. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/git.py +0 -0
  65. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/log.py +0 -0
  66. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/quota.py +0 -0
  67. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/state.py +0 -0
  68. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/utils.py +0 -0
  69. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/tools/vector.py +0 -0
  70. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/langchain/utils.py +0 -0
  71. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/llamaindex/assistant.py +0 -0
  72. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/llms/__init__.py +0 -0
  73. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/llms/alita.py +0 -0
  74. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/llms/preloaded.py +0 -0
  75. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/toolkits/__init__.py +0 -0
  76. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/toolkits/application.py +0 -0
  77. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/toolkits/artifact.py +0 -0
  78. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/toolkits/datasource.py +0 -0
  79. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/toolkits/prompt.py +0 -0
  80. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/toolkits/tools.py +0 -0
  81. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/toolkits/vectorstore.py +0 -0
  82. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/__init__.py +0 -0
  83. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/application.py +0 -0
  84. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/artifact.py +0 -0
  85. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/datasource.py +0 -0
  86. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/echo.py +0 -0
  87. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/indexer_tool.py +0 -0
  88. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/loop.py +0 -0
  89. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/loop_output.py +0 -0
  90. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/pgvector_search.py +0 -0
  91. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/prompt.py +0 -0
  92. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/router.py +0 -0
  93. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/tool.py +0 -0
  94. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/tools/vectorstore.py +0 -0
  95. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/utils/AlitaCallback.py +0 -0
  96. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/utils/__init__.py +0 -0
  97. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/utils/evaluate.py +0 -0
  98. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/utils/logging.py +0 -0
  99. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/utils/streamlit.py +0 -0
  100. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk/utils/utils.py +0 -0
  101. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk.egg-info/SOURCES.txt +0 -0
  102. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk.egg-info/dependency_links.txt +0 -0
  103. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk.egg-info/requires.txt +0 -0
  104. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/alita_sdk.egg-info/top_level.txt +0 -0
  105. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/src/tests/__init__.py +0 -0
  106. {alita_sdk-0.3.121 → alita_sdk-0.3.123}/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.121
3
+ Version: 0.3.123
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.121"
7
+ version = "0.3.123"
8
8
  description = "SDK for building langchain agents using resouces from Alita"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -10,7 +10,7 @@ from pdf2image import convert_from_bytes
10
10
  from reportlab.graphics import renderPM
11
11
  from svglib.svglib import svg2rlg
12
12
 
13
- from src.alita_sdk.langchain.tools.utils import image_to_byte_array, bytes_to_base64
13
+ from ..tools.utils import image_to_byte_array, bytes_to_base64
14
14
 
15
15
  Image.MAX_IMAGE_PIXELS = 300_000_000
16
16
 
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  import importlib
16
+ from json import dumps
16
17
  from traceback import format_exc
17
18
  from langchain.chains.llm import LLMChain
18
19
 
@@ -33,6 +34,7 @@ from ..retrievers.AlitaRetriever import AlitaRetriever
33
34
  from ..tools.log import print_log
34
35
 
35
36
 
37
+
36
38
  def get_model(model_type: str, model_params: dict):
37
39
  """ Get LLM or ChatLLM """
38
40
  if model_type is None:
@@ -181,6 +183,11 @@ def add_documents(vectorstore, documents):
181
183
  metadata = []
182
184
  for document in documents:
183
185
  texts.append(document.page_content)
186
+ for key in document.metadata:
187
+ if isinstance(document.metadata[key], list):
188
+ document.metadata[key] = "; ".join(document.metadata[key])
189
+ if isinstance(document.metadata[key], dict):
190
+ document.metadata[key] = dumps(document.metadata[key])
184
191
  metadata.append(document.metadata)
185
192
  vectorstore.add_texts(texts, metadatas=metadata)
186
193
 
@@ -1,5 +1,5 @@
1
1
  import logging
2
- from typing import Union, Any, Optional, Annotated
2
+ from typing import Union, Any, Optional, Annotated, get_type_hints
3
3
  from uuid import uuid4
4
4
 
5
5
  import yaml
@@ -329,11 +329,17 @@ def create_graph(
329
329
  structured_output=node.get('structured_output', False)))
330
330
  break
331
331
  elif node_type == 'llm':
332
+ output_vars = node.get('output', [])
333
+ output_vars_dict = {
334
+ var: get_type_hints(state_class).get(var, str).__name__
335
+ for var in output_vars
336
+ }
332
337
  lg_builder.add_node(node_id, LLMNode(
333
338
  client=client, prompt=node.get('prompt', {}),
334
339
  name=node['id'], return_type='dict',
335
340
  response_key=node.get('response_key', 'messages'),
336
- output_variables=node.get('output', []),
341
+ structured_output_dict=output_vars_dict,
342
+ output_variables=output_vars,
337
343
  input_variables=node.get('input', ['messages']),
338
344
  structured_output=node.get('structured_output', False)))
339
345
  elif node_type == 'router':
@@ -47,11 +47,10 @@ class FunctionTool(BaseTool):
47
47
  )
48
48
  logger.info(f"ToolNode response: {tool_result}")
49
49
  if not self.output_variables:
50
- return {"messages": [{"role": "assistant", "content": tool_result}]}
50
+ return {"messages": [{"role": "assistant", "content": dumps(tool_result)}]}
51
51
  else:
52
52
  return {
53
- self.output_variables[0]: tool_result,
54
- "messages": [{"role": "assistant", "content": tool_result}]
53
+ self.output_variables[0]: tool_result
55
54
  }
56
55
  except ValidationError:
57
56
  return {"messages": [
@@ -25,6 +25,7 @@ class LLMNode(BaseTool):
25
25
  client: Any = None
26
26
  return_type: str = "str"
27
27
  response_key: str = "messages"
28
+ structured_output_dict: Optional[dict[str, str]] = None
28
29
  output_variables: Optional[List[str]] = None
29
30
  input_variables: Optional[List[str]] = None
30
31
  structured_output: Optional[bool] = False
@@ -35,11 +36,19 @@ class LLMNode(BaseTool):
35
36
  llm_input = create_llm_input(self.prompt, params, kwargs)
36
37
  try:
37
38
  if self.structured_output and len(self.output_variables) > 0:
38
- struct_params = {var: {"type": "str", "description": ""} for var in self.output_variables}
39
+ struct_params = {
40
+ key: {
41
+ "type": 'list[str]' if 'list' in value else value,
42
+ "description": ""
43
+ }
44
+ for key, value in (self.structured_output_dict or {}).items()
45
+ }
39
46
  stuct_model = create_pydantic_model(f"LLMOutput", struct_params)
40
47
  llm = self.client.with_structured_output(stuct_model)
41
48
  completion = llm.invoke(llm_input)
42
49
  result = completion.model_dump()
50
+ if result.get('messages') and isinstance(result['messages'], list):
51
+ result['messages'] = [{'role': 'assistant', 'content': '\n'.join(result['messages'])}]
43
52
  return result
44
53
  else:
45
54
  completion = self.client.invoke(llm_input)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.121
3
+ Version: 0.3.123
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