Rememberizer Docs
サインインサインアップお問い合わせ
日本語
日本語
  • なぜ Rememberizer なのか?
  • 背景
    • ベクトル埋め込みとベクトルデータベースとは?
    • 用語集
    • 標準化された用語
  • 個人利用
    • はじめに
      • 知識を検索する
      • メメントフィルターアクセス
      • 一般的な知識
      • 埋め込まれた知識を管理する
  • インテグレーション
    • Rememberizer アプリ
    • Rememberizer Slack インテグレーション
    • Rememberizer Google Drive インテグレーション
    • Rememberizer Dropbox インテグレーション
    • Rememberizer Gmail インテグレーション
    • Rememberizer Memory インテグレーション
    • Rememberizer MCP サーバー
    • サードパーティアプリの管理
  • 開発者リソース
    • 開発者概要
  • 統合オプション
    • APIキーの登録と使用
    • Rememberizerアプリの登録
    • Rememberizerアプリの認証
    • Rememberizer GPTの作成
    • LangChain統合
    • ベクターストア
    • Slackとの対話サンプルWebアプリ
  • エンタープライズ統合
    • エンタープライズ統合パターン
  • APIリファレンス
    • APIドキュメントホーム
    • 認証
  • コアAPI
    • 意味的類似性によるドキュメントの検索
    • ドキュメントの取得
    • ドキュメントの内容を取得
    • Slackコンテンツの取得
    • Rememberizerにコンテンツを記憶する
  • アカウントと設定
    • 現在のユーザーアカウントの詳細を取得
    • 利用可能なデータソース統合の一覧
    • メメント
    • 追加されたすべての公開知識を取得
  • ベクターストアAPI
    • ベクターストアのドキュメント
    • ベクターストア情報を取得する
    • ベクターストア内のドキュメントのリストを取得する
    • ドキュメント情報を取得する
    • ベクターストアに新しいテキストドキュメントを追加する
    • ファイルをベクターストアにアップロードする
    • ベクターストア内のファイルコンテンツを更新する
    • ベクターストア内のドキュメントを削除する
    • 意味的類似性によるベクターストアドキュメントの検索
  • 追加リソース
    • 通知
      • 利用規約
      • プライバシーポリシー
      • B2B
        • Redditエージェントについて
  • リリース
    • リリースノートホーム
  • 2025年のリリース
    • 2025年4月25日
    • 2025年4月18日
    • 2025年4月11日
    • 2025年4月4日
    • 2025年3月28日
    • 2025年3月21日
    • 2025年3月14日
    • 2025年1月17日
  • 2024年のリリース
    • 2024年12月27日
    • 2024年12月20日
    • 2024年12月13日
    • 2024年12月6日
  • 2024年11月29日
  • 2024年11月22日
  • 2024年11月15日
  • 2024年11月8日
  • 2024年11月1日
  • 2024年10月25日
  • 2024年10月18日
  • 2024年10月11日
  • 2024年10月4日
  • 2024年9月27日
  • 2024年9月20日
  • 2024年9月13日
  • 2024年8月16日
  • 2024年8月9日
  • 2024年8月2日
  • 2024年7月26日
  • 2024年7月12日
  • 2024年6月28日
  • 2024年6月14日
  • 2024年5月31日
  • 2024年5月17日
  • 2024年5月10日
  • 2024年4月26日
  • 2024年4月19日
  • 2024年4月12日
  • 2024年4月5日
  • 2024年3月25日
  • 2024年3月18日
  • 2024年3月11日
  • 2024年3月4日
  • 2024年2月26日
  • 2024年2月19日
  • 2024年2月12日
  • 2024年2月5日
  • 2024年1月29日
  • 2024年1月22日
  • 2024年1月15日
  • LLM ドキュメント
    • Rememberizer LLM レディ ドキュメント
Powered by GitBook
On this page
  1. ベクターストアAPI

意味的類似性によるベクターストアドキュメントの検索

セマンティック類似性とバッチ操作を使用してベクトルストアのドキュメントを検索する

