lfx-nightly 0.1.13.dev0__py3-none-any.whl → 0.2.0.dev26__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.
Files changed (237) hide show
  1. lfx/_assets/component_index.json +1 -1
  2. lfx/base/agents/agent.py +121 -29
  3. lfx/base/agents/altk_base_agent.py +380 -0
  4. lfx/base/agents/altk_tool_wrappers.py +565 -0
  5. lfx/base/agents/events.py +103 -35
  6. lfx/base/agents/utils.py +15 -2
  7. lfx/base/composio/composio_base.py +183 -233
  8. lfx/base/data/base_file.py +88 -21
  9. lfx/base/data/storage_utils.py +192 -0
  10. lfx/base/data/utils.py +178 -14
  11. lfx/base/datastax/__init__.py +5 -0
  12. lfx/{components/vectorstores/astradb.py → base/datastax/astradb_base.py} +84 -473
  13. lfx/base/embeddings/embeddings_class.py +113 -0
  14. lfx/base/io/chat.py +5 -4
  15. lfx/base/mcp/util.py +101 -15
  16. lfx/base/models/groq_constants.py +74 -58
  17. lfx/base/models/groq_model_discovery.py +265 -0
  18. lfx/base/models/model.py +1 -1
  19. lfx/base/models/model_input_constants.py +74 -7
  20. lfx/base/models/model_utils.py +100 -0
  21. lfx/base/models/ollama_constants.py +3 -0
  22. lfx/base/models/openai_constants.py +7 -0
  23. lfx/base/models/watsonx_constants.py +36 -0
  24. lfx/base/tools/run_flow.py +601 -129
  25. lfx/cli/commands.py +7 -4
  26. lfx/cli/common.py +2 -2
  27. lfx/cli/run.py +1 -1
  28. lfx/cli/script_loader.py +53 -11
  29. lfx/components/Notion/create_page.py +1 -1
  30. lfx/components/Notion/list_database_properties.py +1 -1
  31. lfx/components/Notion/list_pages.py +1 -1
  32. lfx/components/Notion/list_users.py +1 -1
  33. lfx/components/Notion/page_content_viewer.py +1 -1
  34. lfx/components/Notion/search.py +1 -1
  35. lfx/components/Notion/update_page_property.py +1 -1
  36. lfx/components/__init__.py +19 -5
  37. lfx/components/altk/__init__.py +34 -0
  38. lfx/components/altk/altk_agent.py +193 -0
  39. lfx/components/amazon/amazon_bedrock_converse.py +1 -1
  40. lfx/components/apify/apify_actor.py +4 -4
  41. lfx/components/composio/__init__.py +70 -18
  42. lfx/components/composio/apollo_composio.py +11 -0
  43. lfx/components/composio/bitbucket_composio.py +11 -0
  44. lfx/components/composio/canva_composio.py +11 -0
  45. lfx/components/composio/coda_composio.py +11 -0
  46. lfx/components/composio/composio_api.py +10 -0
  47. lfx/components/composio/discord_composio.py +1 -1
  48. lfx/components/composio/elevenlabs_composio.py +11 -0
  49. lfx/components/composio/exa_composio.py +11 -0
  50. lfx/components/composio/firecrawl_composio.py +11 -0
  51. lfx/components/composio/fireflies_composio.py +11 -0
  52. lfx/components/composio/gmail_composio.py +1 -1
  53. lfx/components/composio/googlebigquery_composio.py +11 -0
  54. lfx/components/composio/googlecalendar_composio.py +1 -1
  55. lfx/components/composio/googledocs_composio.py +1 -1
  56. lfx/components/composio/googlemeet_composio.py +1 -1
  57. lfx/components/composio/googlesheets_composio.py +1 -1
  58. lfx/components/composio/googletasks_composio.py +1 -1
  59. lfx/components/composio/heygen_composio.py +11 -0
  60. lfx/components/composio/mem0_composio.py +11 -0
  61. lfx/components/composio/peopledatalabs_composio.py +11 -0
  62. lfx/components/composio/perplexityai_composio.py +11 -0
  63. lfx/components/composio/serpapi_composio.py +11 -0
  64. lfx/components/composio/slack_composio.py +3 -574
  65. lfx/components/composio/slackbot_composio.py +1 -1
  66. lfx/components/composio/snowflake_composio.py +11 -0
  67. lfx/components/composio/tavily_composio.py +11 -0
  68. lfx/components/composio/youtube_composio.py +2 -2
  69. lfx/components/{agents → cuga}/__init__.py +5 -7
  70. lfx/components/cuga/cuga_agent.py +730 -0
  71. lfx/components/data/__init__.py +78 -28
  72. lfx/components/data_source/__init__.py +58 -0
  73. lfx/components/{data → data_source}/api_request.py +26 -3
  74. lfx/components/{data → data_source}/csv_to_data.py +15 -10
  75. lfx/components/{data → data_source}/json_to_data.py +15 -8
  76. lfx/components/{data → data_source}/news_search.py +1 -1
  77. lfx/components/{data → data_source}/rss.py +1 -1
  78. lfx/components/{data → data_source}/sql_executor.py +1 -1
  79. lfx/components/{data → data_source}/url.py +1 -1
  80. lfx/components/{data → data_source}/web_search.py +1 -1
  81. lfx/components/datastax/__init__.py +12 -6
  82. lfx/components/datastax/{astra_assistant_manager.py → astradb_assistant_manager.py} +1 -0
  83. lfx/components/datastax/astradb_chatmemory.py +40 -0
  84. lfx/components/datastax/astradb_cql.py +6 -32
  85. lfx/components/datastax/astradb_graph.py +10 -124
  86. lfx/components/datastax/astradb_tool.py +13 -53
  87. lfx/components/datastax/astradb_vectorstore.py +134 -977
  88. lfx/components/datastax/create_assistant.py +1 -0
  89. lfx/components/datastax/create_thread.py +1 -0
  90. lfx/components/datastax/dotenv.py +1 -0
  91. lfx/components/datastax/get_assistant.py +1 -0
  92. lfx/components/datastax/getenvvar.py +1 -0
  93. lfx/components/datastax/graph_rag.py +1 -1
  94. lfx/components/datastax/hcd.py +1 -1
  95. lfx/components/datastax/list_assistants.py +1 -0
  96. lfx/components/datastax/run.py +1 -0
  97. lfx/components/deactivated/json_document_builder.py +1 -1
  98. lfx/components/elastic/elasticsearch.py +1 -1
  99. lfx/components/elastic/opensearch_multimodal.py +1575 -0
  100. lfx/components/files_and_knowledge/__init__.py +47 -0
  101. lfx/components/{data → files_and_knowledge}/directory.py +1 -1
  102. lfx/components/{data → files_and_knowledge}/file.py +246 -18
  103. lfx/components/{knowledge_bases → files_and_knowledge}/ingestion.py +17 -9
  104. lfx/components/{knowledge_bases → files_and_knowledge}/retrieval.py +18 -10
  105. lfx/components/{data → files_and_knowledge}/save_file.py +142 -22
  106. lfx/components/flow_controls/__init__.py +58 -0
  107. lfx/components/{logic → flow_controls}/conditional_router.py +1 -1
  108. lfx/components/{logic → flow_controls}/loop.py +47 -9
  109. lfx/components/flow_controls/run_flow.py +108 -0
  110. lfx/components/glean/glean_search_api.py +1 -1
  111. lfx/components/groq/groq.py +35 -28
  112. lfx/components/helpers/__init__.py +102 -0
  113. lfx/components/ibm/watsonx.py +25 -21
  114. lfx/components/input_output/__init__.py +3 -1
  115. lfx/components/input_output/chat.py +12 -3
  116. lfx/components/input_output/chat_output.py +12 -4
  117. lfx/components/input_output/text.py +1 -1
  118. lfx/components/input_output/text_output.py +1 -1
  119. lfx/components/{data → input_output}/webhook.py +1 -1
  120. lfx/components/knowledge_bases/__init__.py +59 -4
  121. lfx/components/langchain_utilities/character.py +1 -1
  122. lfx/components/langchain_utilities/csv_agent.py +84 -16
  123. lfx/components/langchain_utilities/json_agent.py +67 -12
  124. lfx/components/langchain_utilities/language_recursive.py +1 -1
  125. lfx/components/llm_operations/__init__.py +46 -0
  126. lfx/components/{processing → llm_operations}/batch_run.py +1 -1
  127. lfx/components/{processing → llm_operations}/lambda_filter.py +1 -1
  128. lfx/components/{logic → llm_operations}/llm_conditional_router.py +1 -1
  129. lfx/components/{processing/llm_router.py → llm_operations/llm_selector.py} +3 -3
  130. lfx/components/{processing → llm_operations}/structured_output.py +56 -18
  131. lfx/components/logic/__init__.py +126 -0
  132. lfx/components/mem0/mem0_chat_memory.py +11 -0
  133. lfx/components/mistral/mistral_embeddings.py +1 -1
  134. lfx/components/models/__init__.py +64 -9
  135. lfx/components/models_and_agents/__init__.py +49 -0
  136. lfx/components/{agents → models_and_agents}/agent.py +49 -6
  137. lfx/components/models_and_agents/embedding_model.py +423 -0
  138. lfx/components/models_and_agents/language_model.py +398 -0
  139. lfx/components/{agents → models_and_agents}/mcp_component.py +84 -45
  140. lfx/components/{helpers → models_and_agents}/memory.py +1 -1
  141. lfx/components/nvidia/system_assist.py +1 -1
  142. lfx/components/olivya/olivya.py +1 -1
  143. lfx/components/ollama/ollama.py +235 -14
  144. lfx/components/openrouter/openrouter.py +49 -147
  145. lfx/components/processing/__init__.py +9 -57
  146. lfx/components/processing/converter.py +1 -1
  147. lfx/components/processing/dataframe_operations.py +1 -1
  148. lfx/components/processing/parse_json_data.py +2 -2
  149. lfx/components/processing/parser.py +7 -2
  150. lfx/components/processing/split_text.py +1 -1
  151. lfx/components/qdrant/qdrant.py +1 -1
  152. lfx/components/redis/redis.py +1 -1
  153. lfx/components/twelvelabs/split_video.py +10 -0
  154. lfx/components/twelvelabs/video_file.py +12 -0
  155. lfx/components/utilities/__init__.py +43 -0
  156. lfx/components/{helpers → utilities}/calculator_core.py +1 -1
  157. lfx/components/{helpers → utilities}/current_date.py +1 -1
  158. lfx/components/{processing → utilities}/python_repl_core.py +1 -1
  159. lfx/components/vectorstores/__init__.py +0 -6
  160. lfx/components/vectorstores/local_db.py +9 -0
  161. lfx/components/youtube/youtube_transcripts.py +118 -30
  162. lfx/custom/custom_component/component.py +60 -3
  163. lfx/custom/custom_component/custom_component.py +68 -6
  164. lfx/field_typing/constants.py +1 -0
  165. lfx/graph/edge/base.py +45 -22
  166. lfx/graph/graph/base.py +5 -2
  167. lfx/graph/graph/schema.py +3 -2
  168. lfx/graph/state/model.py +15 -2
  169. lfx/graph/utils.py +6 -0
  170. lfx/graph/vertex/base.py +4 -1
  171. lfx/graph/vertex/param_handler.py +10 -7
  172. lfx/graph/vertex/vertex_types.py +1 -1
  173. lfx/helpers/__init__.py +12 -0
  174. lfx/helpers/flow.py +117 -0
  175. lfx/inputs/input_mixin.py +24 -1
  176. lfx/inputs/inputs.py +13 -1
  177. lfx/interface/components.py +161 -83
  178. lfx/io/schema.py +6 -0
  179. lfx/log/logger.py +5 -3
  180. lfx/schema/schema.py +5 -0
  181. lfx/services/database/__init__.py +5 -0
  182. lfx/services/database/service.py +25 -0
  183. lfx/services/deps.py +87 -22
  184. lfx/services/manager.py +19 -6
  185. lfx/services/mcp_composer/service.py +998 -157
  186. lfx/services/session.py +5 -0
  187. lfx/services/settings/base.py +51 -7
  188. lfx/services/settings/constants.py +8 -0
  189. lfx/services/storage/local.py +76 -46
  190. lfx/services/storage/service.py +152 -29
  191. lfx/template/field/base.py +3 -0
  192. lfx/utils/ssrf_protection.py +384 -0
  193. lfx/utils/validate_cloud.py +26 -0
  194. {lfx_nightly-0.1.13.dev0.dist-info → lfx_nightly-0.2.0.dev26.dist-info}/METADATA +38 -22
  195. {lfx_nightly-0.1.13.dev0.dist-info → lfx_nightly-0.2.0.dev26.dist-info}/RECORD +210 -196
  196. {lfx_nightly-0.1.13.dev0.dist-info → lfx_nightly-0.2.0.dev26.dist-info}/WHEEL +1 -1
  197. lfx/components/agents/cuga_agent.py +0 -1013
  198. lfx/components/datastax/astra_db.py +0 -77
  199. lfx/components/datastax/cassandra.py +0 -92
  200. lfx/components/logic/run_flow.py +0 -71
  201. lfx/components/models/embedding_model.py +0 -114
  202. lfx/components/models/language_model.py +0 -144
  203. lfx/components/vectorstores/astradb_graph.py +0 -326
  204. lfx/components/vectorstores/cassandra.py +0 -264
  205. lfx/components/vectorstores/cassandra_graph.py +0 -238
  206. lfx/components/vectorstores/chroma.py +0 -167
  207. lfx/components/vectorstores/clickhouse.py +0 -135
  208. lfx/components/vectorstores/couchbase.py +0 -102
  209. lfx/components/vectorstores/elasticsearch.py +0 -267
  210. lfx/components/vectorstores/faiss.py +0 -111
  211. lfx/components/vectorstores/graph_rag.py +0 -141
  212. lfx/components/vectorstores/hcd.py +0 -314
  213. lfx/components/vectorstores/milvus.py +0 -115
  214. lfx/components/vectorstores/mongodb_atlas.py +0 -213
  215. lfx/components/vectorstores/opensearch.py +0 -243
  216. lfx/components/vectorstores/pgvector.py +0 -72
  217. lfx/components/vectorstores/pinecone.py +0 -134
  218. lfx/components/vectorstores/qdrant.py +0 -109
  219. lfx/components/vectorstores/supabase.py +0 -76
  220. lfx/components/vectorstores/upstash.py +0 -124
  221. lfx/components/vectorstores/vectara.py +0 -97
  222. lfx/components/vectorstores/vectara_rag.py +0 -164
  223. lfx/components/vectorstores/weaviate.py +0 -89
  224. /lfx/components/{data → data_source}/mock_data.py +0 -0
  225. /lfx/components/datastax/{astra_vectorize.py → astradb_vectorize.py} +0 -0
  226. /lfx/components/{logic → flow_controls}/data_conditional_router.py +0 -0
  227. /lfx/components/{logic → flow_controls}/flow_tool.py +0 -0
  228. /lfx/components/{logic → flow_controls}/listen.py +0 -0
  229. /lfx/components/{logic → flow_controls}/notify.py +0 -0
  230. /lfx/components/{logic → flow_controls}/pass_message.py +0 -0
  231. /lfx/components/{logic → flow_controls}/sub_flow.py +0 -0
  232. /lfx/components/{processing → models_and_agents}/prompt.py +0 -0
  233. /lfx/components/{helpers → processing}/create_list.py +0 -0
  234. /lfx/components/{helpers → processing}/output_parser.py +0 -0
  235. /lfx/components/{helpers → processing}/store_message.py +0 -0
  236. /lfx/components/{helpers → utilities}/id_generator.py +0 -0
  237. {lfx_nightly-0.1.13.dev0.dist-info → lfx_nightly-0.2.0.dev26.dist-info}/entry_points.txt +0 -0
