Rememberizer Docs
تسجيل الدخولاشتراكاتصل بنا
دليل
دليل
  • لماذا Rememberizer؟
  • خلفية
    • ما هي تضمينات المتجهات وقواعد بيانات المتجهات؟
    • مسرد
    • المصطلحات القياسية
  • الاستخدام الشخصي
    • البدء
      • ابحث في معرفتك
      • الوصول إلى فلتر الذكريات
      • المعرفة العامة
      • إدارة معرفتك المدمجة
  • التكاملات
    • تطبيق Rememberizer
    • تكامل Rememberizer مع Slack
    • تكامل Rememberizer مع Google Drive
    • تكامل Rememberizer مع Dropbox
    • تكامل Rememberizer مع Gmail
    • تكامل Rememberizer مع الذاكرة
    • خوادم Rememberizer MCP
    • إدارة التطبيقات الخارجية
  • موارد المطورين
    • نظرة عامة على المطور
  • خيارات التكامل
    • تسجيل واستخدام مفاتيح API
    • تسجيل تطبيقات Rememberizer
    • تفويض تطبيقات Rememberizer
    • إنشاء GPT لـ Rememberizer
    • تكامل LangChain
    • متاجر المتجهات
    • تحدث إلى Slack تطبيق الويب النموذجي
  • تكامل المؤسسات
    • أنماط تكامل المؤسسات
  • مرجع واجهة برمجة التطبيقات
    • الصفحة الرئيسية لوثائق واجهة برمجة التطبيقات
    • المصادقة
  • واجهات برمجة التطبيقات الأساسية
    • البحث عن المستندات حسب التشابه الدلالي
    • استرجاع المستندات
    • استرجاع محتويات المستندات
    • استرجاع محتوى Slack
    • تذكر المحتوى إلى Rememberizer
  • الحساب والتكوين
    • استرجاع تفاصيل حساب المستخدم الحالي
    • قائمة تكاملات مصادر البيانات المتاحة
    • المذكرات
    • الحصول على جميع المعرفة العامة المضافة
  • واجهات برمجة تطبيقات تخزين المتجهات
    • وثائق تخزين المتجهات
    • الحصول على معلومات تخزين المتجهات
    • الحصول على قائمة بالوثائق في تخزين المتجهات
    • الحصول على معلومات الوثيقة
    • إضافة وثيقة نصية جديدة إلى تخزين المتجهات
    • رفع الملفات إلى تخزين المتجهات
    • تحديث محتوى الملف في تخزين المتجهات
    • إزالة وثيقة في تخزين المتجهات
    • البحث عن وثائق تخزين المتجهات حسب التشابه الدلالي
  • موارد إضافية
    • الإشعارات
      • شروط الاستخدام
      • سياسة الخصوصية
      • B2B
        • حول وكيل Reddit
  • الإصدارات
    • صفحة ملاحظات الإصدار
  • إصدارات 2025
    • 25 أبريل 2025
    • 18 أبريل 2025
    • 11 أبريل 2025
    • 4 أبريل 2025
    • 28 مارس 2025
    • 21 مارس 2025
    • 14 مارس 2025
    • 17 يناير 2025
  • إصدارات 2024
    • 27 ديسمبر 2024
    • 20 ديسمبر 2024
    • 13 ديسمبر 2024
    • 6 ديسمبر 2024
  • 29 نوفمبر 2024
  • 22 نوفمبر 2024
  • 15 نوفمبر 2024
  • 8 نوفمبر 2024
  • 1 نوفمبر 2024
  • 25 أكتوبر 2024
  • 18 أكتوبر 2024
  • 11 أكتوبر 2024
  • 4 أكتوبر 2024
  • 27 سبتمبر 2024
  • 20 سبتمبر 2024
  • 13 سبتمبر 2024
  • 16 أغسطس 2024
  • 9 أغسطس 2024
  • 2 أغسطس 2024
  • 26 يوليو 2024
  • 12 يوليو 2024
  • 28 يونيو 2024
  • 14 يونيو 2024
  • 31 مايو 2024
  • 17 مايو 2024
  • 10 مايو 2024
  • 26 أبريل 2024
  • 19 أبريل 2024
  • 12 أبريل 2024
  • 5 أبريل 2024
  • 25 مارس 2024
  • 18 مارس 2024
  • 11 مارس 2024
  • 4 مارس 2024
  • 26 فبراير 2024
  • 19 فبراير 2024
  • 12 فبراير 2024
  • 5 فبراير 2024
  • 29 يناير 2024
  • 22 يناير 2024
  • 15 يناير 2024
  • وثائق LLM
    • وثائق Rememberizer LLM جاهزة
Powered by GitBook
On this page
  1. واجهات برمجة التطبيقات الأساسية

البحث عن المستندات حسب التشابه الدلالي

نقطة بحث دلالي مع قدرات معالجة دفعات

PreviousالمصادقةNextاسترجاع المستندات

Last updated 26 days ago

طلبات مثال

