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/documents/search/?q=Rememberizer%20を%20カスタム%20アプリケーションと%20統合する%20方法&n=5&from=2023-01-01T00:00:00Z&to=2023-12-31T23:59:59Z" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

YOUR_JWT_TOKEN を実際のJWTトークンに置き換えてください。

const searchDocuments = async (query, numResults = 5, from = null, to = null) => {
  const url = new URL('https://api.rememberizer.ai/api/v1/documents/search/');
  url.searchParams.append('q', query);
  url.searchParams.append('n', numResults);
  
  if (from) {
    url.searchParams.append('from', from);
  }
  
  if (to) {
    url.searchParams.append('to', to);
  }
  
  const response = await fetch(url.toString(), {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer YOUR_JWT_TOKEN'
    }
  });
  
  const data = await response.json();
  console.log(data);
};

searchDocuments('Rememberizerをカスタムアプリケーションと統合する方法', 5);

YOUR_JWT_TOKEN を実際のJWTトークンに置き換えてください。

import requests

def search_documents(query, num_results=5, from_date=None, to_date=None):
    headers = {
        "Authorization": "Bearer YOUR_JWT_TOKEN"
    }
    
    params = {
        "q": query,
        "n": num_results
    }
    
    if from_date:
        params["from"] = from_date
    
    if to_date:
        params["to"] = to_date
    
    response = requests.get(
        "https://api.rememberizer.ai/api/v1/documents/search/",
        headers=headers,
        params=params
    )
    
    data = response.json()
    print(data)

search_documents("Rememberizerをカスタムアプリケーションと統合する方法", 5)

YOUR_JWT_TOKEN を実際のJWTトークンに置き換えてください。

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

def search_documents(query, num_results=5, from_date=nil, to_date=nil)
  uri = URI('https://api.rememberizer.ai/api/v1/documents/search/')
  params = {
    q: query,
    n: num_results
  }
  
  params[:from] = from_date if from_date
  params[:to] = to_date if to_date
  
  uri.query = URI.encode_www_form(params)
  
  request = Net::HTTP::Get.new(uri)
  request['Authorization'] = 'Bearer YOUR_JWT_TOKEN'
  
  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_documents("Rememberizerをカスタムアプリケーションと統合する方法", 5)

YOUR_JWT_TOKEN を実際のJWTトークンに置き換えてください。

クエリパラメータ

パラメータ
タイプ
説明

q

文字列

必須。 検索クエリテキスト(最大400語)。

n

整数

返す結果の数。デフォルト: 3。より包括的な結果を得るために高い値(例: 10)を使用します。

from

文字列

検索対象の文書の時間範囲の開始、ISO 8601形式。

to

文字列

検索対象の文書の時間範囲の終了、ISO 8601形式。

prev_chunks

整数

コンテキストのために含める前のチャンクの数。デフォルト: 2。

next_chunks

整数

コンテキストのために含める後のチャンクの数。デフォルト: 2。

レスポンスフォーマット

{
  "data_sources": [
    {
      "name": "Google Drive",
      "documents": 3
    },
    {
      "name": "Slack",
      "documents": 2
    }
  ],
  "matched_chunks": [
    {
      "document": {
        "id": 12345,
        "document_id": "1aBcD2efGhIjK3lMnOpQrStUvWxYz",
        "name": "Rememberizer API Documentation.pdf",
        "type": "application/pdf",
        "path": "/Documents/Rememberizer/API Documentation.pdf",
        "url": "https://drive.google.com/file/d/1aBcD2efGhIjK3lMnOpQrStUvWxYz/view",
        "size": 250000,
        "created_time": "2023-05-10T14:30:00Z",
        "modified_time": "2023-06-15T09:45:00Z",
        "indexed_on": "2023-06-15T10:30:00Z",
        "integration": {
          "id": 101,
          "integration_type": "google_drive"
        }
      },
      "matched_content": "Rememberizerをカスタムアプリケーションと統合するには、OAuth2認証フローを使用して、アプリケーションがユーザーのRememberizerデータにアクセスするための認可を取得できます。認可されると、アプリケーションはRememberizer APIを使用して、ドキュメントを検索したり、コンテンツを取得したりできます。",
      "distance": 0.123
    },
    // ... さらにマッチしたチャンク
  ],
  "message": "検索が成功裏に完了しました",
  "code": "success"
}

検索最適化のヒント

質問応答のために

質問への答えを探すときは、理想的な答えのようにクエリを構成してみてください。例えば:

代わりに: "ベクトル埋め込みとは何ですか?" 試してみてください: "ベクトル埋め込みは、テキストを高次元空間の数値ベクトルに変換する技術です。"