Previousベクターストア内のドキュメントを削除するNext通知

Last updated 1 month ago

例リクエスト

curl -X GET \
  "https://api.rememberizer.ai/api/v1/vector-stores/vs_abc123/documents/search?q=How%20to%20integrate%20our%20product%20with%20third-party%20systems&n=5&prev_chunks=1&next_chunks=1" \
  -H "x-api-key: YOUR_API_KEY"

YOUR_API_KEY を実際のベクターストアAPIキーに、vs_abc123 をベクターストアIDに置き換えてください。

const searchVectorStore = async (vectorStoreId, query, numResults = 5, prevChunks = 1, nextChunks = 1) => {
  const url = new URL(`https://api.rememberizer.ai/api/v1/vector-stores/${vectorStoreId}/documents/search`);
  url.searchParams.append('q', query);
  url.searchParams.append('n', numResults);
  url.searchParams.append('prev_chunks', prevChunks);
  url.searchParams.append('next_chunks', nextChunks);
  
  const response = await fetch(url.toString(), {
    method: 'GET',
    headers: {
      'x-api-key': 'YOUR_API_KEY'
    }
  });
  
  const data = await response.json();
  console.log(data);
};

searchVectorStore(
  'vs_abc123',
  'How to integrate our product with third-party systems',
  5,
  1,
  1
);

YOUR_API_KEY を実際のベクターストアAPIキーに、vs_abc123 をベクターストアIDに置き換えてください。

import requests

def search_vector_store(vector_store_id, query, num_results=5, prev_chunks=1, next_chunks=1):
    headers = {
        "x-api-key": "YOUR_API_KEY"
    }
    
    params = {
        "q": query,
        "n": num_results,
        "prev_chunks": prev_chunks,
        "next_chunks": next_chunks
    }
    
    response = requests.get(
        f"https://api.rememberizer.ai/api/v1/vector-stores/{vector_store_id}/documents/search",
        headers=headers,
        params=params
    )
    
    data = response.json()
    print(data)

search_vector_store(
    'vs_abc123',
    'How to integrate our product with third-party systems',
    5,
    1,
    1
)

YOUR_API_KEY を実際のベクターストアAPIキーに、vs_abc123 をベクターストアIDに置き換えてください。

require 'net/http'
require 'uri'
require 'json'

def search_vector_store(vector_store_id, query, num_results=5, prev_chunks=1, next_chunks=1)
  uri = URI("https://api.rememberizer.ai/api/v1/vector-stores/#{vector_store_id}/documents/search")
  params = {
    q: query,
    n: num_results,
    prev_chunks: prev_chunks,
    next_chunks: next_chunks
  }
  
  uri.query = URI.encode_www_form(params)
  
  request = Net::HTTP::Get.new(uri)
  request['x-api-key'] = 'YOUR_API_KEY'
  
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  
  response = http.request(request)
  data = JSON.parse(response.body)
  puts data
end

search_vector_store(
  'vs_abc123',
  'How to integrate our product with third-party systems',
  5,
  1,
  1
)

YOUR_API_KEY を実際のベクターストアAPIキーに、vs_abc123 をベクターストアIDに置き換えてください。

パスパラメータ

パラメータ
タイプ
説明

vector-store-id

string

必須。 検索するベクトルストアのID。

クエリパラメータ

パラメータ
タイプ
説明

q

文字列

必須。 検索クエリテキスト。

n

整数

返す結果の数。デフォルト: 10。

t

数値

一致の閾値。デフォルト: 0.7。

prev_chunks

整数

一致したチャンクの前に含めるチャンクの数。デフォルト: 0。

next_chunks

整数

一致したチャンクの後に含めるチャンクの数。デフォルト: 0。

レスポンスフォーマット

