Aracılığıyla paylaş


Veri kaynağı - Elasticsearch (önizleme)

Verilerinizde Azure OpenAI kullanırken Elasticsearch için yapılandırılabilir seçenekler. Bu veri kaynağı API sürümünde 2024-02-15-previewdesteklenir.

Adı Tür Zorunlu Açıklama
parameters Parametreler True Elasticsearch yapılandırırken kullanılacak parametreler.
type Dize True olmalıdır elasticsearch.

Parametreler

Ad Tür Zorunlu Açıklama
endpoint Dize True Elasticsearch kaynağının kullanması için mutlak uç nokta yolu.
index_name Dize True Başvuruda bulunan Elasticsearch'te kullanılacak dizinin adı.
authentication KeyAndKeyIdAuthenticationOptions, EncodedApiKeyAuthenticationOptions biri True Tanımlanan veri kaynağına erişirken kullanılacak kimlik doğrulama yöntemi.
embedding_dependency DeploymentNameVectorizationSource, EndpointVectorizationSource, ModelIdVectorizationSource'lardan biri False Vektör araması için ekleme bağımlılığı. olduğunda query_type vectorgereklidir.
fields_mapping FieldsMappingOptions False Arama diziniyle etkileşim kurarken kullanılacak özelleştirilmiş alan eşleme davranışı.
in_scope boolean False Sorguların dizine alınan verilerin kullanımıyla sınırlandırılıp kısıtlanmaması gerektiği. Varsayılan True değeridir.
query_type QueryType False Elasticsearch ile kullanılacak sorgu türü. Varsayılan değer: simple
role_information Dize False Modele nasıl davranması gerektiği ve yanıt oluştururken başvurması gereken bağlamlar hakkında yönergeler verin. Yardımcının kişiliğini açıklayabilir ve yanıtları nasıl biçimlendirebileceğini anlatabilirsiniz.
strictness integer False Arama ilgi filtresinin yapılandırılmış katılığı. Katılık ne kadar yüksekse, duyarlık o kadar yüksektir ancak yanıtın daha düşük geri çağrılır. Varsayılan 3 değeridir.
top_n_documents integer False Yapılandırılan sorgu için öne çıkan en fazla belge sayısı. Varsayılan 5 değeridir.

Anahtar ve anahtar kimliği kimlik doğrulaması seçenekleri

API anahtarı kullanırken Verilerinizde Azure OpenAI kimlik doğrulama seçenekleri.

Adı Tür Zorunlu Açıklama
key Dize True Kimlik doğrulaması için kullanılacak Elasticsearch anahtarı.
key_id Dize True Kimlik doğrulaması için kullanılacak Elasticsearch anahtar kimliği.
type Dize True olmalıdır key_and_key_id.

Kodlanmış API anahtarı kimlik doğrulama seçenekleri

Elasticsearch kodlanmış API anahtarı kullanırken Verilerinizde Azure OpenAI kimlik doğrulama seçenekleri.

Adı Tür Zorunlu Açıklama
encoded_api_key Dize True Kimlik doğrulaması için kullanılacak Elasticsearch kodlanmış API anahtarı.
type Dize True olmalıdır encoded_api_key.

Dağıtım adı vektörleştirme kaynağı

Vektör aramasını uygularken Verilerinizde Azure OpenAI tarafından kullanılan vektörleştirme kaynağının ayrıntıları. Bu vektörleştirme kaynağı, aynı Azure OpenAI kaynağındaki iç ekleme modeli dağıtım adını temel alır. Bu vektörleştirme kaynağı, Azure OpenAI api anahtarı olmadan ve Azure OpenAI genel ağ erişimi olmadan vektör araması kullanmanıza olanak tanır.

Adı Tür Zorunlu Açıklama
deployment_name Dize True Aynı Azure OpenAI kaynağı içindeki ekleme modeli dağıtım adı.
type Dize True olmalıdır deployment_name.

Uç nokta vektörleştirme kaynağı