@@ -1,138 +1,36 @@
1
- import os
2
-
3
1
  import orjson
4
2
 
3
+ from lfx.base.datastax.astradb_base import AstraDBBaseComponent
5
4
  from lfx.base.vectorstores.model import LCVectorStoreComponent, check_cached_vector_store
6
5
  from lfx.helpers.data import docs_to_data
7
6
  from lfx.inputs.inputs import (
8
- BoolInput,
9
7
  DictInput,
10
8
  DropdownInput,
11
9
  FloatInput,
12
- HandleInput,
13
10
  IntInput,
14
- SecretStrInput,
15
11
  StrInput,
16
12
  )
17
13
  from lfx.schema.data import Data
18
14
 
19
15
 
20
- class AstraDBGraphVectorStoreComponent(LCVectorStoreComponent):
16
+ class AstraDBGraphVectorStoreComponent(AstraDBBaseComponent, LCVectorStoreComponent):
21
17
  display_name: str = "Astra DB Graph"
22
18
  description: str = "Implementation of Graph Vector Store using Astra DB"
23
19
  name = "AstraDBGraph"
24
- documentation: str = "https://docs.langflow.org/bundles-datastax#astra-db-graph"
20
+ documentation: str = "https://docs.langflow.org/bundles-datastax"
25
21
  icon: str = "AstraDB"
