alita-sdk 0.3.227__py3-none-any.whl → 0.3.228__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.
@@ -75,7 +75,7 @@ def get_tools(tools_list: list, alita_client, llm, memory_store: BaseStore = Non
75
75
  llm=tool['settings'].get('llm'),
76
76
  # indexer settings
77
77
  connection_string=tool['settings'].get('connection_string', None),
78
- collection_name=f"{tool.get('toolkit_name')}_{str(tool['id'])}",
78
+ collection_name=tool.get('toolkit_name'),
79
79
  embedding_model=tool['settings'].get('embedding_model', None),
80
80
  embedding_model_params=tool['settings'].get('embedding_model_params', None),
81
81
  vectorstore_type="PGVector"
@@ -15,13 +15,13 @@ def get_tools(tool_type, tool):
15
15
  "limit": tool['settings'].get('limit', 5),
16
16
  "toolkit_name": tool.get('toolkit_name', ''),
17
17
  # indexer settings
18
- "llm":tool['settings'].get('llm', None),
19
- "connection_string":tool['settings'].get('connection_string', None),
20
- "collection_name":str(tool['id']),
21
- "doctype":'doc',
22
- "embedding_model":"HuggingFaceEmbeddings",
23
- "embedding_model_params":{"model_name": "sentence-transformers/all-MiniLM-L6-v2"},
24
- "vectorstore_type":"PGVector"
18
+ "llm": tool['settings'].get('llm', None),
19
+ "connection_string": tool['settings'].get('connection_string', None),
20
+ "collection_name": tool['toolkit_name'],
21
+ "doctype": 'doc',
22
+ "embedding_model": "HuggingFaceEmbeddings",
23
+ "embedding_model_params": {"model_name": "sentence-transformers/all-MiniLM-L6-v2"},
24
+ "vectorstore_type": "PGVector"
25
25
  }
26
26
  if tool_type == 'ado_plans':
27
27
  return AzureDevOpsPlansToolkit().get_toolkit(**config_dict).get_tools()
@@ -23,7 +23,7 @@ def _get_toolkit(tool) -> BaseToolkit:
23
23
  active_branch=tool['settings'].get('active_branch', ""),
24
24
  toolkit_name=tool['settings'].get('toolkit_name', ""),
25
25
  connection_string=tool['settings'].get('connection_string', None),
26
- collection_name=str(tool['id']),
26
+ collection_name=tool['toolkit_name'],
27
27
  doctype='code',
28
28
  embedding_model="HuggingFaceEmbeddings",
29
29
  embedding_model_params={"model_name": "sentence-transformers/all-MiniLM-L6-v2"},
@@ -1,3 +1,4 @@
1
+ import hashlib
1
2
  import logging
2
3
  from typing import Any, Dict, Generator, Optional
3
4
 
@@ -229,21 +230,26 @@ class AzureDevOpsApiWrapper(BaseVectorStoreToolApiWrapper):
229
230
  logger.error(f"Unable to modify wiki page: {str(e)}")
230
231
  return ToolException(f"Unable to modify wiki page: {str(e)}")
231
232
 
232
- def _base_loader(self, wiki_identifier: str, **kwargs) -> Generator[Document, None, None]:
233
+ def _base_loader(self, wiki_identifier: str, title_contains: Optional[str] = None, **kwargs) -> Generator[Document, None, None]:
233
234
  pages = self._client.get_pages_batch(pages_batch_request={}, project=self.project, wiki_identifier=wiki_identifier)
234
235
  #
235
236
  for page in pages:
236
237
  content = self._client.get_page_by_id(project=self.project, wiki_identifier=wiki_identifier, id=page.id, include_content=True).page.content
237
- yield Document(page_content=content, metadata={
238
- 'id': page.id,
239
- 'path': page.path,
240
- 'updated_on': ''
241
- })
238
+ content_hash = hashlib.sha256(content.encode("utf-8")).hexdigest()
239
+ title = page.path.rsplit("/", 1)[-1]
240
+ if not title_contains or (title_contains and title_contains.lower() in title.lower()):
241
+ yield Document(page_content=content, metadata={
242
+ 'id': str(page.id),
243
+ 'path': page.path,
244
+ 'title': title,
245
+ 'updated_on': content_hash
246
+ })
242
247
 
243
248
  def _index_tool_params(self):
244
249
  """Return the parameters for indexing data."""
245
250
  return {
246
- "wiki_identifier": (str, Field(description="Wiki identifier to index, e.g., 'ABCProject.wiki'"))
251
+ "wiki_identifier": (str, Field(description="Wiki identifier to index, e.g., 'ABCProject.wiki'")),
252
+ 'title_contains': (Optional[str], Field(default=None, description="Optional filter to include only pages with titles containing exact this string"))
247
253
  }