{
  "vector_store": {
    "id": "vs_abc123",
    "name": "製品ドキュメント"
  },
  "matched_chunks": [
    {
      "document": {
        "id": 1234,
        "name": "統合ガイド.pdf",
        "type": "application/pdf",
        "size": 250000,
        "indexed_on": "2023-06-15T10:30:00Z",
        "vector_store": "vs_abc123",
        "created": "2023-06-15T10:15:00Z",
        "modified": "2023-06-15T10:30:00Z"
      },
      "matched_content": "私たちの製品は、サードパーティシステム向けにいくつかの統合オプションを提供しています。主な方法は、OAuth2認証をサポートするRESTful APIを通じてです。さらに、Python、JavaScript、Javaで利用可能なSDKを使用することもできます。",
      "distance": 0.123
    },
    // ... さらに一致したチャンク
  ]
}

認証

このエンドポイントは、x-api-key ヘッダーを使用して API キーによる認証を必要とします。

エラーレスポンス

ステータスコード
説明

400

不正なリクエスト - 必須パラメータが欠落しているか、無効な形式

401

認証エラー - 無効または欠落したAPIキー

404

未検出 - ベクトルストアが見つかりません

500

サーバ内部エラー

検索最適化のヒント

コンテキストウィンドウ

prev_chunks と next_chunks パラメータを使用して、各一致に含まれるコンテキストの量を制御します:

  • 両方を 0 に設定すると、コンテキストなしの正確な一致になります

  • 両方を 1-2 に設定すると、最小限のコンテキストを持つ一致になります

  • 両方を 3-5 に設定すると、 substantial context を持つ一致になります

一致の閾値

t パラメータは、一致がどのように厳密にフィルタリングされるかを制御します:

  • 高い値(例:0.9)は、非常に近い一致のみを返します

  • 低い値(例:0.5)は、より多様な一致を返します

  • デフォルト(0.7)は、バランスの取れたアプローチを提供します

バッチ操作

高スループットアプリケーション向けに、Rememberizerはベクトルストアに対する効率的なバッチ操作をサポートしています。これらのメソッドは、複数の検索クエリを処理する際のパフォーマンスを最適化します。

バッチ検索の実装

import requests
import time
import concurrent.futures

def batch_search_vector_store(vector_store_id, queries, num_results=5, batch_size=10):
    """
    ベクトルストアに対してバッチ検索を実行します
    
    引数:
        vector_store_id: 検索するベクトルストアのID
        queries: 検索クエリ文字列のリスト
        num_results: クエリごとの結果の数
        batch_size: 並列リクエストの数
        
    戻り値:
        検索結果のリスト
    """
    headers = {
        "x-api-key": "YOUR_API_KEY"
    }
    
    results = []
    
    # APIを圧倒しないようにバッチで処理します
    for i in range(0, len(queries), batch_size):
        batch_queries = queries[i:i+batch_size]
        
        with concurrent.futures.ThreadPoolExecutor(max_workers=batch_size) as executor:
            futures = []
            
            for query in batch_queries:
                params = {
                    "q": query,
                    "n": num_results,
                    "prev_chunks": 1,
                    "next_chunks": 1
                }
                
                # スレッドプールにリクエストを送信します
                future = executor.submit(
                    requests.get,
                    f"https://api.rememberizer.ai/api/v1/vector-stores/{vector_store_id}/documents/search",
                    headers=headers,
                    params=params
                )
                futures.append(future)
            
            # すべてのfutureから結果を収集します
            for future in futures:
                response = future.result()
                if response.status_code == 200:
                    results.append(response.json())
                else:
                    results.append({"error": f"ステータスコードで失敗しました: {response.status_code}"})
        
        # レート制限を避けるためにバッチ間に遅延を追加します
        if i + batch_size < len(queries):
            time.sleep(1)
    
    return results

# 使用例
queries = [
    "REST APIとの統合",
    "認証プロトコル",
    "本番環境へのデプロイ方法",
    "パフォーマンス最適化技術",
    "エラーハンドリングのベストプラクティス"
]

search_results = batch_search_vector_store("vs_abc123", queries, num_results=3, batch_size=5)
/**
 * ベクトルストアに対してバッチ検索を実行する
 * 
 * @param {string} vectorStoreId - ベクトルストアのID
 * @param {string[]} queries - 検索クエリのリスト
 * @param {Object} options - 設定オプション
 * @returns {Promise<Array>} - 検索結果のリスト
 */