22
+ legacy: bool = True
23
+ replacement = ["datastax.GraphRAG"]
26
24
 
27
25
  inputs = [
28
- SecretStrInput(
29
- name="token",
30
- display_name="Astra DB Application Token",
31
- info="Authentication token for accessing Astra DB.",
32
- value="ASTRA_DB_APPLICATION_TOKEN",
33
- required=True,
34
- advanced=os.getenv("ASTRA_ENHANCED", "false").lower() == "true",
35
- ),
36
- SecretStrInput(
37
- name="api_endpoint",
38
- display_name="Database" if os.getenv("ASTRA_ENHANCED", "false").lower() == "true" else "API Endpoint",
39
- info="API endpoint URL for the Astra DB service.",
40
- value="ASTRA_DB_API_ENDPOINT",
41
- required=True,
42
- ),
43
- StrInput(
44
- name="collection_name",
45
- display_name="Collection Name",
46
- info="The name of the collection within Astra DB where the vectors will be stored.",
47
- required=True,
48
- ),
26
+ *AstraDBBaseComponent.inputs,
27
+ *LCVectorStoreComponent.inputs,
49
28
  StrInput(
50
29
  name="metadata_incoming_links_key",
51
30
  display_name="Metadata incoming links key",
52
31
  info="Metadata key used for incoming links.",
53
32
  advanced=True,
54
33
  ),
55
- *LCVectorStoreComponent.inputs,
56
- StrInput(
57
- name="keyspace",
58
- display_name="Keyspace",
59
- info="Optional keyspace within Astra DB to use for the collection.",
60
- advanced=True,
61
- ),
62
- HandleInput(
63
- name="embedding_model",
64
- display_name="Embedding Model",
65
- input_types=["Embeddings"],
66
- info="Allows an embedding model configuration.",
67
- ),
68
- DropdownInput(
69
- name="metric",
70
- display_name="Metric",
71
- info="Optional distance metric for vector comparisons in the vector store.",
72
- options=["cosine", "dot_product", "euclidean"],
73
- value="cosine",
74
- advanced=True,
75
- ),
76
- IntInput(
77
- name="batch_size",
78
- display_name="Batch Size",
79
- info="Optional number of data to process in a single batch.",
80
- advanced=True,
81
- ),
82
- IntInput(
83
- name="bulk_insert_batch_concurrency",
84
- display_name="Bulk Insert Batch Concurrency",
85
- info="Optional concurrency level for bulk insert operations.",
86
- advanced=True,
87
- ),
88
- IntInput(
89
- name="bulk_insert_overwrite_concurrency",
90
- display_name="Bulk Insert Overwrite Concurrency",
91
- info="Optional concurrency level for bulk insert operations that overwrite existing data.",
92
- advanced=True,
93
- ),
94
- IntInput(
95
- name="bulk_delete_concurrency",
96
- display_name="Bulk Delete Concurrency",
97
- info="Optional concurrency level for bulk delete operations.",
98
- advanced=True,
99
- ),
100
- DropdownInput(
101
- name="setup_mode",
102
- display_name="Setup Mode",
103
- info="Configuration mode for setting up the vector store, with options like 'Sync', or 'Off'.",
104
- options=["Sync", "Off"],
105
- advanced=True,
106
- value="Sync",
107
- ),
108
- BoolInput(
109
- name="pre_delete_collection",
110
- display_name="Pre Delete Collection",
111
- info="Boolean flag to determine whether to delete the collection before creating a new one.",
112
- advanced=True,
113
- value=False,
114
- ),
115
- StrInput(
116
- name="metadata_indexing_include",
117
- display_name="Metadata Indexing Include",
118
- info="Optional list of metadata fields to include in the indexing.",
119
- advanced=True,
120
- list=True,
121
- ),
122
- StrInput(
123
- name="metadata_indexing_exclude",
124
- display_name="Metadata Indexing Exclude",
125
- info="Optional list of metadata fields to exclude from the indexing.",
126
- advanced=True,
127
- list=True,
128
- ),
129
- StrInput(
130
- name="collection_indexing_policy",
131
- display_name="Collection Indexing Policy",
132
- info='Optional JSON string for the "indexing" field of the collection. '
133
- "See https://docs.datastax.com/en/astra-db-serverless/api-reference/collections.html#the-indexing-option",
134
- advanced=True,
135
- ),
136
34
  IntInput(
137
35
  name="number_of_results",
138
36
  display_name="Number of Results",
@@ -174,7 +72,6 @@ class AstraDBGraphVectorStoreComponent(LCVectorStoreComponent):
174
72
  @check_cached_vector_store
175
73
  def build_vector_store(self):
176
74
  try:
177
- from astrapy.admin import parse_api_endpoint
178
75
  from langchain_astradb import AstraDBGraphVectorStore
179
76
  from langchain_astradb.utils.astradb import SetupMode
180
77
  except ImportError as e:
@@ -196,25 +93,14 @@ class AstraDBGraphVectorStoreComponent(LCVectorStoreComponent):
196
93
  try:
197
94
  self.log(f"Initializing Graph Vector Store {self.collection_name}")
198
95
 
199
- # Handle environment parsing with try-except to avoid circular import
200
- environment = None
201
- if self.api_endpoint:
202
- try:
203
- from astrapy.admin import parse_api_endpoint
204
-
205
- environment = parse_api_endpoint(self.api_endpoint).environment
206
- except ImportError:
207
- self.log("Warning: Could not import parse_api_endpoint, using None for environment")
208
- environment = None
209
-
210
96
  vector_store = AstraDBGraphVectorStore(
211
97
  embedding=self.embedding_model,
212
98
  collection_name=self.collection_name,
213
99
  metadata_incoming_links_key=self.metadata_incoming_links_key or "incoming_links",
214
100
  token=self.token,
215
- api_endpoint=self.api_endpoint,
216
- namespace=self.keyspace or None,
217
- environment=environment,
101
+ api_endpoint=self.get_api_endpoint(),
102
+ namespace=self.get_keyspace(),
103
+ environment=self.environment,
218
104
  metric=self.metric or None,
219
105
  batch_size=self.batch_size or None,
220
106
  bulk_insert_batch_concurrency=self.bulk_insert_batch_concurrency or None,
@@ -1,4 +1,3 @@
1
- import os
2
1
  from datetime import datetime, timezone
3
2
  from typing import Any
4
3
 
@@ -6,20 +5,25 @@ from astrapy import Collection, DataAPIClient, Database
6
5
  from langchain_core.tools import StructuredTool, Tool
7
6
  from pydantic import BaseModel, Field, create_model
8
7
 
8
+ from lfx.base.datastax.astradb_base import AstraDBBaseComponent
9
9
  from lfx.base.langchain_utilities.model import LCToolComponent
10
- from lfx.io import BoolInput, DictInput, HandleInput, IntInput, SecretStrInput, StrInput, TableInput
10
+ from lfx.io import BoolInput, DictInput, IntInput, StrInput, TableInput
11
11
  from lfx.log.logger import logger
12
12
  from lfx.schema.data import Data
13
13
  from lfx.schema.table import EditMode
14
14
 
15
15
 
16
- class AstraDBToolComponent(LCToolComponent):
16
+ class AstraDBToolComponent(AstraDBBaseComponent, LCToolComponent):
17
17
  display_name: str = "Astra DB Tool"
18
18
  description: str = "Tool to run hybrid vector and metadata search on DataStax Astra DB Collection"
19
- documentation: str = "https://docs.langflow.org/bundles-datastax#astra-db-tool"
19
+ documentation: str = "https://docs.langflow.org/bundles-datastax"
20
20
  icon: str = "AstraDB"
21
+ legacy: bool = True
22
+ name = "AstraDBTool"
23
+ replacement = ["datastax.AstraDB"]
21
24
 
22
25
  inputs = [
26
+ *AstraDBBaseComponent.inputs,
23
27
  StrInput(
24
28
  name="tool_name",
25
29
  display_name="Tool Name",
@@ -32,33 +36,6 @@ class AstraDBToolComponent(LCToolComponent):
32
36
  info="Describe the tool to LLM. Add any information that can help the LLM to use the tool.",
33
37
  required=True,
34
38
  ),
35
- StrInput(
36
- name="keyspace",
37
- display_name="Keyspace Name",
38
- info="The name of the keyspace within Astra where the collection is stored.",
39
- value="default_keyspace",
40
- advanced=True,
41
- ),
42
- StrInput(
43
- name="collection_name",
44
- display_name="Collection Name",
45
- info="The name of the collection within Astra DB where the vectors will be stored.",
46
- required=True,
47
- ),
48
- SecretStrInput(
49
- name="token",
50
- display_name="Astra DB Application Token",
51
- info="Authentication token for accessing Astra DB.",
52
- value="ASTRA_DB_APPLICATION_TOKEN",
53
- required=True,
54
- ),
55
- SecretStrInput(
56
- name="api_endpoint",
57
- display_name="Database" if os.getenv("ASTRA_ENHANCED", "false").lower() == "true" else "API Endpoint",
58
- info="API endpoint URL for the Astra DB service.",
59
- value="ASTRA_DB_API_ENDPOINT",
60
- required=True,
61
- ),
62
39
  StrInput(
63
40
  name="projection_attributes",
64
41
  display_name="Projection Attributes",
@@ -175,7 +152,6 @@ class AstraDBToolComponent(LCToolComponent):
175
152
  advanced=False,
176
153
  value=False,
177
154
  ),
178
- HandleInput(name="embedding", display_name="Embedding Model", input_types=["Embeddings"]),
179
155
  StrInput(
180
156
  name="semantic_search_instruction",
181
157
  display_name="Semantic Search Instruction",
@@ -190,26 +166,6 @@ class AstraDBToolComponent(LCToolComponent):
190
166
  _cached_db: Database | None = None
191
167
  _cached_collection: Collection | None = None
192
168
 
193
- def _build_collection(self):
194
- try:
195
- from astrapy.admin import parse_api_endpoint
196
- except ImportError as e:
197
- msg = "Could not import Astra DB integration package. Please install it with `uv pip install astrapy`."
198
- raise ImportError(msg) from e
199
- if self._cached_collection:
200
- return self._cached_collection
201
-
202
- try:
203
- environment = parse_api_endpoint(self.api_endpoint).environment
204
- cached_client = DataAPIClient(self.token, environment=environment)
205
- cached_db = cached_client.get_database(self.api_endpoint, keyspace=self.keyspace)
206
- self._cached_collection = cached_db.get_collection(self.collection_name)
207
- except Exception as e:
208
- msg = f"Error building collection: {e}"
209
- raise ValueError(msg) from e
210
- else:
211
- return self._cached_collection
212
-
213
169
  def create_args_schema(self) -> dict[str, BaseModel]:
214
170
  """DEPRECATED: This method is deprecated. Please use create_args_schema_v2 instead.
215
171
 
@@ -375,7 +331,6 @@ class AstraDBToolComponent(LCToolComponent):
375
331
 
376
332
  def run_model(self, **args) -> Data | list[Data]:
377
333
  """Run the query to get the data from the Astra DB collection."""
378
- collection = self._build_collection()
379
334
  sort = {}
380
335
 
381
336
  # Build filters using the new method
@@ -405,6 +360,11 @@ class AstraDBToolComponent(LCToolComponent):
405
360
  find_options["projection"] = projection
406
361
 
407
362
  try:
363
+ database = self.get_database_object(api_endpoint=self.get_api_endpoint())
364
+ collection = database.get_collection(
365
+ name=self.collection_name,
366
+ keyspace=self.get_keyspace(),
367
+ )
408
368
  results = collection.find(**find_options)
409
369
  except Exception as e:
410
370
  msg = f"Error on Astra DB Tool {self.tool_name} request: {e}"