Vektör aramasını uygularken Verilerinizde Azure OpenAI tarafından kullanılan vektörleştirme kaynağının ayrıntıları. Bu vektörleştirme kaynağı, Azure OpenAI ekleme API'sinin uç noktasını temel alır.

Adı Tür Zorunlu Açıklama
endpoint Dize True Eklemelerin alınması gereken kaynak uç noktası URL'sini belirtir. biçiminde https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddingsolmalıdır. Api sürümü sorgu parametresine izin verilmiyor.
authentication ApiKeyAuthenticationOptions True Belirtilen uç noktadan eklemeleri alırken kullanılacak kimlik doğrulama seçeneklerini belirtir.
type Dize True olmalıdır endpoint.

Model Kimliği vektörleştirme kaynağı

Vektör aramasını uygularken Verilerinizde Azure OpenAI tarafından kullanılan vektörleştirme kaynağının ayrıntıları. Bu vektörleştirme kaynağı Elasticsearch model kimliğini temel alır.

Adı Tür Zorunlu Açıklama
model_id Dize True Vektörleştirme için kullanılacak model kimliğini belirtir. Bu model kimliği Elasticsearch'te tanımlanmalıdır.
type Dize True olmalıdır model_id.

API anahtarı kimlik doğrulama seçenekleri

API anahtarı kullanırken Verilerinizde Azure OpenAI kimlik doğrulama seçenekleri.

Adı Tür Zorunlu Açıklama
key Dize True Kimlik doğrulaması için kullanılacak API anahtarı.
type Dize True olmalıdır api_key.

Alan eşleme seçenekleri

Yapılandırılmış bir Elasticsearch kaynağı kullanılırken alanların nasıl işlendiğini denetlemek için isteğe bağlı ayarlar.

Adı Tür Zorunlu Açıklama
content_fields string[] False İçerik olarak ele alınması gereken dizin alanlarının adları.
vector_fields string[] False Vektör verilerini temsil eden alanların adları.
content_fields_separator Dize False İçerik alanlarının kullanması gereken ayırıcı desen. Varsayılan \n değeridir.
filepath_field Dize False Dosya yolu olarak kullanılacak dizin alanının adı.
title_field Dize False Başlık olarak kullanılacak dizin alanının adı.
url_field Dize False URL olarak kullanılacak dizin alanının adı.

Sorgu türü

Verilerinizde Azure OpenAI ile kullanılırken yürütülmesi gereken Elasticsearch alma sorgusunun türü.

Sabit Listesi Değeri Açıklama
simple Varsayılan, basit sorgu ayrıştırıcısını temsil eder.
vector Hesaplanan veriler üzerinde vektör aramalarını temsil eder.

Örnekler

Ön koşullar:

  • Kullanıcıdan Azure OpenAI kaynağına rol atamalarını yapılandırın. Gerekli rol: Cognitive Services OpenAI User.
  • Az CLI'yi yükleyin ve çalıştırınaz login.
  • Aşağıdaki ortam değişkenlerini tanımlayın: AzureOpenAIEndpoint, ChatCompletionsDeploymentName, SearchEndpoint, IndexName, Key, KeyId.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint='https://example.eastus.azurecontainer.io'
export IndexName=testindex
export Key='***'
export KeyId='***'

En son pip paketlerini openaiyükleyin, azure-identity.

import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = os.environ.get("AzureOpenAIEndpoint")
deployment = os.environ.get("ChatCompletionsDeploymentName")
index_name = os.environ.get("IndexName")
search_endpoint = os.environ.get("SearchEndpoint")
key = os.environ.get("Key")
key_id = os.environ.get("KeyId")

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
    api_version="2024-02-15-preview",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "Who is DRI?",
        },
    ],
    extra_body={
        "data_sources": [
            {
                "type": "elasticsearch",
                "parameters": {
                    "endpoint": search_endpoint,
                    "index_name": index_name,
                    "authentication": {
                        "type": "key_and_key_id",
                        "key": key,
                        "key_id": key_id
                    }
                }
            }
        ]
    }
)

print(completion.model_dump_json(indent=2))