pinecone-haystack 6.2.0__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.
- pinecone_haystack-6.2.0/.gitignore +146 -0
- pinecone_haystack-6.2.0/CHANGELOG.md +280 -0
- pinecone_haystack-6.2.0/PKG-INFO +38 -0
- pinecone_haystack-6.2.0/README.md +15 -0
- pinecone_haystack-6.2.0/examples/example.py +56 -0
- pinecone_haystack-6.2.0/pydoc/config_docusaurus.yml +14 -0
- pinecone_haystack-6.2.0/pyproject.toml +173 -0
- pinecone_haystack-6.2.0/src/haystack_integrations/components/retrievers/pinecone/__init__.py +3 -0
- pinecone_haystack-6.2.0/src/haystack_integrations/components/retrievers/pinecone/embedding_retriever.py +173 -0
- pinecone_haystack-6.2.0/src/haystack_integrations/components/retrievers/py.typed +0 -0
- pinecone_haystack-6.2.0/src/haystack_integrations/document_stores/pinecone/__init__.py +6 -0
- pinecone_haystack-6.2.0/src/haystack_integrations/document_stores/pinecone/document_store.py +1102 -0
- pinecone_haystack-6.2.0/src/haystack_integrations/document_stores/pinecone/filters.py +191 -0
- pinecone_haystack-6.2.0/src/haystack_integrations/document_stores/py.typed +0 -0
- pinecone_haystack-6.2.0/tests/__init__.py +3 -0
- pinecone_haystack-6.2.0/tests/conftest.py +113 -0
- pinecone_haystack-6.2.0/tests/test_document_store.py +584 -0
- pinecone_haystack-6.2.0/tests/test_document_store_async.py +152 -0
- pinecone_haystack-6.2.0/tests/test_embedding_retriever.py +194 -0
- pinecone_haystack-6.2.0/tests/test_filters.py +178 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
pip-wheel-metadata/
|
|
24
|
+
share/python-wheels/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
.installed.cfg
|
|
27
|
+
*.egg
|
|
28
|
+
MANIFEST
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
# Usually these files are written by a python script from a template
|
|
32
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
33
|
+
*.manifest
|
|
34
|
+
*.spec
|
|
35
|
+
|
|
36
|
+
# Installer logs
|
|
37
|
+
pip-log.txt
|
|
38
|
+
pip-delete-this-directory.txt
|
|
39
|
+
|
|
40
|
+
# Unit test / coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.tox/
|
|
43
|
+
.nox/
|
|
44
|
+
.coverage
|
|
45
|
+
.coverage.*
|
|
46
|
+
.cache
|
|
47
|
+
nosetests.xml
|
|
48
|
+
coverage.xml
|
|
49
|
+
*.cover
|
|
50
|
+
*.py,cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
volumes/
|
|
54
|
+
|
|
55
|
+
# Translations
|
|
56
|
+
*.mo
|
|
57
|
+
*.pot
|
|
58
|
+
|
|
59
|
+
# Django stuff:
|
|
60
|
+
*.log
|
|
61
|
+
local_settings.py
|
|
62
|
+
db.sqlite3
|
|
63
|
+
db.sqlite3-journal
|
|
64
|
+
|
|
65
|
+
# Flask stuff:
|
|
66
|
+
instance/
|
|
67
|
+
.webassets-cache
|
|
68
|
+
|
|
69
|
+
# Scrapy stuff:
|
|
70
|
+
.scrapy
|
|
71
|
+
|
|
72
|
+
# Sphinx documentation
|
|
73
|
+
docs/_build/
|
|
74
|
+
|
|
75
|
+
# PyBuilder
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
.python-version
|
|
87
|
+
|
|
88
|
+
# pipenv
|
|
89
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
90
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
91
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
92
|
+
# install all needed dependencies.
|
|
93
|
+
#Pipfile.lock
|
|
94
|
+
|
|
95
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
96
|
+
__pypackages__/
|
|
97
|
+
|
|
98
|
+
# Celery stuff
|
|
99
|
+
celerybeat-schedule
|
|
100
|
+
celerybeat.pid
|
|
101
|
+
|
|
102
|
+
# SageMath parsed files
|
|
103
|
+
*.sage.py
|
|
104
|
+
|
|
105
|
+
# Environments
|
|
106
|
+
.env
|
|
107
|
+
.venv
|
|
108
|
+
env/
|
|
109
|
+
venv/
|
|
110
|
+
ENV/
|
|
111
|
+
env.bak/
|
|
112
|
+
venv.bak/
|
|
113
|
+
|
|
114
|
+
# Spyder project settings
|
|
115
|
+
.spyderproject
|
|
116
|
+
.spyproject
|
|
117
|
+
|
|
118
|
+
# Rope project settings
|
|
119
|
+
.ropeproject
|
|
120
|
+
|
|
121
|
+
# mkdocs documentation
|
|
122
|
+
/site
|
|
123
|
+
|
|
124
|
+
# mypy
|
|
125
|
+
.mypy_cache/
|
|
126
|
+
.dmypy.json
|
|
127
|
+
dmypy.json
|
|
128
|
+
|
|
129
|
+
# Pyre type checker
|
|
130
|
+
.pyre/
|
|
131
|
+
|
|
132
|
+
# IDEs
|
|
133
|
+
.vscode
|
|
134
|
+
|
|
135
|
+
# Docs generation artifacts
|
|
136
|
+
_readme_*.md
|
|
137
|
+
.idea
|
|
138
|
+
|
|
139
|
+
# macOS
|
|
140
|
+
.DS_Store
|
|
141
|
+
|
|
142
|
+
# http cache (requests-cache)
|
|
143
|
+
**/http_cache.sqlite
|
|
144
|
+
|
|
145
|
+
# ruff
|
|
146
|
+
.ruff_cache
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [integrations/pinecone-v6.1.2] - 2026-01-28
|
|
4
|
+
|
|
5
|
+
### 🐛 Bug Fixes
|
|
6
|
+
|
|
7
|
+
- Docs: fixing docstring parsing error for `PineConeDocumentStore` (#2790)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## [integrations/pinecone-v6.1.1] - 2026-01-28
|
|
11
|
+
|
|
12
|
+
### 📚 Documentation
|
|
13
|
+
|
|
14
|
+
- Fixing docstring parsing error on `PineConeDocumentStore` (#2788)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [integrations/pinecone-v6.1.0] - 2026-01-28
|
|
18
|
+
|
|
19
|
+
### 🚀 Features
|
|
20
|
+
|
|
21
|
+
- Add operations to PineConeDocumentStore (#2772)
|
|
22
|
+
|
|
23
|
+
### 🧪 Testing
|
|
24
|
+
|
|
25
|
+
- Pinecone - improve flaky tests (#2787)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## [integrations/pinecone-v6.0.0] - 2026-01-13
|
|
29
|
+
|
|
30
|
+
### 🧹 Chores
|
|
31
|
+
|
|
32
|
+
- [**breaking**] Pinecone - drop Python 3.9 and use X|Y typing (#2723)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## [integrations/pinecone-v5.5.0] - 2026-01-08
|
|
36
|
+
|
|
37
|
+
### 🚀 Features
|
|
38
|
+
|
|
39
|
+
- Adding `delete_by_filter` and update_by_filter to `PineconeDocumentStore` (#2655)
|
|
40
|
+
|
|
41
|
+
### 🧹 Chores
|
|
42
|
+
|
|
43
|
+
- Remove Readme API CI workflow and configs (#2573)
|
|
44
|
+
- Fix Pinecone types and make sure that tests run (#2658)
|
|
45
|
+
- Make fmt command more forgiving (#2671)
|
|
46
|
+
|
|
47
|
+
### 🌀 Miscellaneous
|
|
48
|
+
|
|
49
|
+
- Enhancement: Adopt PEP 585 type hinting (part 5) (#2528)
|
|
50
|
+
- Fix: Fix doc links (#2661)
|
|
51
|
+
|
|
52
|
+
## [integrations/pinecone-v5.4.0] - 2025-11-05
|
|
53
|
+
|
|
54
|
+
### 🚀 Features
|
|
55
|
+
|
|
56
|
+
- Add delete all documents to Pinecone DocumentStore (#2403)
|
|
57
|
+
|
|
58
|
+
### 📚 Documentation
|
|
59
|
+
|
|
60
|
+
- Add pydoc configurations for Docusaurus (#2411)
|
|
61
|
+
|
|
62
|
+
### 🧪 Testing
|
|
63
|
+
|
|
64
|
+
- Pinecone - relax flaky test (#2360)
|
|
65
|
+
|
|
66
|
+
### ⚙️ CI
|
|
67
|
+
|
|
68
|
+
- Install dependencies in the `test` environment when testing with lowest direct dependencies and Haystack main (#2418)
|
|
69
|
+
- Change pytest command (#2475)
|
|
70
|
+
|
|
71
|
+
### 🧹 Chores
|
|
72
|
+
|
|
73
|
+
- Standardize readmes - part 2 (#2205)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
## [integrations/pinecone-v5.3.0] - 2025-07-30
|
|
77
|
+
|
|
78
|
+
### 🚀 Features
|
|
79
|
+
|
|
80
|
+
- Pinecone - add methods to close resources (#1972)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
## [integrations/pinecone-v5.2.0] - 2025-06-26
|
|
84
|
+
|
|
85
|
+
### 🐛 Bug Fixes
|
|
86
|
+
|
|
87
|
+
- Fix Pinecone types + add py.typed (#1993)
|
|
88
|
+
|
|
89
|
+
### 🧪 Testing
|
|
90
|
+
|
|
91
|
+
- Pinecone - use uuid for namespace names (#1984)
|
|
92
|
+
|
|
93
|
+
### 🧹 Chores
|
|
94
|
+
|
|
95
|
+
- Align core-integrations Hatch scripts (#1898)
|
|
96
|
+
- Update md files for new hatch scripts (#1911)
|
|
97
|
+
- Remove black (#1985)
|
|
98
|
+
|
|
99
|
+
### 🌀 Miscellaneous
|
|
100
|
+
|
|
101
|
+
- Test: Pinecone - reenable tests for `comparison_not_equal` and `or_operator` (#1871)
|
|
102
|
+
|
|
103
|
+
## [integrations/pinecone-v5.1.1] - 2025-05-28
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
### 🌀 Miscellaneous
|
|
107
|
+
|
|
108
|
+
- Add pins for Pinecone (#1851)
|
|
109
|
+
|
|
110
|
+
## [integrations/pinecone-v5.1.0] - 2025-03-25
|
|
111
|
+
|
|
112
|
+
### 🚀 Features
|
|
113
|
+
|
|
114
|
+
- Pinecone -- async support (#1560)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
### ⚙️ CI
|
|
118
|
+
|
|
119
|
+
- Review testing workflows (#1541)
|
|
120
|
+
|
|
121
|
+
## [integrations/pinecone-v5.0.0] - 2025-03-11
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
### 🧪 Testing
|
|
125
|
+
|
|
126
|
+
- Skip tests that require credentials on PRs from forks for some integrations (#1485)
|
|
127
|
+
|
|
128
|
+
### 🧹 Chores
|
|
129
|
+
|
|
130
|
+
- Use Haystack logging across integrations (#1484)
|
|
131
|
+
|
|
132
|
+
### 🌀 Miscellaneous
|
|
133
|
+
|
|
134
|
+
- Increase sleep time (#1478)
|
|
135
|
+
- Chore: Pinecone - pin haystack and remove dataframe checks (#1514)
|
|
136
|
+
|
|
137
|
+
## [integrations/pinecone-v4.0.0] - 2025-02-25
|
|
138
|
+
|
|
139
|
+
### 🐛 Bug Fixes
|
|
140
|
+
|
|
141
|
+
- Replace `pinecone-client` dependency with `pinecone` (#1431)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
### 🧹 Chores
|
|
145
|
+
|
|
146
|
+
- Remove Python 3.8 support (#1421)
|
|
147
|
+
|
|
148
|
+
## [integrations/pinecone-v3.0.0] - 2025-02-14
|
|
149
|
+
|
|
150
|
+
### ⚙️ CI
|
|
151
|
+
|
|
152
|
+
- Adopt uv as installer (#1142)
|
|
153
|
+
|
|
154
|
+
### 🧹 Chores
|
|
155
|
+
|
|
156
|
+
- Pinecone - remove legacy filter support (#1069)
|
|
157
|
+
- Update changelog after removing legacy filters (#1083)
|
|
158
|
+
- Update ruff linting scripts and settings (#1105)
|
|
159
|
+
- Inherit from `FilterDocumentsTestWithDataframe` in Document Stores (#1290)
|
|
160
|
+
|
|
161
|
+
### 🌀 Miscellaneous
|
|
162
|
+
|
|
163
|
+
- Test: Pinecone - increase sleep time (#1307)
|
|
164
|
+
- Chore!: pinecone - remove dataframe support (#1372)
|
|
165
|
+
|
|
166
|
+
## [integrations/pinecone-v1.2.3] - 2024-08-29
|
|
167
|
+
|
|
168
|
+
### 🚀 Features
|
|
169
|
+
|
|
170
|
+
- Add filter_policy to pinecone integration (#821)
|
|
171
|
+
|
|
172
|
+
### 🐛 Bug Fixes
|
|
173
|
+
|
|
174
|
+
- `pinecone` - Fallback to default filter policy when deserializing retrievers without the init parameter (#901)
|
|
175
|
+
- Skip unsupported meta fields in PineconeDB (#1009)
|
|
176
|
+
- Converting `Pinecone` metadata fields from float back to int (#1034)
|
|
177
|
+
|
|
178
|
+
### 🧪 Testing
|
|
179
|
+
|
|
180
|
+
- Pinecone - fix `test_serverless_index_creation_from_scratch` (#806)
|
|
181
|
+
- Do not retry tests in `hatch run test` command (#954)
|
|
182
|
+
|
|
183
|
+
### ⚙️ CI
|
|
184
|
+
|
|
185
|
+
- Retry tests to reduce flakyness (#836)
|
|
186
|
+
|
|
187
|
+
### 🧹 Chores
|
|
188
|
+
|
|
189
|
+
- Update ruff invocation to include check parameter (#853)
|
|
190
|
+
|
|
191
|
+
### 🌀 Miscellaneous
|
|
192
|
+
|
|
193
|
+
- Ci: add retry config to Pinecone test (#848)
|
|
194
|
+
- Chore: Minor retriever pydoc fix (#884)
|
|
195
|
+
- Chore: Pinecone - fix import in conftest (#914)
|
|
196
|
+
|
|
197
|
+
## [integrations/pinecone-v1.1.0] - 2024-06-11
|
|
198
|
+
|
|
199
|
+
### 🚀 Features
|
|
200
|
+
|
|
201
|
+
- Defer the database connection to when it's needed (#804)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
## [integrations/pinecone-v1.0.0] - 2024-06-10
|
|
205
|
+
|
|
206
|
+
### 🚀 Features
|
|
207
|
+
|
|
208
|
+
- [**breaking**] Pinecone - support for the new API (#793)
|
|
209
|
+
|
|
210
|
+
### 🌀 Miscellaneous
|
|
211
|
+
|
|
212
|
+
- Pinecone - Skip `test_comparison_not_equal_with_dataframe` (#647)
|
|
213
|
+
- Pinecone - increase sleep time (#673)
|
|
214
|
+
- Chore: add license classifiers (#680)
|
|
215
|
+
- Chore: change the pydoc renderer class (#718)
|
|
216
|
+
|
|
217
|
+
## [integrations/pinecone-v0.4.1] - 2024-04-02
|
|
218
|
+
|
|
219
|
+
### 🐛 Bug Fixes
|
|
220
|
+
|
|
221
|
+
- Fix order of API docs (#447)
|
|
222
|
+
- Correctly deserialize Pinecone docstore in embedding retriever (#636)
|
|
223
|
+
|
|
224
|
+
### 📚 Documentation
|
|
225
|
+
|
|
226
|
+
- Update category slug (#442)
|
|
227
|
+
- Disable-class-def (#556)
|
|
228
|
+
|
|
229
|
+
### ⚙️ CI
|
|
230
|
+
|
|
231
|
+
- Generate API docs for Pinecone (#359)
|
|
232
|
+
|
|
233
|
+
### 🌀 Miscellaneous
|
|
234
|
+
|
|
235
|
+
- Pinecone - decrease concurrency in tests (#323)
|
|
236
|
+
- Rename retriever (#396)
|
|
237
|
+
- Fix imports in example (#398)
|
|
238
|
+
- [Pinecone] Use Haystack Secrets (#420)
|
|
239
|
+
- Pinecone - review docstrings and API reference (#503)
|
|
240
|
+
- Make tests show coverage (#566)
|
|
241
|
+
- Temporarily skip failing tests (#593)
|
|
242
|
+
- Remove references to Python 3.7 (#601)
|
|
243
|
+
- Make Document Stores initially skip `SparseEmbedding` (#606)
|
|
244
|
+
- Skip `test_write_documents_duplicate_overwrite` test (#637)
|
|
245
|
+
|
|
246
|
+
## [integrations/pinecone-v0.2.1] - 2024-01-31
|
|
247
|
+
|
|
248
|
+
### 🐛 Bug Fixes
|
|
249
|
+
|
|
250
|
+
- Fix: fix linter (#281)
|
|
251
|
+
|
|
252
|
+
### 🌀 Miscellaneous
|
|
253
|
+
|
|
254
|
+
- Increase pinecone sleep time (#288)
|
|
255
|
+
- Pinecone - change dummy vector (#301)
|
|
256
|
+
|
|
257
|
+
## [integrations/pinecone-v0.2.0] - 2024-01-23
|
|
258
|
+
|
|
259
|
+
### 🌀 Miscellaneous
|
|
260
|
+
|
|
261
|
+
- Pinecone - update import for beta5 (#236)
|
|
262
|
+
- Change import paths (#256)
|
|
263
|
+
|
|
264
|
+
## [integrations/pinecone-v0.1.0] - 2024-01-17
|
|
265
|
+
|
|
266
|
+
### 🌀 Miscellaneous
|
|
267
|
+
|
|
268
|
+
- [Pinecone] Add example notebook (#149)
|
|
269
|
+
- Optimize API key reading (#162)
|
|
270
|
+
- Pin `pinecone-client<3` (#224)
|
|
271
|
+
|
|
272
|
+
## [integrations/pinecone-v0.0.1] - 2023-12-22
|
|
273
|
+
|
|
274
|
+
### 🌀 Miscellaneous
|
|
275
|
+
|
|
276
|
+
- Pinecone Document Store - minimal implementation (#81)
|
|
277
|
+
- Pinecone - filters (#133)
|
|
278
|
+
- Pinecone - dense retriever (#145)
|
|
279
|
+
|
|
280
|
+
<!-- generated by git-cliff -->
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pinecone_haystack
|
|
3
|
+
Version: 6.2.0
|
|
4
|
+
Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/pinecone#readme
|
|
5
|
+
Project-URL: Issues, https://github.com/deepset-ai/haystack-core-integrations/issues
|
|
6
|
+
Project-URL: Source, https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/pinecone
|
|
7
|
+
Author-email: deepset GmbH <info@deepset.ai>
|
|
8
|
+
License-Expression: Apache-2.0
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
+
Classifier: Programming Language :: Python
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
18
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
19
|
+
Requires-Python: >=3.10
|
|
20
|
+
Requires-Dist: haystack-ai>=2.28.0
|
|
21
|
+
Requires-Dist: pinecone[asyncio]>=7.0.0
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
|
|
24
|
+
# pinecone-haystack
|
|
25
|
+
|
|
26
|
+
[](https://pypi.org/project/pinecone-haystack)
|
|
27
|
+
[](https://pypi.org/project/pinecone-haystack)
|
|
28
|
+
|
|
29
|
+
- [Integration page](https://haystack.deepset.ai/integrations/pinecone-document-store)
|
|
30
|
+
- [Changelog](https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/pinecone/CHANGELOG.md)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Contributing
|
|
35
|
+
|
|
36
|
+
Refer to the general [Contribution Guidelines](https://github.com/deepset-ai/haystack-core-integrations/blob/main/CONTRIBUTING.md).
|
|
37
|
+
|
|
38
|
+
To run integration tests locally, you need to export the `PINECONE_API_KEY` environment variable.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# pinecone-haystack
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/pinecone-haystack)
|
|
4
|
+
[](https://pypi.org/project/pinecone-haystack)
|
|
5
|
+
|
|
6
|
+
- [Integration page](https://haystack.deepset.ai/integrations/pinecone-document-store)
|
|
7
|
+
- [Changelog](https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/pinecone/CHANGELOG.md)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Contributing
|
|
12
|
+
|
|
13
|
+
Refer to the general [Contribution Guidelines](https://github.com/deepset-ai/haystack-core-integrations/blob/main/CONTRIBUTING.md).
|
|
14
|
+
|
|
15
|
+
To run integration tests locally, you need to export the `PINECONE_API_KEY` environment variable.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Install the Pinecone integration, Haystack will come as a dependency
|
|
2
|
+
# Install also some optional dependencies needed for Markdown conversion and text embedding
|
|
3
|
+
# pip install -U pinecone-haystack markdown-it-py mdit_plain "sentence-transformers>=2.2.0"
|
|
4
|
+
|
|
5
|
+
# Download some markdown files to index
|
|
6
|
+
# git clone https://github.com/anakin87/neural-search-pills
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# Create the indexing Pipeline and index some documents
|
|
10
|
+
|
|
11
|
+
import glob
|
|
12
|
+
|
|
13
|
+
from haystack import Pipeline
|
|
14
|
+
from haystack.components.converters import MarkdownToDocument
|
|
15
|
+
from haystack.components.embedders import SentenceTransformersDocumentEmbedder, SentenceTransformersTextEmbedder
|
|
16
|
+
from haystack.components.preprocessors import DocumentSplitter
|
|
17
|
+
from haystack.components.writers import DocumentWriter
|
|
18
|
+
from haystack.utils import Secret
|
|
19
|
+
|
|
20
|
+
from haystack_integrations.components.retrievers.pinecone import PineconeEmbeddingRetriever
|
|
21
|
+
from haystack_integrations.document_stores.pinecone import PineconeDocumentStore
|
|
22
|
+
|
|
23
|
+
file_paths = glob.glob("neural-search-pills/pills/*.md")
|
|
24
|
+
|
|
25
|
+
document_store = PineconeDocumentStore(
|
|
26
|
+
api_key=Secret.from_token("YOUR-PINECONE-API-KEY"),
|
|
27
|
+
index="default",
|
|
28
|
+
namespace="default",
|
|
29
|
+
dimension=768,
|
|
30
|
+
spec={"serverless": {"region": "us-east-1", "cloud": "aws"}},
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
indexing = Pipeline()
|
|
34
|
+
indexing.add_component("converter", MarkdownToDocument())
|
|
35
|
+
indexing.add_component("splitter", DocumentSplitter(split_by="sentence", split_length=2))
|
|
36
|
+
indexing.add_component("embedder", SentenceTransformersDocumentEmbedder())
|
|
37
|
+
indexing.add_component("writer", DocumentWriter(document_store))
|
|
38
|
+
indexing.connect("converter", "splitter")
|
|
39
|
+
indexing.connect("splitter", "embedder")
|
|
40
|
+
indexing.connect("embedder", "writer")
|
|
41
|
+
|
|
42
|
+
indexing.run({"converter": {"sources": file_paths}})
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# Create the querying Pipeline and try a query
|
|
46
|
+
|
|
47
|
+
querying = Pipeline()
|
|
48
|
+
querying.add_component("embedder", SentenceTransformersTextEmbedder())
|
|
49
|
+
querying.add_component("retriever", PineconeEmbeddingRetriever(document_store=document_store, top_k=3))
|
|
50
|
+
querying.connect("embedder", "retriever")
|
|
51
|
+
|
|
52
|
+
results = querying.run({"embedder": {"text": "What is Question Answering?"}})
|
|
53
|
+
|
|
54
|
+
for doc in results["retriever"]["documents"]:
|
|
55
|
+
print(doc)
|
|
56
|
+
print("-" * 10)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
loaders:
|
|
2
|
+
- modules:
|
|
3
|
+
- haystack_integrations.components.retrievers.pinecone.embedding_retriever
|
|
4
|
+
- haystack_integrations.document_stores.pinecone.document_store
|
|
5
|
+
search_path: [../src]
|
|
6
|
+
processors:
|
|
7
|
+
- type: filter
|
|
8
|
+
documented_only: true
|
|
9
|
+
skip_empty_modules: true
|
|
10
|
+
renderer:
|
|
11
|
+
description: Pinecone integration for Haystack
|
|
12
|
+
id: integrations-pinecone
|
|
13
|
+
filename: pinecone.md
|
|
14
|
+
title: Pinecone
|