-
Notifications
You must be signed in to change notification settings - Fork 2
feat: support metadata in Pinecone connector #87
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #87 +/- ##
==========================================
+ Coverage 21.31% 27.41% +6.10%
==========================================
Files 11 12 +1
Lines 610 715 +105
==========================================
+ Hits 130 196 +66
- Misses 464 491 +27
- Partials 16 28 +12
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
b88de2f
to
516fd5b
Compare
Currently, this won't block the merging of pull requests, I'll check this branch later today. But I believe it's time for us to start addressing coverage tests. At present, our testing framework for the connector is not complete. If you have the time, it will be great if you can assist in planning this testing framework. One of the key discussions revolves around how to handle vendor secrets. Currently, I have thought of roughly two methods:
|
I absolutely agree, we need at least a basic safeguard to prevent breaking changes, in this PR for instance I QA'd what I expected from the changes I introduced but not that any previous changes in the connector are still working. So I'd advocate for a minimal input-output unit test for each task we modify, at least that will cover marshalling and error handling. I'd love to assist in the framework testing planning. Some thoughts:
|
Using both produces an error: ``` Component pinecone_0 failed to execute. non-200 status code: 400, while calling URL: {url} response body: {"code":3,"message":"Cannot provide both 'ID' and 'vector' at the same time","details":[]} ```
2e55b04
to
8c0c2f9
Compare
@donch1989 I added some unit tests to increase the coverage |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
🤖 I have created a release *beep* *boop* --- ## [0.9.0-beta](v0.8.1-beta...v0.9.0-beta) (2024-01-01) ### Features * **airbyte:** wrap all Airbyte connectors into one ([#79](#79)) ([30fe290](30fe290)) * **numbers:** migrate to Capture API ([#89](#89)) ([e976854](e976854)) * support metadata in Pinecone connector ([#87](#87)) ([3734773](3734773)) ### Bug Fixes * **instill:** fix wrong Airbyte image_name ([#91](#91)) ([52e8409](52e8409)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Because
This PR
metadata
input to the PineconeUPSERT
task (thx @donch1989)QUERY
actions, themetadata
field in a vector is shown in the output🔨 QA
2 pipelines, one upserts a 3D vector with metadata and the other fetches the closest vector
🗒️ Notes
⏭️ Next I'll implement the query by metadata.
I'm not the happiest with submitting this without coverage, let me know if it's a blocker for merging. At this point the functionality is more important than the coverage so I'll do ☝️first.
I didn't manage to use directly an object input in the
start
component as metadata. However, using{start.myObjectInput.metadata}
worked just fine. I think it has more to do with references than with the Pinecone connector, I'll check if it's an identified bug and otherwise I'll create a ticket for it.I could trigger the pipelines that have a JSON object as input from the canvas and the CLI but not from the pipeline view. Same CTA as the point above.