curl -X GET \
  "https://api.rememberizer.ai/api/v1/documents/search/?q=كيف%20أدمج%20Rememberizer%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.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 للبحث عن الوثائق، واسترجاع المحتوى، والمزيد.",
      "distance": 0.123
    },
    // ... المزيد من الأجزاء المتطابقة
  ],
  "message": "تمت عملية البحث بنجاح",
  "code": "success"
}

نصائح تحسين البحث

للإجابة على الأسئلة

عند البحث عن إجابة لسؤال، حاول صياغة استفسارك كما لو كان إجابة مثالية. على سبيل المثال:

بدلاً من: "ما هو تضمين المتجهات؟" حاول: "تضمين المتجهات هو تقنية تحول النص إلى متجهات عددية في فضاء عالي الأبعاد."

ضبط عدد النتائج

  • ابدأ بـ n=3 للحصول على نتائج سريعة وعالية الصلة

  • زد إلى n=10 أو أكثر للحصول على معلومات أكثر شمولاً

  • إذا كانت نتائج البحث غير كافية، حاول زيادة معلمة n

تصفية قائمة على الوقت

استخدم معلمات from و to للتركيز على الوثائق من فترات زمنية محددة:

  • وثائق حديثة: قم بتعيين from إلى تاريخ حديث

  • تحليل تاريخي: حدد نطاق تاريخي معين

  • استبعاد المعلومات القديمة: قم بتعيين تاريخ to مناسب

العمليات الجماعية

للتعامل بكفاءة مع كميات كبيرة من استعلامات البحث، يدعم Rememberizer العمليات الجماعية لتحسين الأداء وتقليل عبء استدعاءات واجهة برمجة التطبيقات.

البحث الجماعي

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

def batch_search_documents(queries, num_results=5, batch_size=10):
    """
    إجراء عمليات بحث جماعية مع استعلامات متعددة
    
    Args:
        queries: قائمة من سلاسل استعلام البحث
        num_results: عدد النتائج التي يجب إرجاعها لكل استعلام
        batch_size: عدد الاستعلامات التي يجب معالجتها بالتوازي
    
    Returns:
        قائمة بنتائج البحث لكل استعلام
    """
    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())
        
        # تحديد المعدل - التوقف بين الدفعات لتجنب تقييد واجهة برمجة التطبيقات
        if i + batch_size < len(queries):
            time.sleep(1)
    
    return results

# مثال على الاستخدام
queries = [
    "كيفية استخدام OAuth مع Rememberizer",
    "خيارات تكوين قاعدة بيانات المتجهات",
    "أفضل الممارسات للبحث الدلالي",
    # أضف المزيد من الاستعلامات حسب الحاجة
]

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);
    
    // تحديد معدل الطلبات - التوقف بين المجموعات لتجنب تقييد واجهة برمجة التطبيقات
    if (i + batchSize < queries.length) {
      await new Promise(resolve => setTimeout(resolve, delayBetweenBatches));
    }
  }
  
  return results;
}

// مثال على الاستخدام
const queries = [
  "كيفية استخدام OAuth مع Rememberizer",
  "خيارات تكوين قاعدة بيانات المتجهات",
  "أفضل الممارسات للبحث الدلالي",
  // أضف المزيد من الاستعلامات حسب الحاجة
];

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)
    
    # تحديد المعدل - توقف بين الدفعات لتجنب تقييد واجهة برمجة التطبيقات
    if batch_index < (queries.length / batch_size.to_f).ceil - 1
      sleep(delay_between_batches)
    end
  end
  
  pool.shutdown
  results
end

# مثال على الاستخدام
queries = [
  "كيفية استخدام OAuth مع Rememberizer",
  "خيارات تكوين قاعدة بيانات المتجهات",
  "أفضل الممارسات للبحث الدلالي",
  # أضف المزيد من الاستفسارات حسب الحاجة
]

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

اعتبارات الأداء

عند تنفيذ عمليات الدفعات، ضع في اعتبارك هذه الممارسات الجيدة:

  1. حجم الدفعة الأمثل: ابدأ بأحجام دفعات تتراوح بين 5-10 استفسارات واضبطها بناءً على خصائص أداء تطبيقك.

  2. تحديد المعدل: قم بتضمين تأخيرات بين الدفعات لمنع تقليل سرعة واجهة برمجة التطبيقات. نقطة انطلاق جيدة هي 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-24T23:11:41.197Z",
        "modified_time": "2025-05-24T23:11:41.197Z",
        "indexed_on": "2025-05-24T23:11:41.197Z",
        "integration": {
          "id": 1,
          "integration_type": "text"
        }
      },
      "matched_content": "text",
      "distance": 1
    }
  ]
}
  • GET/documents/search/
  • طلبات مثال
  • معلمات الاستعلام
  • تنسيق الاستجابة
  • نصائح تحسين البحث
  • للإجابة على الأسئلة
  • ضبط عدد النتائج
  • تصفية قائمة على الوقت
  • العمليات الجماعية
  • البحث الجماعي
  • اعتبارات الأداء