Chroma : 🔑 Getting started (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 09/24/2023 (0.4.12)
* 本ページは、chroma の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
Chroma : 🔑 Getting started
Chroma は埋め込みを使用した AI アプリケーションを構築するためのデータベースです。それは始めるために必要なすべてを組み込み装備し、貴方のマシン上で動作します。A hosted version is coming soon!
1. インストール
npm install --save chromadb # yarn add chromadb
2. Chroma クライアントの取得
const {ChromaClient} = require('chromadb');
const client = new ChromaClient();
Chroma のバックエンドに接続するには – Chroma のホストされたバージョンに接続するか、ローカルコンピュータ上で実行する必要があります。”docker-compose up -d –build” を実行すれば Chroma を実行できます。
git clone https://github.com/chroma-core/chroma.git
cd chroma
docker-compose up -d --build
ビルド issue がある場合、活発な コミュニティ Discord で助けを求めてください。殆どの問題は数分で解決されます。
3. コレクションの作成
コレクションは埋め込み、ドキュメントや任意の追加メタデータをストアする場所です。名前でコレクションを作成できます :
この例では、テキストから埋め込みを生成することを望みます。OpenAI の ada-002 モデルがポピュラーで、無料で、素早く サインアップ できます。貴方の API キーを取得して戻ってきてください。Chroma の API は多態 (polymorphic) (それはブラウザでもサーバ側でも実行できます) ですが、OpenAI はそうではありません。そのためこのサンプルはサーバ側で実行します。
注意 : Please take steps to secure your API when interacting with frontend systems.
const {OpenAIEmbeddingFunction} = require('chromadb');
const embedder = new OpenAIEmbeddingFunction({openai_api_key: "your_api_key"})
const collection = await client.createCollection({name: "my_collection", embeddingFunction: embedder})
4. 幾つかのテキストドキュメントをコレクションに追加する
Chroma はテキストをストアし、トークン化、埋め込みとインデックス作成を自動的に処理します。
await collection.add({
ids: ["id1", "id2"],
metadatas: [{"source": "my_source"}, {"source": "my_source"}],
documents: ["This is a document", "This is another document"],
})
埋め込みを貴方自身で既に生成している場合は、それらを直接ロードできます :
await collection.add({
ids: ["id1", "id2"],
embeddings: [[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],
where: [{"source": "my_source"}, {"source": "my_source"}],
documents: ["This is a document", "This is another document"]
})
5. コレクションにクエリー
クエリーテキストのリストでコレクションにクエリーすることができて、Chroma は n 個の最も類似した結果を返します。It’s that easy!
const results = await collection.query({
nResults: 2,
queryTexts: ["This is a query document"]
})
Find chromadb on npm.
以上