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

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

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
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-07-05T00:41:24.657Z",
        "modified_time": "2025-07-05T00:41:24.657Z",
        "indexed_on": "2025-07-05T00:41:24.657Z",
        "integration": {
          "id": 1,
          "integration_type": "text"
        }
      },
      "matched_content": "text",
      "distance": 1
    }
  ]
}

طلبات مثال

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 الفعلي الخاص بك.

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

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

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)

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

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

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

  2. تحديد المعدل: قم بتضمين تأخيرات بين الدفعات لمنع تقليل سرعة واجهة برمجة التطبيقات. نقطة انطلاق جيدة هي 1 ثانية بين الدفعات.

  3. معالجة الأخطاء: نفذ معالجة أخطاء قوية لإدارة الطلبات الفاشلة ضمن الدفعات.

  4. إدارة الموارد: راقب استخدام الموارد على جانب العميل، خاصة مع أحجام الدفعات الكبيرة، لمنع استهلاك الذاكرة بشكل مفرط.

  5. معالجة الاستجابة: قم بمعالجة نتائج الدفعة بشكل غير متزامن عند الإمكان لتحسين تجربة المستخدم.

بالنسبة للتطبيقات ذات الحجم الكبير، ضع في اعتبارك تنفيذ نظام قائمة لإدارة أعداد كبيرة من طلبات البحث بكفاءة.

توفر هذه النقطة واجهة قوية للبحث الدلالي عبر قاعدة معرفتك بالكامل. تستخدم تضمينات المتجهات للعثور على المحتوى بناءً على المعنى بدلاً من المطابقات الدقيقة للكلمات الرئيسية.

Last updated