結果数の調整

  • 高い関連性のある結果を迅速に得るために n=3 から始める

  • より包括的な情報を得るために n=10 以上に増やす

  • 検索結果が不十分な場合は、n パラメータを増やしてみる

時間ベースのフィルタリング

from および to パラメータを使用して、特定の期間の文書に焦点を当てます:

  • 最近の文書:from を最近の日付に設定

  • 歴史的分析:特定の日付範囲を指定

  • 古い情報を除外:適切な to 日付を設定

バッチ操作

大量の検索クエリを効率的に処理するために、Rememberizerはパフォーマンスを最適化し、APIコールのオーバーヘッドを削減するためのバッチ操作をサポートしています。

バッチ検索

import requests
import time
import json
from concurrent.futures import ThreadPoolExecutor

def batch_search_documents(queries, num_results=5, batch_size=10):
    """
    複数のクエリを使用してバッチ検索を実行します
    
    引数:
        queries: 検索クエリ文字列のリスト
        num_results: クエリごとに返す結果の数
        batch_size: 並行処理するクエリの数
    
    戻り値:
        各クエリの検索結果のリスト
    """
    headers = {
        "Authorization": "Bearer YOUR_JWT_TOKEN",
        "Content-Type": "application/json"
    }
    
    results = []
    
    # クエリをバッチで処理
    for i in range(0, len(queries), batch_size):
        batch = queries[i:i+batch_size]
        
        # リクエストを並行して送信するためのスレッドプールを作成
        with ThreadPoolExecutor(max_workers=batch_size) as executor:
            futures = []
            
            for query in batch:
                params = {
                    "q": query,
                    "n": num_results
                }
                
                future = executor.submit(
                    requests.get,
                    "https://api.rememberizer.ai/api/v1/documents/search/",
                    headers=headers,
                    params=params
                )
                futures.append(future)
            
            # 完了した結果を収集
            for future in futures:
                response = future.result()
                results.append(response.json())
        
        # レート制限 - APIのスロットリングを避けるためにバッチ間で一時停止
        if i + batch_size < len(queries):
            time.sleep(1)
    
    return results

# 使用例
queries = [
    "RememberizerでOAuthを使用する方法",
    "ベクターデータベースの設定オプション",
    "セマンティック検索のベストプラクティス",
    # 必要に応じてクエリを追加
]

results = batch_search_documents(queries, num_results=3, batch_size=5)
/**
 * 複数のクエリでバッチ検索を実行する
 * 
 * @param {string[]} queries - 検索クエリ文字列のリスト
 * @param {number} numResults - クエリごとに返す結果の数
 * @param {number} batchSize - 並行処理するクエリの数
 * @param {number} delayBetweenBatches - バッチ間で待機するミリ秒
 * @returns {Promise<Array>} - 各クエリの検索結果のリスト
 */
async function batchSearchDocuments(queries, numResults = 5, batchSize = 10, delayBetweenBatches = 1000) {
  const results = [];
  
  // クエリをバッチで処理
  for (let i = 0; i < queries.length; i += batchSize) {
    const batch = queries.slice(i, i + batchSize);
    
    // 同時リクエストのためのプロミスの配列を作成
    const batchPromises = batch.map(query => {
      const url = new URL('https://api.rememberizer.ai/api/v1/documents/search/');
      url.searchParams.append('q', query);
      url.searchParams.append('n', numResults);
      
      return fetch(url.toString(), {
        method: 'GET',
        headers: {
          'Authorization': 'Bearer YOUR_JWT_TOKEN'
        }
      }).then(response => response.json());
    });
    
    // バッチ内のすべてのリクエストが完了するのを待つ
    const batchResults = await Promise.all(batchPromises);
    results.push(...batchResults);
    
    // レート制限 - APIのスロットリングを避けるためにバッチ間で一時停止
    if (i + batchSize < queries.length) {
      await new Promise(resolve => setTimeout(resolve, delayBetweenBatches));
    }
  }
  
  return results;
}

// 使用例
const queries = [
  "RememberizerでOAuthを使用する方法",
  "ベクターデータベースの設定オプション",
  "セマンティック検索のベストプラクティス",
  // 必要に応じてクエリを追加
];

batchSearchDocuments(queries, 3, 5)
  .then(results => console.log(results))
  .catch(error => console.error('バッチ検索中のエラー:', error));
require 'net/http'
require 'uri'
require 'json'
require 'concurrent'

