Coder Social home page Coder Social logo

Comments (2)

habanoz avatar habanoz commented on July 30, 2024

@ozgurdemir I have been debugging sth. else and found your issue here. A quick question. Are you sure the filtering is applied twice?

The first line in "VectorStore.similarity_search_with_relevance_scores" removes "score_threshold".
score_threshold = kwargs.pop("score_threshold", None)

This should prevent "FAISS.similarity_search_with_score_by_vector" (no preceding underscore here) from applying filtering...

Just wanted to help.
Regards

from langchain.

ozgurdemir avatar ozgurdemir commented on July 30, 2024

Hey @habanoz ,

thx for your reply. I'm not working on this particular project anymore. I remember that we stumbled on this as we had a weird behaviour when using the relevance_score_fn.

However, looking at the code again it seems like you're right.
VectorStoreRetreiver calls the VectorStore.similarity_search_with_relevance_scores which removes the score_threshold parameter and then calls _similarity_search_with_relevance_scores without this parameter. So the filtering step should be circumvented.

In other words the relevance_score_fn is applied to the returned scores but the filtering happens on the raw scores.
All in all it seems like a very confusing implementation and probably not what is intended. The filtering by score depends on the similarity_metric used. So it should be either smaller_than or greater_than depending on the similarity_metric but this code path is not executed due to the above mentioned logic.

So I still think there's a bug here :(

from langchain.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.