بيدروكCompatible with Milvus 2.6.x

يصف هذا الموضوع كيفية تكوين واستخدام وظائف تضمين Amazon Bedrock في Milvus.

اختر نموذج التضمين

يدعم Milvus نماذج التضمين التي توفرها Amazon Bedrock. فيما يلي نماذج التضمين المتوفرة حالياً للرجوع إليها بسرعة:

اسم النموذج

الأبعاد

الحد الأقصى للرموز

الوصف

amazon.titan-embed-text-v2:0

1،024 (افتراضي)، 512، 256

8,192

RAG، والبحث عن المستندات، وإعادة التصنيف، والتصنيف، إلخ.

للحصول على التفاصيل، راجع نماذج تضمين النص من أمازون تيتان تيتان.

تكوين بيانات الاعتماد

يجب أن يعرف Milvus بيانات اعتماد الوصول إلى Bedrock قبل أن يتمكن من طلب التضمينات. يوفر ميلفوس طريقتين لتكوين بيانات الاعتماد:

  • ملف التكوين (موصى به): قم بتخزين بيانات الاعتماد في milvus.yaml بحيث تلتقطها كل إعادة تشغيل وعقدة تلقائيًا.

  • متغيرات البيئة: أدخل بيانات الاعتماد في وقت النشر - مثالي لـ Docker Compose.

اختر واحدة من الطريقتين أدناه - ملف التكوين أسهل في الحفاظ عليه على الأجهزة العارية والأجهزة الافتراضية، بينما يناسب مسار env-var سير عمل الحاوية.

في حالة وجود بيانات اعتماد لنفس الموفر في كل من ملف التكوين ومتغير البيئة، يستخدم Milvus دائمًا القيمة الموجودة في milvus.yaml ويتجاهل متغير البيئة.

احتفظ ببيانات الاعتماد الخاصة بك في milvus.yaml ؛ يقرأها Milvus عند بدء التشغيل ويتجاوز أي متغير بيئة لنفس الموفر.

  1. **أعلن بيانات الاعتماد الخاصة بك ضمن credential:

    يمكنك إدراج واحد أو أكثر من بيانات الاعتماد - أعطِ كل منها تسمية تخترعها وستشير إليها لاحقًا.

    # milvus.yaml
    credential:
      aksk_dev:            # dev environment
        access_key_id: <YOUR_DEV_ACCESS_KEY_ID>
        secret_access_key: <YOUR_DEV_SECRET_ACCESS_KEY>
      aksk_prod:           # production environment
        access_key_id: <YOUR_PROD_ACCESS_KEY_ID>    
        secret_access_key: <YOUR_PROD_SECRET_ACCESS_KEY>
    

    إن وضع بيانات الاعتماد هنا يجعلها ثابتة عبر عمليات إعادة التشغيل ويتيح لك تبديل بيانات الاعتماد بمجرد تغيير التسمية.

  2. أخبر ميلفوس ببيانات الاعتماد التي ستستخدمها لاستدعاءات الخدمة

    في نفس الملف، وجّه موفر Bedrock إلى التسمية التي تريده أن يستخدمها.

    function:
      textEmbedding:
        providers:
          bedrock:
            credential: aksk_dev      # ← choose any label you defined above
    

    هذا يربط بيانات اعتماد محددة لكل طلب يرسله ميلفوس إلى خدمة تضمين Bedrock.

الخيار 2: متغير البيئة

استخدم هذه الطريقة عندما تقوم بتشغيل Milvus مع Docker Compose وتفضل الاحتفاظ بالأسرار خارج الملفات والصور.

يعود Milvus إلى متغير البيئة فقط إذا لم يتم العثور على بيانات اعتماد للموفر في milvus.yaml.

المتغير

مطلوب

الوصف

MILVUSAI_BEDROCK_ACCESS_KEY_ID

نعم

معرف مفتاح وصول AWS الخاص بك المستخدم للمصادقة مع خدمة Bedrock.

MILVUSAI_BEDROCK_SECRET_ACCESS_KEY

نعم

مفتاح وصول AWS السري الخاص بك المطابق لمعرف مفتاح الوصول الخاص بك.

في ملف docker-compose.yaml الخاص بك، قم بتعيين متغير البيئة MILVUSAI_OPENAI_API_KEY.

