You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(langchain): add patch test cases, fix double patch issue for embeddings/vectorstores [backport 1.17] (#6512)
Backport 9ec214f from #6475 to 1.17.
This PR adds patch test cases for the langchain integration, and fixes a
bug where we were double patching
`langchain.embeddings.HuggingFaceEmbeddings.embed_query/documents` and
`langchain.vectorstores.Milvus.similarity_search`. This issue stemmed
from the two classes being reused/inherited by other classes
(`SentenceTransformerEmbeddings`, `Zilliz` respectively), meaning that
when we wrapped the latter two classes' methods, we unintentionally
wrapped the former two classes' methods twice.
The fix involves checking that the function to wrap isn't already a
wrapped method (specifically a `wrapt.ObjectProxy` which we use in our
integrations). This could potentially be problematic if a user wraps
this before running our patching code as we would ignore this, but at
the moment of writing I don't see a huge risk nor a cleaner solution to
avoid double patching.
## Checklist
- [x] Change(s) are motivated and described in the PR description.
- [x] Testing strategy is described if automated tests are not included
in the PR.
- [x] Risk is outlined (performance impact, potential for breakage,
maintainability, etc).
- [x] Change is maintainable (easy to change, telemetry, documentation).
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed. If no release note is required, add label
`changelog/no-changelog`.
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/)).
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
## Reviewer Checklist
- [x] Title is accurate.
- [x] No unnecessary changes are introduced.
- [x] Description motivates each change.
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes unless absolutely necessary.
- [x] Testing strategy adequately addresses listed risk(s).
- [x] Change is maintainable (easy to change, telemetry, documentation).
- [x] Release note makes sense to a user of the library.
- [x] Reviewer has explicitly acknowledged and discussed the performance
implications of this PR as reported in the benchmarks PR comment.
- [x] Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
Co-authored-by: Yun Kim <[email protected]>
0 commit comments