248
254
 
249
255
  @extend_with_vector_tools
@@ -214,8 +214,11 @@ class ConfluenceAPIWrapper(BaseVectorStoreToolApiWrapper):
214
214
  "`atlassian` package not found, please run "
215
215
  "`pip install atlassian-python-api`"
216
216
  )
217
-
217
+ if not values.get('base_url'):
218
+ raise ValueError("Base URL is required for Confluence API Wrapper.")
218
219
  url = values['base_url']
220
+ if not (values.get('token') or (values.get('api_key') and values.get('username'))):
221
+ raise ValueError("Either 'token' or both 'api_key' and 'username' must be provided for authentication.")
219
222
  api_key = values.get('api_key')
220
223
  username = values.get('username')
221
224
  token = values.get('token')
@@ -844,8 +847,12 @@ class ConfluenceAPIWrapper(BaseVectorStoreToolApiWrapper):
844
847
  yield document
845
848
 
846
849
  def _process_document(self, document: Document) -> Generator[Document, None, None]:
847
- for attachment in self.get_page_attachments(document.metadata.get('id')):
848
- yield Document(page_content=attachment.get('content', ''), metadata=attachment.get('metadata', {}))
850
+ attachments = self.get_page_attachments(document.metadata.get('id'))
851
+ if isinstance(attachments, str):
852
+ logger.info(f" {document.metadata.get('id')}: {attachments}")
853
+ return
854
+ for attachment in attachments:
855
+ yield Document(page_content=attachment.get('content', '') or attachment.get('llm_analysis', ''), metadata=attachment.get('metadata', {}))
849
856
 
850
857
  def _download_image(self, image_url):
851
858
  """
@@ -1577,7 +1584,7 @@ class ConfluenceAPIWrapper(BaseVectorStoreToolApiWrapper):
1577
1584
  """Return the parameters for indexing data."""
1578
1585
  return {
1579
1586
  "content_format": (Literal['view', 'storage', 'export_view', 'editor', 'anonymous'],
1580
- Field(description="The format of the content to be retrieved.")),
1587
+ Field(description="The format of the content to be retrieved.", default='view')),
1581
1588
  "page_ids": (Optional[List[str]], Field(description="List of page IDs to retrieve.", default=None)),
1582
1589
  "label": (Optional[str], Field(description="Label to filter pages.", default=None)),
1583
1590
  "cql": (Optional[str], Field(description="CQL query to filter pages.", default=None)),
@@ -374,7 +374,7 @@ class BaseVectorStoreToolApiWrapper(BaseToolApiWrapper):
374
374
  def list_collections(self):
375
375
  """Lists all collections in the vector store."""
376
376
  vectorstore_wrapper = self._init_vector_store()
377
- return self._adapter.list_collections(vectorstore_wrapper)
377
+ return self._adapter.list_collections(vectorstore_wrapper, self.collection_name or "")
378
378
 
379
379
  def search_index(self,
380
380
  query: str,
@@ -35,15 +35,16 @@ class PGVectorAdapter(VectorStoreAdapter):
35
35
  "connection_string": connection_string
36
36
  }
37
37
 
38
- def list_collections(self, vectorstore_wrapper) -> str:
38
+ def list_collections(self, vectorstore_wrapper, collection_name) -> str:
39
39
  from sqlalchemy import text
40
40
  from sqlalchemy.orm import Session
41
41
 
42
42
  with Session(vectorstore_wrapper.vectorstore.session_maker.bind) as session:
43
- get_collections = text("""
44
- SELECT table_schema
45
- FROM information_schema.columns
46
- WHERE udt_name = 'vector';
43
+ get_collections = text(f"""
44
+ SELECT table_schema
45
+ FROM information_schema.columns
46
+ WHERE udt_name = 'vector'
47
+ AND table_schema LIKE '%{collection_name}%';
47
48
  """)
48
49
  result = session.execute(get_collections)
49
50
  docs = result.fetchall()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.227
3
+ Version: 0.3.228
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 <lifedjik@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -64,7 +64,7 @@ alita_sdk/runtime/toolkits/artifact.py,sha256=_vQOR4_xPeyOd3Gqcf5vDxTu2uLzViYt7i
64
64
  alita_sdk/runtime/toolkits/datasource.py,sha256=qk78OdPoReYPCWwahfkKLbKc4pfsu-061oXRryFLP6I,2498
65
65
  alita_sdk/runtime/toolkits/prompt.py,sha256=WIpTkkVYWqIqOWR_LlSWz3ug8uO9tm5jJ7aZYdiGRn0,1192
66
66
  alita_sdk/runtime/toolkits/subgraph.py,sha256=ZYqI4yVLbEPAjCR8dpXbjbL2ipX598Hk3fL6AgaqFD4,1758
