Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chroma: fix persistence if client_settings is passed in #25199

Merged
merged 19 commits into from
Dec 17, 2024

Conversation

da-vin-ci
Copy link
Contributor

…ent path given.

Thank you for contributing to LangChain!

  • PR title: "package: description"

    • Where "package" is whichever of langchain, community, core, experimental, etc. is being modified. Use "docs: ..." for purely docs changes, "templates: ..." for template changes, "infra: ..." for CI changes.
    • Example: "community: add foobar LLM"
  • PR message: Delete this entire checklist and replace with

    • Description: a description of the change
    • Issue: the issue # it fixes, if applicable
    • Dependencies: any dependencies required for this change
    • Twitter handle: if your PR gets announced, and you'd like a mention, we'll gladly shout you out!
  • Add tests and docs: If you're adding a new integration, please include

    1. a test for the integration, preferably unit tests that do not rely on network access,
    2. an example notebook showing its use. It lives in docs/docs/integrations directory.
  • Lint and test: Run make format, make lint and make test from the root of the package(s) you've modified. See contribution guidelines for more: https://python.langchain.com/docs/contributing/

Additional guidelines:

  • Make sure optional dependencies are imported within a function.
  • Please do not add dependencies to pyproject.toml files (even optional ones) unless they are required for unit tests.
  • Most PRs should not touch more than one package.
  • Changes should be backwards compatible.
  • If you are adding something to community, do not re-import it in langchain.

If no one reviews your PR within a few days, please @-mention one of baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

@efriis efriis added the partner label Aug 8, 2024
@efriis efriis self-assigned this Aug 8, 2024
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Aug 8, 2024
Copy link

vercel bot commented Aug 8, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

1 Skipped Deployment
Name Status Preview Comments Updated (UTC)
langchain ⬜️ Ignored (Inspect) Visit Preview Dec 17, 2024 2:57pm

@dosubot dosubot bot added Ɑ: vector store Related to vector store module 🔌: chroma Primarily related to ChromaDB integrations labels Aug 8, 2024
@efriis efriis changed the title [Fix] Partners: Fixing the persistence of chroma if client settings and persist… chroma: fix persistence if client_settings is passed in Aug 21, 2024
Copy link
Collaborator

@ccurme ccurme left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this. Some questions + comments on the test:

  1. Can we use tempfile or similar so that we are not modifying the actual filesystem on the machine running the tests?

  2. Properly set-up and tear-down the tests (so that, for example, the tear down code runs even if there is an error during test execution). See relevant pytest docs here. You should be able to make a simple fixture like this:

@pytest.fixture
def setup_and_teardown():
    # Logic before test goes here
    yield
    # Logic after test goes here

@efriis efriis assigned ccurme and unassigned efriis Aug 30, 2024
@ccurme
Copy link
Collaborator

ccurme commented Dec 10, 2024

@da-vin-ci are you interested in iterating on this?

@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:M This PR changes 30-99 lines, ignoring generated files. labels Dec 16, 2024
@da-vin-ci
Copy link
Contributor Author

@ccurme Sorry about the delay. I have updated to use temp directory. I felt fixtures might be overkill in this case.

@da-vin-ci
Copy link
Contributor Author

@ccurme Not sure how to proceed right now. The lint on the tests will not pass due to the code I put in to release the ChromaDb files after the persistence test. I will have to check if ChromaDb has been updated to properly release the files, if not we will have to use the code I committed. The only other option is to ignore the temp directory not being cleaned up and the host worrying about that at some later point.

@ccurme
Copy link
Collaborator

ccurme commented Dec 17, 2024

@ccurme Not sure how to proceed right now. The lint on the tests will not pass due to the code I put in to release the ChromaDb files after the persistence test. I will have to check if ChromaDb has been updated to properly release the files, if not we will have to use the code I committed. The only other option is to ignore the temp directory not being cleaned up and the host worrying about that at some later point.

I think in this case the typing on the vector store was just not specific enough for the linter. Added some asserts to help it.

@dosubot dosubot bot added the lgtm PR looks good. Use to confirm that a PR is ready for merging. label Dec 17, 2024
@ccurme ccurme merged commit a00258e into langchain-ai:master Dec 17, 2024
19 checks passed
@da-vin-ci
Copy link
Contributor Author

@ccurme Not sure how to proceed right now. The lint on the tests will not pass due to the code I put in to release the ChromaDb files after the persistence test. I will have to check if ChromaDb has been updated to properly release the files, if not we will have to use the code I committed. The only other option is to ignore the temp directory not being cleaned up and the host worrying about that at some later point.

I think in this case the typing on the vector store was just not specific enough for the linter. Added some asserts to help it.

Thank you! I learnt something new today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔌: chroma Primarily related to ChromaDB integrations lgtm PR looks good. Use to confirm that a PR is ready for merging. partner size:L This PR changes 100-499 lines, ignoring generated files. Ɑ: vector store Related to vector store module
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants