chromaについて

chromaについて

「Chroma」は、軽量かつ高速な**ベクトルストア(Vector Store)**で、主にRAG(Retrieval-Augmented Generation)や類似文書検索に使われる

■ Chromaとは
**Chroma(正式名称:ChromaDB)は、テキストや画像などのデータをベクトル(数値の集合)として保存し、後から類似検索(類似性の高いものを検索)**するためのデータベースです。
* 開発元:Chromadb Inc.
* ライセンス:Apache 2.0(オープンソース)
* 特徴:
* 自己完結型(埋め込みデータの保存から検索まで完結)
* 高速・軽量(ローカルでも動作)
* RAGなどのLLMとの相性が良い

■ 主な用途
1. RAG(LLM × ベクトル検索)
* PDFや文書を分割してベクトル化し、Chromaに保存
* クエリと類似する文書をChromaで検索してLLMに渡す
2. 類似文章検索
* 「この文章に似ているものは?」という検索が可能
3. 画像や音声の類似性検索(拡張可能)

■ 保存形式(Chroma + SQLite + Parquet)
Chromaはデフォルトで以下を使います:
* SQLite:メタデータや設定情報を保存
* Parquet:ベクトルそのもの(高次元な数値)を効率的に保存
この構成により、
* ローカルファイルでの軽量運用が可能
* クラッシュしてもデータが残りやすい
* 他ツールと連携しやすい(Parquet形式はPandasやSparkとも互換あり)

pip install chromadb

でインストール

次にテスト

import chromadb
from chromadb.utils.embedding_functions import OpenAIEmbeddingFunction

client = chromadb.Client()
collection = client.create_collection(name="my_collection")

collection.add(
    documents=["東京は日本の首都です", "大阪は関西の中心都市です"],
    ids=["doc1", "doc2"]
)

results = collection.query(
    query_texts=["日本の都市について教えて"],
    n_results=1
)
print(results)

これを
touch db_test.py
でファイル作成し

 python db_test.py

で実行

最初にモデルのダウンロードが行われるため時間がかかる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です