67
- alita_sdk/runtime/toolkits/tools.py,sha256=qSVGfVJXNMe_9x2bwWvlXPJe5Q89FtgJooqx5UPdlxM,8052
67
+ alita_sdk/runtime/toolkits/tools.py,sha256=ebvVIyNzLMvqvgW58uP5qGmWV5bLczuKIr58OgladUQ,8029
68
68
  alita_sdk/runtime/toolkits/vectorstore.py,sha256=BGppQADa1ZiLO17fC0uCACTTEvPHlodEDYEzUcBRbAA,2901
69
69
  alita_sdk/runtime/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
70
  alita_sdk/runtime/tools/agent.py,sha256=m98QxOHwnCRTT9j18Olbb5UPS8-ZGeQaGiUyZJSyFck,3162
@@ -94,15 +94,15 @@ alita_sdk/runtime/utils/toolkit_runtime.py,sha256=MU63Fpxj0b5_r1IUUc0Q3-PN9VwL7r
94
94
  alita_sdk/runtime/utils/toolkit_utils.py,sha256=I9QFqnaqfVgN26LUr6s3XlBlG6y0CoHURnCzG7XcwVs,5311
95
95
  alita_sdk/runtime/utils/utils.py,sha256=CpEl3LCeLbhzQySz08lkKPm7Auac6IiLF7WB8wmArMI,589
96
96
  alita_sdk/tools/__init__.py,sha256=1AHqP2xyLjn92xVm70l9XIke6FkfHkLo5OoQVe4BuP8,10421
97
- alita_sdk/tools/elitea_base.py,sha256=AmOks-hZfHFI2G0_fBh7Yyz3wjohyTA1sLxLEqW87EQ,30544
98
- alita_sdk/tools/ado/__init__.py,sha256=2NMQwt2pjIukSC9nSZ7CLocdGpK7002x7ixKr_wunxk,1313
97
+ alita_sdk/tools/elitea_base.py,sha256=22P97EmUlO-eC8DoGPiSNjHNjTv8ru0Q05qnR3U9WWs,30572
98
+ alita_sdk/tools/ado/__init__.py,sha256=j4W52bLXVMrm-mZuyD1r6obw_EjRXiLKG7mFDOs8Cpw,1325
99
99
  alita_sdk/tools/ado/utils.py,sha256=PTCludvaQmPLakF2EbCGy66Mro4-rjDtavVP-xcB2Wc,1252
100
- alita_sdk/tools/ado/repos/__init__.py,sha256=VvOapCG5okdyfCNdeTfOdcgRvl54cB1-sx_BF0TBWOw,6858
100
+ alita_sdk/tools/ado/repos/__init__.py,sha256=wdMYwkWfxZ9gz-5NKisG1QnwG_9c_s7JsjcM51i-spo,6863
101
101
  alita_sdk/tools/ado/repos/repos_wrapper.py,sha256=SgnEUX1lTn5ncZI8EFfPibk0_gHstkApDSqTCxYsrUk,50097
102
102
  alita_sdk/tools/ado/test_plan/__init__.py,sha256=QUNSOCVheUbILve4CxjBzBHKcIA28jZjoA6rRb8tD_Y,5483
103
103
  alita_sdk/tools/ado/test_plan/test_plan_wrapper.py,sha256=WWSWQx97sQfkM_CALybj9BPmPelozdRlxwefbkTgxis,20185
104
104
  alita_sdk/tools/ado/wiki/__init__.py,sha256=3cPNqUyOFwnZ2g5QW8wsdBC9sB0u39F-q4KKVjQqTN8,5351
105
- alita_sdk/tools/ado/wiki/ado_wrapper.py,sha256=HoM2U2G8sKM8Hh6HpTFHdTiKAu4vLigB8VwE0_QtMhw,14167
105
+ alita_sdk/tools/ado/wiki/ado_wrapper.py,sha256=8UIuEgn2G3vbyLIdsI-iwX-zXJXzHENuTAih5USYGrs,14679
106
106
  alita_sdk/tools/ado/work_item/__init__.py,sha256=dBDjP8CJnKe9xBbJg-EG1AvRo06mcfS2f0AVeXMaBmk,5507
107
107
  alita_sdk/tools/ado/work_item/ado_wrapper.py,sha256=7YrqNIDnVYYm8__joABAr3iIk3IvYoQ7NZ9Vi-iaICc,28233
108
108
  alita_sdk/tools/advanced_jira_mining/__init__.py,sha256=pUTzECqGvYaR5qWY3JPUhrImrZgc7pCXuqSe5eWIE80,4604