# docker-compose.yaml (standalone service section)
standalone:
  # ... other configurations ...
  environment:
    # ... other environment variables ...
    # Set the environment variable pointing to the Bedrock embedding service inside the container
    MILVUSAI_BEDROCK_ACCESS_KEY_ID: <MILVUSAI_BEDROCK_ACCESS_KEY_ID>
    MILVUSAI_BEDROCK_SECRET_ACCESS_KEY: <MILVUSAI_BEDROCK_SECRET_ACCESS_KEY>

تقوم كتلة environment: بحقن المفتاح فقط في حاوية Milvus، تاركةً نظام التشغيل المضيف الخاص بك دون أن يمسها. لمزيد من التفاصيل، راجع تكوين Milvus مع Docker Compose.

استخدام وظيفة التضمين

بمجرد تكوين بيانات الاعتماد، اتبع هذه الخطوات لتعريف دوال التضمين واستخدامها.

الخطوة 1: تحديد حقول المخطط

لاستخدام دالة التضمين، قم بإنشاء مجموعة بمخطط محدد. يجب أن يتضمن هذا المخطط ثلاثة حقول ضرورية على الأقل:

  • الحقل الأساسي الذي يحدد بشكل فريد كل كيان في المجموعة.

  • حقل قياسي يخزن البيانات الأولية المراد تضمينها.

  • حقل متجه محجوز لتخزين التضمينات المتجهة التي ستقوم الدالة بإنشائها للحقل القياسي.

يحدد المثال التالي مخططًا يحتوي على حقل قياسي واحد "document" لتخزين البيانات النصية وحقل متجه واحد "dense" لتخزين التضمينات التي سيتم إنشاؤها بواسطة الوحدة النمطية للدالة. تذكر تعيين البعد المتجه (dim) لمطابقة مخرجات نموذج التضمين الذي اخترته.

from pymilvus import MilvusClient, DataType, Function, FunctionType

# Initialize Milvus client
client = MilvusClient(
    uri="http://localhost:19530",
)

# Create a new schema for the collection
schema = client.create_schema()

# Add primary field "id"
schema.add_field("id", DataType.INT64, is_primary=True, auto_id=False)

# Add scalar field "document" for storing textual data
schema.add_field("document", DataType.VARCHAR, max_length=9000)

# Add vector field "dense" for storing embeddings.
# IMPORTANT: Set dim to match the exact output dimension of the embedding model.
schema.add_field("dense", DataType.FLOAT_VECTOR, dim=1024)

الخطوة 2: إضافة دالة إلى المخطط

تقوم الوحدة النمطية الدالة في ميلفوس تلقائيًا بتحويل البيانات الأولية المخزنة في حقل قياسي إلى تضمينات وتخزينها في حقل المتجه المحدد صراحة.

يضيف المثال أدناه وحدة الدالة (bedrk) التي تقوم بتحويل الحقل القياسي "document" إلى تضمينات، وتخزين المتجهات الناتجة في الحقل المتجه "dense" المحدد مسبقًا.

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

# Define embedding function specifically for OpenAI provider
text_embedding_function = Function(
    name="bedrk",                                   # Unique identifier for this embedding function
    function_type=FunctionType.TEXTEMBEDDING,       # Indicates a text embedding function
    input_field_names=["document"],                 # Scalar field(s) containing text data to embed
    output_field_names=["dense"],                   # Vector field(s) for storing embeddings
    params={                                      # Provider-specific embedding parameters (function-level)
        "provider": "bedrock",                      # Must be set to "bedrock"
        "model_name": "amazon.titan-embed-text-v2:0",    # Specifies the embedding model to use
        "region": "us-east-2",                           # Required: AWS region where the Bedrock service is hosted     
        # Optional parameters:
        # "credential": "aksk_dev",               # Optional: Credential label specified in milvus.yaml
        # "dim": "1024",                          # Output dimension of the vector embeddings after truncation
        # "normalize": "true",                    # Whether to normalize the output embeddings
    }
)

# Add the configured embedding function to your existing collection schema
schema.add_function(text_embedding_function)

الخطوات التالية

بعد تكوين دالة التضمين، ارجع إلى نظرة عامة على الدالة للحصول على إرشادات إضافية حول تكوين الفهرس وأمثلة إدراج البيانات وعمليات البحث الدلالي.

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