Pinecone ベクトルデータベースコンポーネント — sgcAI | eSeGeCe

ベクトルデータベース(Pinecone)

TsgcAIDatabaseVectorPinecone は、埋め込みをマネージドの Pinecone インデックスに格納します。取り込みではすべてのベクトルを 1 回の upsert にまとめ、クエリでは最も近い一致の元テキストを返します。コーパスを複数のマシンやユーザーで共有できます。

TsgcAIDatabaseVectorPinecone

ファイルストアのクラウド版です。インターフェースも呼び出し方も同じですが、インデックスは Pinecone 上に置かれ、メモリに収まる範囲を超えてスケールします。

コンポーネントクラス

TsgcAIDatabaseVectorPinecone

用途

マネージドのベクトルインデックス

プラットフォーム

Win32 および Win64

sgcAI は単体で完結しています。このコンポーネントは、土台となる sgcWebSockets Core ランタイムとともに sgcAI に同梱されているため、基本ライセンスを購入する必要はありません。

Pinecone に取り込み、どこからでも検索する

API キー、環境、インデックス、プロジェクトを設定して、埋め込みコンポーネントに割り当てます。

uses
  sgcAI, sgcAI_DB_Vector_Pinecone, sgcAI_OpenAI_Embeddings;

var
  oDB: TsgcAIDatabaseVectorPinecone;
  oEmbeddings: TsgcAIOpenAIEmbeddings;
begin
  oDB := TsgcAIDatabaseVectorPinecone.Create(nil);
  oDB.PineconeOptions.ApiKey           := 'pc-...';
  oDB.PineconeOptions.Environment      := 'us-west4-gcp-free';
  oDB.PineconeIndexOptions.IndexName   := 'sgc-embeddings';
  oDB.PineconeIndexOptions.ProjectId   := 'abcd1234';

  oEmbeddings := TsgcAIOpenAIEmbeddings.Create(nil);
  oEmbeddings.OpenAIOptions.ApiKey := 'sk-...';
  oEmbeddings.Database := oDB;

  // Every chunk is batched into a single upsert.
  oEmbeddings.CreateEmbeddingsFromFile('manual.txt');

  // Retrieve context for a question.
  Memo1.Text := oEmbeddings.GetEmbedding('How do I reset the device?', '');
end;
// includes: sgcAI.hpp, sgcAI_DB_Vector_Pinecone.hpp

TsgcAIDatabaseVectorPinecone *oDB = new TsgcAIDatabaseVectorPinecone(NULL);
oDB->PineconeOptions->ApiKey         = "pc-...";
oDB->PineconeOptions->Environment    = "us-west4-gcp-free";
oDB->PineconeIndexOptions->IndexName = "sgc-embeddings";
oDB->PineconeIndexOptions->ProjectId = "abcd1234";

oDB->BeginAddData();
oDB->AddData("Reset procedure: hold the button for 10 seconds.", vVector);
oDB->EndAddData();

String vBest = oDB->QueryData(vQueryVector);

主なプロパティとメソッド

最もよく使うメンバーです。

PineconeOptions

ApiKeyEnvironment で Pinecone アカウントに対して認証し、インデックスが置かれているリージョンを選択します。

PineconeIndexOptions

IndexNameProjectId で対象のインデックスを指定します。どちらも Pinecone のコンソールで確認できます。

取り込み

BeginAddData で収集を開始し、AddData でテキストとベクトルをキューに積み、EndAddData でバッチ全体を 1 回の upsert として送信します。チャンクごとにリクエストを送る必要はありません。

クエリ

QueryData はインデックスに対して類似度クエリを発行し、最も一致したものの元テキストを返します。

id の制御

OnBeginAddData でバッチの開始 id と id ラベルを設定するため、複数の取り込みを 1 つのインデックス内で衝突させずに共存させられます。

適した用途

コーパスがローカルファイルに収まらなくなった場合、複数のアプリケーションで 1 つのインデックスを共有する場合、取り込みとクエリを別々のマシンで行う場合に最適です。

仕様と参考資料

このコンポーネントが利用するサービスとプロトコルの一次情報です。

さらに詳しく

オンラインヘルプsgcAI コンポーネントの完全な API リファレンスと利用ガイドです。
sgcAI の全コンポーネント15 コンポーネントすべての機能一覧を確認できます。
無料体験版をダウンロード埋め込みをマネージドインデックスに送信して検索できます。
価格Single、Team、Site の各ライセンス。完全なソースコード付き、基本製品は不要です。
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

はじめてみませんか

無料体験版をダウンロードして、コーパスをマネージドのベクトルインデックスに置きましょう。