async function batchSearchVectorStore(vectorStoreId, queries, options = {}) {
  const {
    numResults = 5,
    batchSize = 10,
    delayBetweenBatches = 1000,
    prevChunks = 1,
    nextChunks = 1,
    distanceThreshold = 0.7
  } = options;
  
  const results = [];
  const apiKey = 'YOUR_API_KEY';
  
  // APIの負荷を管理するためにバッチ処理を行う
  for (let i = 0; i < queries.length; i += batchSize) {
    const batchQueries = queries.slice(i, i + batchSize);
    
    // 並列リクエストのためのプロミス配列を作成
    const batchPromises = batchQueries.map(query => {
      const url = new URL(`https://api.rememberizer.ai/api/v1/vector-stores/${vectorStoreId}/documents/search`);
      url.searchParams.append('q', query);
      url.searchParams.append('n', numResults);
      url.searchParams.append('prev_chunks', prevChunks);
      url.searchParams.append('next_chunks', nextChunks);
      url.searchParams.append('t', distanceThreshold);
      
      return fetch(url.toString(), {
        method: 'GET',
        headers: {
          'x-api-key': apiKey
        }
      })
      .then(response => {
        if (response.ok) {
          return response.json();
        } else {
          return { error: `ステータス: ${response.status} で失敗しました` };
        }
      })
      .catch(error => {
        return { error: error.message };
      });
    });
    
    // バッチ内のすべてのリクエストが完了するのを待つ
    const batchResults = await Promise.all(batchPromises);
    results.push(...batchResults);
    
    // レート制限を避けるためにバッチ間に遅延を追加
    if (i + batchSize < queries.length) {
      await new Promise(resolve => setTimeout(resolve, delayBetweenBatches));
    }
  }
  
  return results;
}

// 使用例
const queries = [
  "REST APIとの統合",
  "認証プロトコル",
  "本番環境へのデプロイ方法",
  "パフォーマンス最適化技術",
  "エラーハンドリングのベストプラクティス"
];

const options = {
  numResults: 3,
  batchSize: 5,
  delayBetweenBatches: 1000,
  prevChunks: 1,
  nextChunks: 1
};

batchSearchVectorStore("vs_abc123", queries, options)
  .then(results => console.log(results))
  .catch(error => console.error("バッチ検索に失敗しました:", error));
require 'net/http'
require 'uri'
require 'json'
require 'concurrent'

# ベクトルストアに対してバッチ検索を実行する
#
# @param vector_store_id [String] ベクトルストアのID
# @param queries [Array<String>] 検索クエリのリスト
# @param num_results [Integer] クエリごとの結果数
# @param batch_size [Integer] 並列リクエストの数
# @param delay_between_batches [Float] バッチ間の待機時間(秒)
# @return [Array] 各クエリの検索結果
def batch_search_vector_store(vector_store_id, queries, num_results: 5, batch_size: 10, delay_between_batches: 1.0)
  results = []
  api_key = 'YOUR_API_KEY'
  
  # バッチで処理
  queries.each_slice(batch_size).with_index do |batch_queries, batch_index|
    # 同時実行のためのスレッドプールを作成
    pool = Concurrent::FixedThreadPool.new(batch_size)
    futures = []
    
    batch_queries.each do |query|
      # 各リクエストをスレッドプールに送信
      futures << Concurrent::Future.execute(executor: pool) do
        uri = URI("https://api.rememberizer.ai/api/v1/vector-stores/#{vector_store_id}/documents/search")
        params = {
          q: query,
          n: num_results,
          prev_chunks: 1,
          next_chunks: 1
        }
        
        uri.query = URI.encode_www_form(params)
        
        request = Net::HTTP::Get.new(uri)
        request['x-api-key'] = api_key
        
        http = Net::HTTP.new(uri.host, uri.port)
        http.use_ssl = true
        
        begin
          response = http.request(request)
          
          if response.code.to_i == 200
            JSON.parse(response.body)
          else
            { "error" => "ステータスコードで失敗しました: #{response.code}" }
          end
        rescue => e
          { "error" => e.message }
        end
      end
    end
    
    # すべてのfutureから結果を収集
    batch_results = futures.map(&:value)
    results.concat(batch_results)
    
    # バッチ間の遅延を追加
    if batch_index < (queries.length / batch_size.to_f).ceil - 1
      sleep(delay_between_batches)
    end
  end
  
  pool.shutdown
  results
