OpenAI

يتكامل ميلفوس مع نماذج OpenAI عبر فئة OpenAIEmbeddingFunction. توفّر هذه الفئة طرقًا لترميز المستندات والاستعلامات باستخدام نماذج OpenAI المُدرّبة مسبقًا وإرجاع التضمينات كمتجهات كثيفة متوافقة مع فهرسة Milvus. للاستفادة من هذه الوظيفة، احصل على مفتاح API من OpenAI من خلال إنشاء حساب على منصتهم.

لاستخدام هذه الميزة، قم بتثبيت التبعيات اللازمة:

pip install --upgrade pymilvus
pip install "pymilvus[model]"

بعد ذلك، قم بإنشاء OpenAIEmbeddingFunction:

from pymilvus import model

openai_ef = model.dense.OpenAIEmbeddingFunction(
    model_name='text-embedding-3-large', # Specify the model name
    api_key='YOUR_API_KEY', # Provide your OpenAI API key
    dimensions=512 # Set the embedding dimensionality
)

المعلمات:

  • اسم_النموذج(سلسلة)

    اسم نموذج OpenAI المراد استخدامه للترميز. الخيارات الصالحة هي text-تضمين النص-3-small، و text-تضمين النص-3-large، و text-تضمين النص-AD-002 (افتراضي).

  • مفتاح_API(سلسلة)

    مفتاح واجهة برمجة التطبيقات للوصول إلى واجهة برمجة تطبيقات OpenAI.

  • عنوان URL الأساسي(سلسلة)

    عنوان URL الأساسي للوصول إلى OpenAI API. يتم تعيين القيمة افتراضيًا إلى https://api.openai.com/v1. ومع ذلك، إذا كنت تقوم بالوصول إلى نقطة نهاية واجهة برمجة تطبيقات متوافقة لموفر نموذج مختلف أو مثيل vLLM محلي، مثل http://localhost:8080/v1، يمكنك تحديد عنوان URL هنا.

  • الأبعاد(int)

    عدد الأبعاد التي يجب أن تحتويها التضمينات الناتجة. مدعوم فقط في نموذج تضمين النص-3 والنماذج الأحدث.

لإنشاء تضمينات للمستندات، استخدم طريقة encode_documents():

docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]

docs_embeddings = openai_ef.encode_documents(docs)

# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", openai_ef.dim, docs_embeddings[0].shape)

يكون الناتج المتوقع مشابهًا لما يلي:

Embeddings: [array([ 1.76741909e-02, -2.04964578e-02, -1.09788161e-02, -5.27223349e-02,
        4.23139781e-02, -6.64533582e-03,  4.21088142e-03,  1.04644023e-01,
        5.10009527e-02,  5.32827862e-02, -3.26061808e-02, -3.66494283e-02,
...
       -8.93232748e-02,  6.68255147e-03,  3.55093405e-02, -5.09071983e-02,
        3.74144339e-03,  4.72541340e-02,  2.11916920e-02,  1.00753829e-02,
       -5.76633997e-02,  9.68257990e-03,  4.62721288e-02, -4.33261096e-02])]
Dim: 512 (512,)

لإنشاء تضمينات للاستعلامات، استخدم الأسلوب encode_queries():

queries = ["When was artificial intelligence founded", 
           "Where was Alan Turing born?"]

query_embeddings = openai_ef.encode_queries(queries)

# Print embeddings
print("Embeddings:", query_embeddings)
# Print dimension and shape of embeddings
print("Dim", openai_ef.dim, query_embeddings[0].shape)

الناتج المتوقع مشابه لما يلي:

Embeddings: [array([ 0.00530251, -0.01907905, -0.01672608, -0.05030033,  0.01635982,
       -0.03169853, -0.0033602 ,  0.09047844,  0.00030747,  0.11853652,
       -0.02870182, -0.01526102,  0.05505067,  0.00993909, -0.07165466,
...
       -9.78106782e-02, -2.22669560e-02,  1.21873049e-02, -4.83198799e-02,
        5.32377362e-02, -1.90469325e-02,  5.62430918e-02,  1.02650477e-02,
       -6.21757433e-02,  7.88027793e-02,  4.91846527e-04, -1.51633881e-02])]
Dim 512 (512,)
جدول المحتويات

جرب Managed Milvus مجاناً

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

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

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