🦁

chromadb使い方メモ

2024/06/30に公開

事前準備

ライブラリinstall

pip install charomadb

実装

import chromadb

クライアント取得

# inmemoryでクライアント取得
# chroma_client = chromadb.Client()
# 永続化データから取得
chroma_client = chromadb.PersistentClient(path="./db/chromadb")

コレクション取得。無ければ作成

collection = chroma_client.get_or_create_collection("testdb")

永続化データ利用時は取得時にimportしているような挙動
大量データはサーバーモードで利用する方が良さそう。

データを登録する

①テキストデータで登録

documents = [
    "テキスト1",
    "テキスト2",
    "テキスト3",
    "テキスト4",
    "テキスト5",
    "テキスト6",
    "テキスト7",
    "テキスト8",
    "テキスト9",
    "テキスト10"
]
collection.add(
    documents=documents,
    metadatas = [{"source": "mysrc",},{"source": "mysrc",}],
    ids = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8", "id9", "id10"]
)

テキストを検索

result = collection.query(
    query_texts=["ほげほげ"],
    n_results=2
)
print(result)

idで取得

result = collection.get(
    ids=['id1', 'id2', 'id3']
)
print(result)

更新

collection.update(
    ids=['id1', 'id2', 'id3'],
    metadatas=[{"sorce": "最新情報"}]
)

コレクションにidが見つからない場合、エラーが記録され、更新は無視されます。

Discussion