end

# 使用例
queries = [
  "REST APIとの統合",
  "認証プロトコル",
  "本番環境へのデプロイ方法", 
  "パフォーマンス最適化技術",
  "エラーハンドリングのベストプラクティス"
]

results = batch_search_vector_store(
  "vs_abc123", 
  queries, 
  num_results: 3, 
  batch_size: 5
)

puts results

バッチ操作のパフォーマンス最適化

ベクトルストア検索のためのバッチ操作を実装する際は、以下のベストプラクティスを考慮してください。

  1. 最適なバッチサイズ: ほとんどのアプリケーションでは、5-10のクエリを並行して処理することで、スループットとリソース使用の良いバランスが得られます。

  2. レート制限の認識: バッチ間に遅延メカニズム(通常1-2秒)を含めて、APIのレート制限に達しないようにします。

  3. エラーハンドリング: バッチ内で失敗する可能性のある個々のクエリに対して、堅牢なエラーハンドリングを実装します。

  4. 接続管理: 高ボリュームのアプリケーションでは、オーバーヘッドを減らすために接続プーリングを実装します。

  5. タイムアウト設定: 長時間実行されるクエリが全体のバッチをブロックしないように、各リクエストに適切なタイムアウトを設定します。

  6. 結果処理: すべての結果を待つのではなく、利用可能になった結果を非同期に処理することを検討してください。

  7. モニタリング: 平均応答時間や成功率などのパフォーマンス指標を追跡して、最適化の機会を特定します。

非常に高いクエリボリュームを持つプロダクションアプリケーションでは、大規模なバッチを効率的に管理するために、ワーカープロセスを持つキューシステムの実装を検討してください。

このエンドポイントを使用すると、意味的類似性を利用してベクトルストアを検索できます。これは、クエリに正確なキーワードが含まれていなくても、概念的に関連する文書を返します。これにより、自然言語クエリや質問応答に特に強力になります。

get

Initiate a search operation with a query text and receive most semantically similar responses from the vector store.

Path parameters
vector-store-idstringRequired

The ID of the vector store.

Query parameters
qstringRequired

The search query text.

nintegerOptional

Number of chunks to return.

tnumberOptional

Matching threshold.

prev_chunksintegerOptional

Number of chunks before the matched chunk to include.

next_chunksintegerOptional

Number of chunks after the matched chunk to include.

Header parameters
x-api-keystringRequired

The API key for authentication.

Responses
200
Search results retrieved successfully.
application/json
get
GET /api/v1/vector-stores/{vector-store-id}/documents/search HTTP/1.1
Host: api.rememberizer.ai
x-api-key: text
Accept: */*
200

Search results retrieved successfully.

{
  "vector_store": {
    "id": "text",
    "name": "text"
  },
  "matched_chunks": [
    {
      "document": {
        "id": 1,
        "name": "text",
        "type": "text",
        "size": 1,
        "indexed_on": "2025-05-29T19:26:51.785Z",
        "vector_store": "text",
        "created": "2025-05-29T19:26:51.785Z",
        "modified": "2025-05-29T19:26:51.785Z"
      },
      "matched_content": "text",
      "distance": 1
    }
  ]
}
  • GET/vector-stores/{vector-store-id}/documents/search
  • 例リクエスト
  • パスパラメータ
  • クエリパラメータ
  • レスポンスフォーマット
  • 認証
  • エラーレスポンス
  • 検索最適化のヒント
  • コンテキストウィンドウ
  • 一致の閾値
  • バッチ操作
  • バッチ検索の実装
  • バッチ操作のパフォーマンス最適化