# 複数のクエリを使用してバッチ検索を実行する
#
# @param queries [Array<String>] 検索クエリ文字列のリスト
# @param num_results [Integer] クエリごとに返す結果の数
# @param batch_size [Integer] 並行して処理するクエリの数
# @param delay_between_batches [Float] バッチ間の待機時間(秒)
# @return [Array] 各クエリの検索結果のリスト
def batch_search_documents(queries, num_results = 5, batch_size = 10, delay_between_batches = 1.0)
  results = []
  
  # バッチでクエリを処理する
  queries.each_slice(batch_size).with_index do |batch, batch_index|
    # 同時リクエストのためのスレッドプールを作成
    pool = Concurrent::FixedThreadPool.new(batch_size)
    futures = []
    
    batch.each do |query|
      futures << Concurrent::Future.execute(executor: pool) do
        uri = URI('https://api.rememberizer.ai/api/v1/documents/search/')
        params = {
          q: query,
          n: num_results
        }
        
        uri.query = URI.encode_www_form(params)
        
        request = Net::HTTP::Get.new(uri)
        request['Authorization'] = 'Bearer YOUR_JWT_TOKEN'
        
        http = Net::HTTP.new(uri.host, uri.port)
        http.use_ssl = true
        
        response = http.request(request)
        JSON.parse(response.body)
      end
    end
    
    # すべてのスレッドから結果を収集
    batch_results = futures.map(&:value)
    results.concat(batch_results)
    
    # レート制限 - APIのスロットリングを避けるためにバッチ間で一時停止
    if batch_index < (queries.length / batch_size.to_f).ceil - 1
      sleep(delay_between_batches)
    end
  end
  
  pool.shutdown
  results
end

# 使用例
queries = [
  "RememberizerでOAuthを使用する方法",
  "ベクターデータベースの設定オプション",
  "セマンティック検索のベストプラクティス",
  # 必要に応じてクエリを追加
]

results = batch_search_documents(queries, 3, 5)
puts results

パフォーマンスの考慮事項

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

  1. 最適なバッチサイズ: 5-10 クエリのバッチサイズから始め、アプリケーションのパフォーマンス特性に基づいて調整します。

  2. レート制限: API のスロットリングを防ぐために、バッチ間に遅延を含めます。バッチ間に 1 秒の遅延を設けるのが良い出発点です。

  3. エラーハンドリング: バッチ内の失敗したリクエストを管理するために、堅牢なエラーハンドリングを実装します。

  4. リソース管理: 特に大きなバッチサイズの場合、クライアント側のリソース使用状況を監視し、過剰なメモリ消費を防ぎます。

  5. レスポンス処理: 可能な限り非同期でバッチ結果を処理し、ユーザーエクスペリエンスを向上させます。

高ボリュームのアプリケーションでは、大量の検索リクエストを効率的に管理するためにキューシステムの実装を検討してください。

このエンドポイントは、あなたの知識ベース全体にわたる強力なセマンティック検索機能を提供します。意味に基づいてコンテンツを見つけるためにベクトル埋め込みを使用し、正確なキーワード一致ではなく意味に基づいています。

ベクトル埋め込みがどのように機能し、この検索アプローチがなぜ効果的であるかをより深く理解するには、を参照してください。

ベクトル埋め込みとベクトルデータベースとは?
get

Initiate a search operation with a query text of up to 400 words and receive the most semantically similar responses from the stored knowledge. For question-answering, convert your question into an ideal answer and submit it to receive similar real answers.

Query parameters
qstringOptional

Up to 400 words sentence for which you wish to find semantically similar chunks of knowledge.

nintegerOptional

Number of semantically similar chunks of text to return. Use 'n=3' for up to 5, and 'n=10' for more information. If you do not receive enough information, consider trying again with a larger 'n' value.

fromstring · date-timeOptional

Start of the time range for documents to be searched, in ISO 8601 format.

tostring · date-timeOptional

End of the time range for documents to be searched, in ISO 8601 format.

Responses
200
Successful retrieval of documents
application/json
400
Bad request
401
Unauthorized
404
Not found
500
Internal server error
get
GET /api/v1/documents/search/ HTTP/1.1
Host: api.rememberizer.ai
Accept: */*
{
  "data_sources": [
    {
      "name": "text",
      "documents": 1
    }
  ],
  "matched_chunks": [
    {
      "document": {
        "id": 18,
        "document_id": "text",
        "name": "text",
        "type": "text",
        "path": "text",
        "url": "text",
        "size": 1,
        "created_time": "2025-05-29T14:34:33.154Z",
        "modified_time": "2025-05-29T14:34:33.154Z",
        "indexed_on": "2025-05-29T14:34:33.154Z",
        "integration": {
          "id": 1,
          "integration_type": "text"
        }
      },
      "matched_content": "text",
      "distance": 1
    }
  ]
}
  • GET/documents/search/
  • 例リクエスト
  • クエリパラメータ
  • レスポンスフォーマット
  • 検索最適化のヒント
  • 質問応答のために
  • 結果数の調整
  • 時間ベースのフィルタリング
  • バッチ操作
  • バッチ検索
  • パフォーマンスの考慮事項