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. واجهات برمجة تطبيقات تخزين المتجهات

البحث عن وثائق تخزين المتجهات حسب التشابه الدلالي

البحث في مستندات Vector Store باستخدام التشابه الدلالي وعمليات الدفعة

Previousإزالة وثيقة في تخزين المتجهاتNextالإشعارات

Last updated 26 days ago

طلبات مثال

curl -X GET \
  "https://api.rememberizer.ai/api/v1/vector-stores/vs_abc123/documents/search?q=كيف%20نقوم%20بدمج%20منتجنا%20مع%20أنظمة%20طرف%20ثالث&n=5&prev_chunks=1&next_chunks=1" \
  -H "x-api-key: YOUR_API_KEY"

استبدل YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات الخاص بك لـ Vector Store و vs_abc123 بمعرف Vector Store الخاص بك.

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',
  'كيف نقوم بدمج منتجنا مع أنظمة طرف ثالث',
  5,
  1,
  1
);

استبدل YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات الخاص بك لـ Vector Store و vs_abc123 بمعرف Vector Store الخاص بك.

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',
    'كيف نقوم بدمج منتجنا مع أنظمة طرف ثالث',
    5,
    1,
    1
)

استبدل YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات الخاص بك لـ Vector Store و vs_abc123 بمعرف Vector Store الخاص بك.

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',
  'كيف نقوم بدمج منتجنا مع أنظمة طرف ثالث',
  5,
  1,
  1
)

استبدل YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات الخاص بك لـ Vector Store و vs_abc123 بمعرف Vector Store الخاص بك.

معلمات المسار

المعلمة
النوع
الوصف

vector-store-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": "يقدم منتجنا عدة خيارات للتكامل مع أنظمة الطرف الثالث. الطريقة الأساسية هي من خلال واجهة برمجة التطبيقات RESTful الخاصة بنا، التي تدعم مصادقة OAuth2. بالإضافة إلى ذلك، يمكنك استخدام مجموعة أدوات التطوير المتاحة بلغة بايثون، وجافا سكريبت، وجافا.",
      "distance": 0.123
    },
    // ... المزيد من الأجزاء المتطابقة
  ]
}

المصادقة

تتطلب هذه النقطة النهائية المصادقة باستخدام مفتاح API في رأس x-api-key.

استجابات الخطأ

رمز الحالة
الوصف

400

طلب غير صالح - معلمات مطلوبة مفقودة أو تنسيق غير صالح

401

غير مصرح - مفتاح API غير صالح أو مفقود

404

غير موجود - لم يتم العثور على متجر المتجهات

500

خطأ في الخادم الداخلي

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

نوافذ السياق

استخدم معلمات prev_chunks و next_chunks للتحكم في مقدار السياق المضمن مع كل تطابق:

  • اضبط كلاهما على 0 للحصول على تطابقات دقيقة بدون سياق

  • اضبط كلاهما على 1-2 للحصول على تطابقات مع سياق ضئيل

  • اضبط كلاهما على 3-5 للحصول على تطابقات مع سياق كبير

عتبة المطابقة

يتحكم معلم 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):
    """
    إجراء عمليات بحث جماعية ضد مخزن المتجهات
    
    Args:
        vector_store_id: معرف مخزن المتجهات للبحث
        queries: قائمة بسلاسل استعلام البحث
        num_results: عدد النتائج لكل استعلام
        batch_size: عدد الطلبات المتوازية
        
    Returns:
        قائمة بنتائج البحث
    """
    headers = {
        "x-api-key": "YOUR_API_KEY"
    }
    
    results = []
    
    # المعالجة في دفعات لتجنب إغراق واجهة برمجة التطبيقات
    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)
            
            # جمع النتائج من جميع المستقبلات
            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",
    "بروتوكولات المصادقة",
    "كيفية النشر في الإنتاج",
    "تقنيات تحسين الأداء",
    "أفضل الممارسات في معالجة الأخطاء"
]

search_results = batch_search_vector_store("vs_abc123", queries, num_results=3, batch_size=5)
/**
 * إجراء عمليات بحث جماعية ضد مخزن المتجهات
 * 
 * @param {string} vectorStoreId - معرف مخزن المتجهات
 * @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';
  
  // المعالجة في دفعات لإدارة تحميل واجهة برمجة التطبيقات
  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",
  "بروتوكولات المصادقة",
  "كيفية النشر في الإنتاج",
  "تقنيات تحسين الأداء",
  "أفضل الممارسات في معالجة الأخطاء"
];

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] معرف متجر المتجهات
# @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
    
    # جمع النتائج من جميع المستقبلات
    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",
  "بروتوكولات المصادقة",
  "كيفية النشر في الإنتاج", 
  "تقنيات تحسين الأداء",
  "أفضل الممارسات في التعامل مع الأخطاء"
]

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

puts results

تحسين الأداء لعمليات الدفعات

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

  1. حجم الدفعة الأمثل: بالنسبة لمعظم التطبيقات، فإن معالجة 5-10 استفسارات في وقت واحد توفر توازنًا جيدًا بين الإنتاجية واستخدام الموارد.

  2. الوعي بتحديد المعدل: قم بتضمين آليات تأخير بين الدفعات (عادةً 1-2 ثانية) لتجنب الوصول إلى حدود معدل واجهة برمجة التطبيقات.

  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-24T23:05:05.101Z",
        "vector_store": "text",
        "created": "2025-05-24T23:05:05.101Z",
        "modified": "2025-05-24T23:05:05.101Z"
      },
      "matched_content": "text",
      "distance": 1
    }
  ]
}
  • GET/vector-stores/{vector-store-id}/documents/search
  • طلبات مثال
  • معلمات المسار
  • معلمات الاستعلام
  • تنسيق الاستجابة
  • المصادقة
  • استجابات الخطأ
  • نصائح تحسين البحث
  • نوافذ السياق
  • عتبة المطابقة
  • العمليات الجماعية
  • تنفيذ البحث الجماعي
  • تحسين الأداء لعمليات الدفعات