2023-12-20 23:28:53 +00:00
|
|
|
import os
|
|
|
|
from pathlib import Path
|
|
|
|
|
2024-01-02 21:47:11 +00:00
|
|
|
from langchain_community.vectorstores import Chroma
|
embeddings: nomic embed vision (#22482)
Thank you for contributing to LangChain!
**Description:** Adds Langchain support for Nomic Embed Vision
**Twitter handle:** nomic_ai,zach_nussbaum
- [x] **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.
---------
Co-authored-by: Lance Martin <122662504+rlancemartin@users.noreply.github.com>
Co-authored-by: Bagatur <baskaryan@gmail.com>
2024-06-05 16:47:17 +00:00
|
|
|
from langchain_nomic import NomicMultimodalEmbeddings
|
2023-12-20 23:28:53 +00:00
|
|
|
|
|
|
|
# Load images
|
|
|
|
img_dump_path = Path(__file__).parent / "docs/"
|
|
|
|
rel_img_dump_path = img_dump_path.relative_to(Path.cwd())
|
|
|
|
image_uris = sorted(
|
|
|
|
[
|
|
|
|
os.path.join(rel_img_dump_path, image_name)
|
|
|
|
for image_name in os.listdir(rel_img_dump_path)
|
|
|
|
if image_name.endswith(".jpg")
|
|
|
|
]
|
|
|
|
)
|
|
|
|
|
|
|
|
# Index
|
|
|
|
vectorstore = Path(__file__).parent / "chroma_db_multi_modal"
|
|
|
|
re_vectorstore_path = vectorstore.relative_to(Path.cwd())
|
|
|
|
|
|
|
|
# Load embedding function
|
2024-05-22 22:21:08 +00:00
|
|
|
print("Loading embedding function")
|
embeddings: nomic embed vision (#22482)
Thank you for contributing to LangChain!
**Description:** Adds Langchain support for Nomic Embed Vision
**Twitter handle:** nomic_ai,zach_nussbaum
- [x] **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.
---------
Co-authored-by: Lance Martin <122662504+rlancemartin@users.noreply.github.com>
Co-authored-by: Bagatur <baskaryan@gmail.com>
2024-06-05 16:47:17 +00:00
|
|
|
embedding = NomicMultimodalEmbeddings(
|
|
|
|
vision_model="nomic-embed-vision-v1", text_model="nomic-embed-text-v1"
|
|
|
|
)
|
2023-12-20 23:28:53 +00:00
|
|
|
|
|
|
|
# Create chroma
|
|
|
|
vectorstore_mmembd = Chroma(
|
|
|
|
collection_name="multi-modal-rag",
|
|
|
|
persist_directory=str(Path(__file__).parent / "chroma_db_multi_modal"),
|
|
|
|
embedding_function=embedding,
|
|
|
|
)
|
|
|
|
|
|
|
|
# Add images
|
2024-05-22 22:21:08 +00:00
|
|
|
print("Embedding images")
|
2023-12-20 23:28:53 +00:00
|
|
|
vectorstore_mmembd.add_images(uris=image_uris)
|