Abraxas-365 / Abraxas-365/langchain-rust

Ability to add custom ids for documents

Ouverte
#177 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
Langage dominant
Rust
Étoiles
1.3k
Forks
177
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I want to add custom IDs for documents so that when I do re-indexing for updates, I can reference them with the ID I have in the data source.

My specific case is with the OpenSearch vector store. Right now as a workaround, I'm running a local build of this crate, and I have added a function with the following signature:

```rs
async fn add_documents_with_ids(
&self,
docs: &[Document],
opt: &VecStoreOptions,
ids: &Vec,
) -> Result, Box> {
```
and then I'm zipping the ids together with the docs and vectors

```rs
for (doc, (vector, doc_id)) in zip(docs.iter(), zip(vectors.iter(), ids.iter())) {
```

and finally adding the id to the docs

```rs
let operation = json!({"index": {
"_id": doc_id,
}});
```

I wanted to ask if someone would be interested in having this feature as well, and if yes, any suggestions from maintainers on how to implement this without having to break the core trait of VectorStore somehow.

Also, Python package has one additional field for the add_docs, called ids and you can see it in this file:
https://github.com/langchain-ai/langchain/blob/29aa9d67506ac07b92d37d58c684ce3c6dc290cd/libs/community/langchain_community/vectorstores/opensearch_vector_search.py#L587

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.