Traffine I/O

Bahasa Indonesia

2023-06-14

Membedakan Antara Upsert dan Update dalam Pinecone

Pengantar

Dalam Pinecone, terdapat dua API yang tersedia untuk memperbarui data vektor: upsert, yang melakukan pembaruan penuh, dan update, yang melakukan pembaruan sebagian. Artikel ini menjelaskan perbedaan antara kedua API ini.

Membuat Indeks

Jalankan perintah atau kode berikut untuk membuat indeks dalam Pinecone.

bash
$ pip install -U pinecone-client
python
import pinecone

pinecone.init(
    api_key="API_KEY",
    environment="ENVIRONMENT"
)

if "sample" not in pinecone.list_indexes():
    pinecone.create_index("sample", dimension=1536)

index = pinecone.Index("sample")

Menambahkan Data

Mendaftarkan data vektor.

python
index.upsert(
    vectors=[{
        "id": "1",
        "values': [0.0] * 1536,
        "metadata": {
            "content": "This is a sample vector"
        }
    }],
    namespace='my_namespace'
)

res = index.fetch(
    ids=["1"],
    namespace="my_namespace"
)

print(res["vectors"]["1"]["metadata"])
{'content': 'This is a sample vector'}

Memperbarui Data

Untuk memperbarui data, Anda dapat menentukan id menggunakan API update atau upsert. Ketika menggunakan upsert, dapat dilakukan sebagai berikut:

python
index.upsert(
    vectors=[{
        "id": "1",
        "values": [0.0] * 1536,
        "metadata": {
            "content": "Updated"
        }
    }],
    namespace="my_namespace"
)

res = index.fetch(
    ids=["1"],
    namespace="my_namespace"
)

print(res["vectors"]["1"]["metadata"])
{'content': 'Updated'}

Pembuatan vektor mengonsumsi sumber daya komputasi. Jika regenerasi vektor tidak diperlukan, disarankan untuk menggunakan update untuk hanya memperbarui metadata.

python
index.update(
    id="1",
    setMetadata={
        "content": "Only metatada updated"
    },
    namespace="my_namespace"
)

res = index.fetch(
    ids=["1"],
    namespace="my_namespace"
)

print(res["vectors"]["1"]["metadata"])
{'content': 'Only metatada updated'}

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!