apify-haystack 1.0.0__tar.gz → 1.0.1__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.
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/CHANGELOG.md +7 -0
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/PKG-INFO +13 -6
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/README.md +14 -7
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/pyproject.toml +1 -1
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/pyproject.toml.orig +1 -1
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/src/apify_haystack/_dataset.py +18 -17
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/CONTRIBUTING.md +0 -0
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/LICENSE +0 -0
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/src/apify_haystack/__init__.py +0 -0
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/src/apify_haystack/_actor_tool.py +0 -0
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/src/apify_haystack/_client.py +0 -0
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/src/apify_haystack/_constants.py +0 -0
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/src/apify_haystack/_web_search.py +0 -0
- {apify_haystack-1.0.0 → apify_haystack-1.0.1}/src/apify_haystack/py.typed +0 -0
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.0.1](https://github.com/apify/apify-haystack/releases/tag/v1.0.1) (2026-10-29)
|
|
6
|
+
|
|
7
|
+
### 🐛 Bug Fixes
|
|
8
|
+
|
|
9
|
+
- Allow running Actors and tasks without input ([#84](https://github.com/apify/apify-haystack/pull/84)) ([3036312](https://github.com/apify/apify-haystack/commit/3036312e567dc513529e1d822db009b44ca97041)) by [@vdusek](https://github.com/vdusek)
|
|
10
|
+
|
|
11
|
+
|
|
5
12
|
## [1.0.0](https://github.com/apify/apify-haystack/releases/tag/v1.0.0) (2026-10-27)
|
|
6
13
|
|
|
7
14
|
### 🚀 Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apify_haystack
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: Apify integration for Haystack: load Actor results as Documents, search the web, and give Agents access to Apify Actors.
|
|
5
5
|
Keywords: agents,apify,crawler,haystack,llm,rag,scraper,scraping,web-search
|
|
6
6
|
Author: Apify Technologies s.r.o.
|
|
@@ -27,13 +27,20 @@ Project-URL: Issue Tracker, https://github.com/apify/apify-haystack/issues
|
|
|
27
27
|
Project-URL: Repository, https://github.com/apify/apify-haystack
|
|
28
28
|
Description-Content-Type: text/markdown
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
<h1 align="center">Apify-Haystack integration</h1>
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
<p align="center">
|
|
33
|
+
<strong>The official integration of the <a href="https://apify.com/">Apify</a> platform with <a href="https://haystack.deepset.ai/">Haystack</a>.</strong>
|
|
34
|
+
</p>
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
<p align="center">
|
|
37
|
+
<a href="https://pypi.org/project/apify-haystack/"><img src="https://badge.fury.io/py/apify-haystack.svg" alt="PyPI version"></a>
|
|
38
|
+
<a href="https://pypi.org/project/apify-haystack/"><img src="https://img.shields.io/pypi/dm/apify-haystack" alt="PyPI downloads"></a>
|
|
39
|
+
<a href="https://pypi.org/project/apify-haystack/"><img src="https://img.shields.io/badge/python-3.11%2B-blue" alt="Python versions"></a>
|
|
40
|
+
<a href="https://github.com/apify/apify-haystack/actions/workflows/on_main.yaml"><img src="https://github.com/apify/apify-haystack/actions/workflows/on_main.yaml/badge.svg?branch=main" alt="Build status"></a>
|
|
41
|
+
<a href="https://github.com/apify/apify-haystack/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/apify-haystack" alt="License"></a>
|
|
42
|
+
<a href="https://discord.gg/jyEM2PRvMU"><img src="https://img.shields.io/discord/801163717915574323?label=discord" alt="Chat on Discord"></a>
|
|
43
|
+
</p>
|
|
37
44
|
|
|
38
45
|
Apify is a platform for web scraping, data extraction, and web automation tasks.
|
|
39
46
|
It provides serverless applications called Actors for tasks like crawling websites and scraping Facebook, Instagram, and Google results.
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
<h1 align="center">Apify-Haystack integration</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>The official integration of the <a href="https://apify.com/">Apify</a> platform with <a href="https://haystack.deepset.ai/">Haystack</a>.</strong>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://pypi.org/project/apify-haystack/"><img src="https://badge.fury.io/py/apify-haystack.svg" alt="PyPI version"></a>
|
|
9
|
+
<a href="https://pypi.org/project/apify-haystack/"><img src="https://img.shields.io/pypi/dm/apify-haystack" alt="PyPI downloads"></a>
|
|
10
|
+
<a href="https://pypi.org/project/apify-haystack/"><img src="https://img.shields.io/badge/python-3.11%2B-blue" alt="Python versions"></a>
|
|
11
|
+
<a href="https://github.com/apify/apify-haystack/actions/workflows/on_main.yaml"><img src="https://github.com/apify/apify-haystack/actions/workflows/on_main.yaml/badge.svg?branch=main" alt="Build status"></a>
|
|
12
|
+
<a href="https://github.com/apify/apify-haystack/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/apify-haystack" alt="License"></a>
|
|
13
|
+
<a href="https://discord.gg/jyEM2PRvMU"><img src="https://img.shields.io/discord/801163717915574323?label=discord" alt="Chat on Discord"></a>
|
|
14
|
+
</p>
|
|
8
15
|
|
|
9
16
|
Apify is a platform for web scraping, data extraction, and web automation tasks.
|
|
10
17
|
It provides serverless applications called Actors for tasks like crawling websites and scraping Facebook, Instagram, and Google results.
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "apify_haystack"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.1"
|
|
8
8
|
description = "Apify integration for Haystack: load Actor results as Documents, search the web, and give Agents access to Apify Actors."
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
license-files = ["LICENSE"]
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "apify_haystack"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.1"
|
|
8
8
|
description = "Apify integration for Haystack: load Actor results as Documents, search the web, and give Agents access to Apify Actors."
|
|
9
9
|
authors = [{ name = "Apify Technologies s.r.o.", email = "support@apify.com" }]
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -132,7 +132,8 @@ class ApifyDatasetFromActorCall(ApifyDatasetComponent):
|
|
|
132
132
|
`default_dataset_mapping_function`.
|
|
133
133
|
run_input (dict, optional): The input parameters for the Actor you want to run. This can be provided
|
|
134
134
|
either in the `run` method or during the class instantiation. If specified in both places,
|
|
135
|
-
the inputs are merged and the values from `run` take precedence.
|
|
135
|
+
the inputs are merged and the values from `run` take precedence. Without any input, the
|
|
136
|
+
Actor runs with its default input.
|
|
136
137
|
build (str, optional): Optionally specifies the Actor build to run.
|
|
137
138
|
It can be either a build tag or build number.
|
|
138
139
|
memory_mbytes (int, optional): Optional memory limit for the run, in megabytes.
|
|
@@ -160,7 +161,8 @@ class ApifyDatasetFromActorCall(ApifyDatasetComponent):
|
|
|
160
161
|
Args:
|
|
161
162
|
run_input (dict, optional): The input parameters for the Actor you want to run. This can be provided
|
|
162
163
|
either in the `run` method or during the class instantiation. If specified in both places,
|
|
163
|
-
the inputs are merged and the values from `run` take precedence.
|
|
164
|
+
the inputs are merged and the values from `run` take precedence. Without any input, the
|
|
165
|
+
Actor runs with its default input.
|
|
164
166
|
|
|
165
167
|
Example:
|
|
166
168
|
.. code-block:: python
|
|
@@ -172,8 +174,7 @@ class ApifyDatasetFromActorCall(ApifyDatasetComponent):
|
|
|
172
174
|
)
|
|
173
175
|
dataset = actor.run(run_input={"startUrls": [{"url": "https://haystack.deepset.ai/"}]})
|
|
174
176
|
"""
|
|
175
|
-
|
|
176
|
-
raise ValueError('Please provide the run_input either in the constructor or in the run method.')
|
|
177
|
+
run_input = _merge_inputs(self.run_input, run_input)
|
|
177
178
|
|
|
178
179
|
client = self._get_client()
|
|
179
180
|
run = client.actor(self.actor_id).call(
|
|
@@ -193,10 +194,10 @@ class ApifyDatasetFromActorCall(ApifyDatasetComponent):
|
|
|
193
194
|
Args:
|
|
194
195
|
run_input (dict, optional): The input parameters for the Actor you want to run. This can be provided
|
|
195
196
|
either in the `run_async` method or during the class instantiation. If specified in both places,
|
|
196
|
-
the inputs are merged and the values from `run_async` take precedence.
|
|
197
|
+
the inputs are merged and the values from `run_async` take precedence. Without any input, the
|
|
198
|
+
Actor runs with its default input.
|
|
197
199
|
"""
|
|
198
|
-
|
|
199
|
-
raise ValueError('Please provide the run_input either in the constructor or in the run method.')
|
|
200
|
+
run_input = _merge_inputs(self.run_input, run_input)
|
|
200
201
|
|
|
201
202
|
client = self._get_async_client()
|
|
202
203
|
run = await client.actor(self.actor_id).call(
|
|
@@ -260,7 +261,8 @@ class ApifyDatasetFromTaskCall(ApifyDatasetComponent):
|
|
|
260
261
|
`default_dataset_mapping_function`.
|
|
261
262
|
task_input (dict, optional): The input parameters for the task you want to run. This can be provided
|
|
262
263
|
either in the `run` method or during the class instantiation. If specified in both places,
|
|
263
|
-
the inputs are merged and the values from `run` take precedence.
|
|
264
|
+
the inputs are merged and the values from `run` take precedence. Without any input, the
|
|
265
|
+
task runs with its saved input.
|
|
264
266
|
build (str, optional): Optionally specifies the Actor build to run.
|
|
265
267
|
It can be either a build tag or build number.
|
|
266
268
|
memory_mbytes (int, optional): Optional memory limit for the run, in megabytes.
|
|
@@ -288,10 +290,10 @@ class ApifyDatasetFromTaskCall(ApifyDatasetComponent):
|
|
|
288
290
|
Args:
|
|
289
291
|
task_input (dict, optional): The input parameters for the task you want to run. This can be provided
|
|
290
292
|
either in the `run` method or during the class instantiation. If specified in both places,
|
|
291
|
-
the inputs are merged and the values from `run` take precedence.
|
|
293
|
+
the inputs are merged and the values from `run` take precedence. Without any input, the
|
|
294
|
+
task runs with its saved input.
|
|
292
295
|
"""
|
|
293
|
-
|
|
294
|
-
raise ValueError('Please provide the task_input either in the constructor or in the run method.')
|
|
296
|
+
task_input = _merge_inputs(self.task_input, task_input)
|
|
295
297
|
|
|
296
298
|
client = self._get_client()
|
|
297
299
|
run = client.task(self.task_id).call(
|
|
@@ -311,10 +313,10 @@ class ApifyDatasetFromTaskCall(ApifyDatasetComponent):
|
|
|
311
313
|
Args:
|
|
312
314
|
task_input (dict, optional): The input parameters for the task you want to run. This can be provided
|
|
313
315
|
either in the `run_async` method or during the class instantiation. If specified in both places,
|
|
314
|
-
the inputs are merged and the values from `run_async` take precedence.
|
|
316
|
+
the inputs are merged and the values from `run_async` take precedence. Without any input, the
|
|
317
|
+
task runs with its saved input.
|
|
315
318
|
"""
|
|
316
|
-
|
|
317
|
-
raise ValueError('Please provide the task_input either in the constructor or in the run method.')
|
|
319
|
+
task_input = _merge_inputs(self.task_input, task_input)
|
|
318
320
|
|
|
319
321
|
client = self._get_async_client()
|
|
320
322
|
run = await client.task(self.task_id).call(
|
|
@@ -375,9 +377,8 @@ def _serialize_mapping_function(dataset_mapping_function: Callable[[dict], Docum
|
|
|
375
377
|
|
|
376
378
|
|
|
377
379
|
def _merge_inputs(input1: dict | None, input2: dict | None) -> dict | None:
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
return input1 or input2
|
|
380
|
+
merged = (input1 or {}) | (input2 or {})
|
|
381
|
+
return merged or None
|
|
381
382
|
|
|
382
383
|
|
|
383
384
|
def _load_documents(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|