@@ -186,7 +186,7 @@ alita_sdk/tools/code/loaders/codesearcher.py,sha256=XoXXZtIQZhvjIwZlnl_4wVGHC-3s
186
186
  alita_sdk/tools/code/sonar/__init__.py,sha256=u8wpgXJ_shToLl3G9-XEtGDor5dhmsnurIImh1-e-U0,3165
187
187
  alita_sdk/tools/code/sonar/api_wrapper.py,sha256=nNqxcWN_6W8c0ckj-Er9HkNuAdgQLoWBXh5UyzNutis,2653
188
188
  alita_sdk/tools/confluence/__init__.py,sha256=Osn9Sd8dURk8zms6J6MDYtH-MAQaXcI21MW_MOZS9pE,7293
189
- alita_sdk/tools/confluence/api_wrapper.py,sha256=VR0TEMJPqe3ylzl_DuFSZ3LS0oTIJ7SufjifRXIYEhg,84507
189
+ alita_sdk/tools/confluence/api_wrapper.py,sha256=4WqjVeFWyFeb4-VD5v4_J69pbyjire4Op7cBSKU9EXw,85057
190
190
  alita_sdk/tools/confluence/loader.py,sha256=4bf5qrJMEiJzuZp2NlxO2XObLD1w7fxss_WyMUpe8sg,9290
191
191
  alita_sdk/tools/confluence/utils.py,sha256=Lxo6dBD0OlvM4o0JuK6qeB_4LV9BptiwJA9e1vqNcDw,435
192
192
  alita_sdk/tools/custom_open_api/__init__.py,sha256=9aT5SPNPWcJC6jMZEM-3rUCXVULj_3-qJLQKmnreKNo,2537
@@ -286,7 +286,7 @@ alita_sdk/tools/testrail/__init__.py,sha256=VEoFDsMgzMapOaifdlEL_S_YxzD0CjXokGYv
286
286
  alita_sdk/tools/testrail/api_wrapper.py,sha256=Aax0jspgidXYNxLIw6qTWu3dO2JOIS0ALIqsCzQuFbQ,32087
287
287
  alita_sdk/tools/utils/__init__.py,sha256=155xepXPr4OEzs2Mz5YnjXcBpxSv1X2eznRUVoPtyK0,3268
288
288
  alita_sdk/tools/utils/content_parser.py,sha256=5meTV5nbhlaeZG2lL6OVY8XMaTVg2T2dgWZrtIjRLL8,7526
289
- alita_sdk/tools/vector_adapters/VectorStoreAdapter.py,sha256=bsUFx-P3I5Rfzpk-mCrabhLtt3motAm02GaRK9C-WXA,3260
289
+ alita_sdk/tools/vector_adapters/VectorStoreAdapter.py,sha256=wZ_MhVWPEgoPhKRvbPB6Qs34EPyWx0IW7ydY_GVBZFQ,3344
290
290
  alita_sdk/tools/vector_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
291
291
  alita_sdk/tools/xray/__init__.py,sha256=OYa1wveTm-lAhsJaGXMnwOrDQWl6ch--NjNLBeR63eM,4331
292
292
  alita_sdk/tools/xray/api_wrapper.py,sha256=A8PJmY2k7TowaD_vk6ZxkMnSUoZUt9A6g4TJrZfNTAw,32225
@@ -307,8 +307,8 @@ alita_sdk/tools/zephyr_scale/api_wrapper.py,sha256=JAeWf-RXohsxheUpT0iMDClc_izj-
307
307
  alita_sdk/tools/zephyr_squad/__init__.py,sha256=0AI_j27xVO5Gk5HQMFrqPTd4uvuVTpiZUicBrdfEpKg,2796
308
308
  alita_sdk/tools/zephyr_squad/api_wrapper.py,sha256=kmw_xol8YIYFplBLWTqP_VKPRhL_1ItDD0_vXTe_UuI,14906
309
309
  alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py,sha256=R371waHsms4sllHCbijKYs90C-9Yu0sSR3N4SUfQOgU,5066
310
- alita_sdk-0.3.227.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
311
- alita_sdk-0.3.227.dist-info/METADATA,sha256=Rdq53_hxX1XkPsuzWiYs9_74Sxo6BzniJu9PvooRS9A,18917
312
- alita_sdk-0.3.227.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
313
- alita_sdk-0.3.227.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
314
- alita_sdk-0.3.227.dist-info/RECORD,,
310
+ alita_sdk-0.3.228.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
311
+ alita_sdk-0.3.228.dist-info/METADATA,sha256=HZtNzXNfu495HqKx7PxLBBjbD8rJ5iXHtZYO32XI3oU,18917
312
+ alita_sdk-0.3.228.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
313
+ alita_sdk-0.3.228.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
314
+ alita_sdk-0.3.228.dist-info/RECORD,,