Azure AI 검색에서 지식 기반 만들기

참고

Azure AI 검색 Azure 포털, REST API 및 Azure SDK 통해 사용할 수 있습니다. 또한 엔터프라이즈 콘텐츠를 Microsoft Foundry 포털의 에이전트에 대해 재사용 가능한 사용 권한 인식 기술 자료로 변환하는 관리되는 기술 계층인 Foundry IQ를 뒷받침합니다.

중요

기능, 기능 또는 표시된 속성(미리 보기)은 서비스 수준 계약에 포함되지 않으며 프로덕션 워크로드에는 권장되지 않으며 일반적으로 사용 가능해지기 전에 변경되거나 제한될 수 있습니다. Azure AI 검색 미리 보기 용어는 독립 실행형 기능이든 일반 공급 기능의 일부이든 관계없이 모든 미리 보기 기능에 적용됩니다.

Azure AI 검색에서 지식 베이스는 에이전트 검색을 오케스트레이션하는 최상위 개체입니다. 쿼리할 기술 자료와 검색 작업에 대한 기본 동작을 정의합니다. 쿼리 시 검색 메서드 는 기술 자료를 대상으로 하여 구성된 검색 파이프라인을 실행합니다.

지식 베이스는 다음을 지정합니다.

  • 검색 가능한 콘텐츠를 가리키는 하나 이상의 기술 자료입니다.

  • 쿼리 계획, 응답 합성 또는 웹 콘텐츠 요약을 위한 선택적 LLM입니다. 지원되는 작업은 API 버전 및 기술 자료 유형에 따라 다릅니다.

  • 라우팅, 원본 선택 및 개체 암호화를 제어하는 사용자 지정 속성입니다.

사용량 지원

Azure 포털 Microsoft Foundry 포털 .NET SDK Python SDK Java SDK JavaScript SDK REST API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

필수 구성 요소

  • 에이전트 검색을 제공하는 모든 지역의 Azure AI 검색. 배포된 모델에 대한 역할 기반 액세스에 관리 ID 를 사용하는 경우 검색 서비스는 기본 계층 이상에 있어야 합니다.

  • 하나 이상의 지식 출처. 2026-08-01-preview API 버전을 사용하여 미리 보기 지식 원본에 액세스하거나 웹이 아닌 지식 원본과 함께 LLM을 사용합니다. 2026-04-01 일반적으로 사용 가능한 지식 원본 및 최소한의 추출 검색에 API 버전을 사용합니다.

  • (조건부) 지원되는 LLM 배포를 사용하는 Azure OpenAI 기술 자료에 웹 지식 원본이 포함된 경우 LLM이 필요합니다. 다른 지식 원본의 경우 LLM은 API 버전에서 2026-08-01-preview 선택 사항이며 API 버전에서는 2026-04-01 지원되지 않습니다.

  • 기술 자료를 만들 수 있는 권한입니다. 사용자 계정에 할당된 Search Service 기여자 역할로 키 없는 인증을 구성하거나(권장) 관리자 API 키를 사용합니다.

  • 기술 자료에서 LLM을 지정하는 경우 검색 서비스에는 Microsoft Foundry 리소스에 대한 Cognitive Services 사용자 권한이 있는 관리 ID가 있어야 합니다.

  • 필수 Azure.Search.Documents 패키지:

    • 2026-08-01-preview 기능의 경우, 최신 미리 보기 패키지: dotnet add package Azure.Search.Documents --prerelease

    • 2026-04-01 기능의 경우, 최신 안정화 패키지: dotnet add package Azure.Search.Documents

  • 키 없는 인증의 경우 패키지:Azure.Identitydotnet add package Azure.Identity

  • 필수 azure-search-documents 패키지:

    • 2026-08-01-preview 기능의 경우, 최신 미리 보기 패키지: pip install --pre azure-search-documents

    • 2026-04-01 기능의 경우, 최신 안정화 패키지: pip install azure-search-documents

  • 키 없는 인증의 경우 패키지:azure-identitypip install azure-identity

지원되는 모델

Foundry 모델의 Azure OpenAI에서 다음 LLM 중 하나를 사용합니다. Azure OpenAI는 선택한 배포에 대한 지역별 가용성을 결정합니다. 배포 지침은 Foundry 포털에서 Microsoft Foundry 모델 배포 참조하세요.

GPT-4 제품군은 더 이상 사용되지 않습니다. 모델 수명 주기 지침, 사용 중지 날짜 및 현재 상태는 모델 사용 중지 및 사용 중단 및모델 사용 중지 일정(Microsoft Foundry)을 참조하세요.

모델 지원되는 API 버전
gpt-4o(더 이상 사용되지 않음) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4o-mini(더 이상 사용되지 않음) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1(더 이상 사용되지 않음) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-mini(더 이상 사용되지 않음) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-nano(더 이상 사용되지 않음) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5-mini 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5-nano 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-5.1 2026-05-01-preview, 2026-08-01-preview
gpt-5.2 2026-05-01-preview, 2026-08-01-preview
gpt-5.4 2026-05-01-preview, 2026-08-01-preview
gpt-5.4-mini 2026-05-01-preview, 2026-08-01-preview
gpt-5.4-nano 2026-05-01-preview, 2026-08-01-preview
gpt-5.5 2026-08-01-preview
gpt-5.6-sol 2026-08-01-preview
gpt-5.6-terra 2026-08-01-preview
gpt-5.6-luna 2026-08-01-preview

액세스 구성

Foundry Models에서의 Azure OpenAI의 Azure OpenAI에서 LLM에 액세스해야 합니다. 인증 및 권한 부여를 위한 역할 기반 액세스를 위해 Microsoft Entra ID 것이 좋습니다. 역할을 할당하려면 소유자 또는 사용자 액세스 관리자여야 합니다. 역할을 사용할 수 없는 경우 대신 키 기반 인증을 사용합니다.

  1. Azure AI 검색 역할 기반 액세스 제어를 사용하도록 설정합니다.

  2. 관리 ID를 사용하도록 Azure AI 검색 구성합니다.

  3. 모델 공급자에서 Cognitive Services 사용자를 검색 서비스의 관리 ID에 할당합니다. 로컬에서 테스트하는 경우 사용자 계정에 동일한 역할을 할당합니다.

  4. 로컬 테스트의 경우 빠른 시작의 단계를 수행합니다. 키 없이 연결 하여 특정 구독 및 테넌트에 로그인합니다. 각 요청에서 DefaultAzureCredential 대신 AzureKeyCredential를 사용하세요. 이는 다음 예와 유사해야 합니다.

    // Authenticate using roles
    using Azure.Search.Documents.Indexes;
    using Azure.Identity;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
    
  1. Azure AI 검색 역할 기반 액세스 제어를 사용하도록 설정합니다.

  2. 관리 ID를 사용하도록 Azure AI 검색 구성합니다.

  3. 모델 공급자에서 Cognitive Services 사용자를 검색 서비스의 관리 ID에 할당합니다. 로컬에서 테스트하는 경우 사용자 계정에 동일한 역할을 할당합니다.

  4. 로컬 테스트의 경우 빠른 시작의 단계를 수행합니다. 키 없이 연결 하여 특정 구독 및 테넌트에 로그인합니다. 각 요청에서 DefaultAzureCredential 대신 AzureKeyCredential를 사용하세요. 이는 다음 예와 유사해야 합니다.

    # Authenticate using roles
    from azure.identity import DefaultAzureCredential
    index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
    
  1. Azure AI 검색 역할 기반 액세스 제어를 사용하도록 설정합니다.

  2. 관리 ID를 사용하도록 Azure AI 검색 구성합니다.

  3. 모델 공급자에서 Cognitive Services 사용자를 검색 서비스의 관리 ID에 할당합니다. 로컬에서 테스트하는 경우 사용자 계정에 동일한 역할을 할당합니다.

  4. 로컬 테스트의 경우 빠른 시작의 단계를 수행합니다. 키 없이 연결 하여 특정 구독 및 테넌트에 대한 개인 액세스 토큰을 가져옵니다. 각 요청에서 액세스 토큰을 지정합니다. 이 토큰은 다음 예제와 유사합니다.

    # List indexes using roles
    GET {{search-endpoint}}/indexes?api-version=2026-04-01
    Content-Type: application/json
    Authorization: Bearer {{search-access-token}}
    

중요

이 문서의 코드 조각은 키 없는 인증을 사용합니다. 대신 API 키를 사용하려면 각 요청을 적절하게 업데이트합니다. 두 방법을 모두 지정하는 요청에서 API 키가 우선합니다.

기존 기술 자료 확인

기술 자료는 재사용 가능한 최상위 개체입니다. 기존 기술 자료에 대해 아는 것은 새 개체를 다시 사용하거나 이름을 지정하는 데 유용합니다.

다음 코드를 실행하여 이름별로 기존 기술 자료를 나열합니다. 목록에는 검색 서비스를 만드는 데 사용한 API 버전에 관계없이 검색 서비스의 모든 기술 자료가 포함됩니다.

// List knowledge bases by name
using Azure.Search.Documents.Indexes;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeBases = indexClient.GetKnowledgeBasesAsync();

Console.WriteLine("Knowledge Bases:");

await foreach (var kb in knowledgeBases)
{
    Console.WriteLine($"  - {kb.Name}");
}

참조:SearchIndexClient

# List knowledge bases by name
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())

for kb in index_client.list_knowledge_bases():
    print(f"  - {kb.name}")

참조:SearchIndexClient

# List knowledge bases
GET {{search-endpoint}}/knowledgebases?api-version={{api-version}}&$select=name
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

참조:기술 자료 - 목록

이름으로 단일 기술 자료를 반환하여 JSON 정의를 검토할 수도 있습니다.

using Azure.Search.Documents.Indexes;
using System.Text.Json;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);

// Specify the knowledge base name to retrieve
string kbNameToGet = "earth-knowledge-base";

// Get a specific knowledge base definition
var knowledgeBaseResponse = await indexClient.GetKnowledgeBaseAsync(kbNameToGet);
var kb = knowledgeBaseResponse.Value;

// Serialize to JSON for display
string json = JsonSerializer.Serialize(kb, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);

참조:SearchIndexClient

# Get a knowledge base definition
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
import json

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())

kb = index_client.get_knowledge_base("<knowledge-base-name>")
print(json.dumps(kb.as_dict(), indent = 2))

참조:SearchIndexClient

# Get knowledge base
GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

참조:기술 자료 - 가져오기

다음 JSON은 기술 자료에 대한 예제 응답입니다.

{
  "name": "my-kb",
  "description": "A sample knowledge base.",
  "retrievalInstructions": null,
  "answerInstructions": null,
  "outputMode": null,
  "knowledgeSources": [
    {
      "name": "my-blob-ks"
    }
  ],
  "models": [],
  "encryptionKey": null,
  "retrievalReasoningEffort": {
    "kind": "low"
  }
}

참고

응답 스키마는 기술 자료를 만드는 데 사용한 API 버전을 반영합니다. 일반적으로 사용 가능한 2026-04-01 API 버전으로 만든 기술 자료는 보다 2026-08-01-preview더 좁은 정의를 반환합니다. 각 버전이 지원하는 속성에 대한 자세한 내용은 기술 자료 만들기를 참조하세요.

기술 자료 만들기

중요

2026-04-01 API 버전은 일반적으로 사용 가능한 기술 원본 유형만 허용하며 최소한의 추출 검색을 지원합니다. 쿼리 계획, 응답 합성 및 구성 가능한 추론 노력과 같은 미리 보기 전용 기능은 지원하지 않습니다. 전체 기능을 사용하려면 .를 사용합니다 2026-08-01-preview.

지식 베이스는 하나 이상의 지식 소스(검색 가능한 콘텐츠)를 Foundry 모델의 Azure OpenAI의 선택적 LLM에 연결합니다. 설정한 속성은 쿼리 실행 및 검색 응답에 대한 기본값을 설정합니다.

기술 자료를 만든 후 언제든지 해당 속성을 업데이트할 수 있습니다. 기술 자료가 사용 중인 경우 업데이트는 다음 검색에 적용됩니다.

// Create a knowledge base
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure.Identity;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());

var aoaiParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri(aoaiEndpoint),
    DeploymentName = aoaiGptDeployment,
    ModelName = aoaiGptModel,
};

var knowledgeBase = new KnowledgeBase(
    name: "my-kb",
    knowledgeSources: new KnowledgeSourceReference[]
    {
        new KnowledgeSourceReference("hotels-ks"),
        new KnowledgeSourceReference("earth-at-night-ks")
    }
)
{
    Description = "This knowledge base handles questions directed at two unrelated sample indexes.",
    RetrievalInstructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
    AnswerInstructions = "Answer in two concise sentences.",
    OutputMode = KnowledgeRetrievalOutputMode.AnswerSynthesis,
    Models = { new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: aoaiParams) },
    RetrievalReasoningEffort = new KnowledgeRetrievalAutoReasoningEffort()
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Console.WriteLine($"Knowledge base '{knowledgeBase.Name}' created or updated successfully.");

참조:SearchIndexClient, KnowledgeBase

# Create a knowledge base
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    AzureOpenAIVectorizerParameters,
    KnowledgeBase,
    KnowledgeBaseAzureOpenAIModel,
    KnowledgeSourceReference,
)
from azure.search.documents.knowledgebases.models import (
    KnowledgeRetrievalAutoReasoningEffort,
    KnowledgeRetrievalOutputMode,
)

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())

aoai_params = AzureOpenAIVectorizerParameters(
    resource_url = "<aoai-endpoint>",
    deployment_name = "<aoai-gpt-deployment>",
    model_name = "<aoai-gpt-model>",
)

knowledge_base = KnowledgeBase(
    name = "my-kb",
    description = "This knowledge base handles questions directed at two unrelated sample indexes.",
    retrieval_instructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
    answer_instructions = "Answer in two concise sentences.",
    output_mode = KnowledgeRetrievalOutputMode.ANSWER_SYNTHESIS,
    knowledge_sources = [
        KnowledgeSourceReference(name = "hotels-ks"),
        KnowledgeSourceReference(name = "earth-at-night-ks"),
    ],
    models = [KnowledgeBaseAzureOpenAIModel(azure_open_ai_parameters = aoai_params)],
    encryption_key = None,
    retrieval_reasoning_effort = KnowledgeRetrievalAutoReasoningEffort(),
)

index_client.create_or_update_knowledge_base(knowledge_base)
print(f"Knowledge base '{knowledge_base.name}' created or updated successfully.")

참조:SearchIndexClient, KnowledgeBase

# Create a knowledge base
PUT {{search-endpoint}}/knowledgebases/my-kb?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
    "name" : "my-kb",
    "description": "This knowledge base handles questions directed at two unrelated sample indexes.",
    "retrievalInstructions": "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
    "answerInstructions": "Answer in two concise sentences.",
    "outputMode": "answerSynthesis",
    "knowledgeSources": [
        {
            "name": "hotels-ks"
        },
        {
            "name": "earth-at-night-ks"
        }
    ],
    "models" : [
        {
            "kind": "azureOpenAI",
            "azureOpenAIParameters": {
                "resourceUri": "{{aoai-endpoint}}",
                "deploymentId": "gpt-5.4-mini",
                "modelName": "gpt-5.4-mini"
            }
        }
    ],
    "encryptionKey": null,
    "retrievalReasoningEffort": {
        "kind": "auto"
    }
}

참조:기술 자료 - 만들기 또는 업데이트

기본 검색 제한 구성(미리 보기)

2026-08-01-preview API 버전부터 선택적 retrieveDefaults 개체를 사용하여 기술 자료에 요청 전체 기본값을 저장할 수 있습니다. 저장된 각 속성은 검색 요청이 해당 요청 필드를 생략하는 경우에만 적용됩니다.

저장된 속성 요청 필드 검색
maxRuntimeInSeconds maxRuntimeInSeconds
maxOutputDocuments maxOutputDocuments
maxOutputSizeInTokens maxOutputSize

출력 토큰 예산은 저장 및 재정의될 때 다른 속성 이름을 사용합니다. maxOutputSizeInTokens에서 retrieveDefaults을 설정하고, 조회 요청에 maxOutputSize를 사용합니다.

각 속성의 유효 값은 다음 순서대로 독립적으로 결정됩니다.

  1. 검색 요청의 해당 값입니다.
  2. 기술 자료 retrieveDefaults 개체의 값입니다.
  3. 속성이 두 수준 모두에서 없을 때의 서비스 기본값

다음 예제에서는 명명 your-knowledge-source된 기존 검색 인덱스 지식 원본을 사용합니다. 45초 런타임 예산, 최대 8개의 출력 문서 및 12,000개의 토큰 출력 예산을 저장합니다.

using System;
using Azure.Identity;
using Azure.Search.Documents;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.Models;

string searchEndpoint = "<search-endpoint>";

var options = new SearchClientOptions(
    SearchClientOptions.ServiceVersion.V2026_08_01_Preview);
var indexClient = new SearchIndexClient(
    new Uri(searchEndpoint),
    new DefaultAzureCredential(),
    options);

var knowledgeBase = new KnowledgeBase(
    "your-knowledge-base",
    new[] { new KnowledgeSourceReference("your-knowledge-source") })
{
    Description = "A knowledge base for product support content.",
    RetrieveDefaults = new KnowledgeBaseRetrieveDefaults
    {
        MaxRuntimeInSeconds = 45,
        MaxOutputDocuments = 8,
        MaxOutputSizeInTokens = 12000
    }
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);

참조:SearchIndexClient, SearchClientOptions.ServiceVersion, KnowledgeBase

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    KnowledgeBase,
    KnowledgeBaseRetrieveDefaults,
    KnowledgeSourceReference,
)

search_endpoint = "<search-endpoint>"
index_client = SearchIndexClient(
    endpoint=search_endpoint,
    credential=DefaultAzureCredential(),
    api_version="2026-08-01-preview",
)

knowledge_base = KnowledgeBase(
    name="your-knowledge-base",
    description="A knowledge base for product support content.",
    knowledge_sources=[
        KnowledgeSourceReference(name="your-knowledge-source"),
    ],
    retrieve_defaults=KnowledgeBaseRetrieveDefaults(
        max_runtime_in_seconds=45,
        max_output_documents=8,
        max_output_size_in_tokens=12000,
    ),
)

index_client.create_or_update_knowledge_base(knowledge_base)

참조:SearchIndexClient, KnowledgeBase

PUT {{search-endpoint}}/knowledgebases/your-knowledge-base?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "your-knowledge-base",
  "description": "A knowledge base for product support content.",
  "knowledgeSources": [
    {
      "name": "your-knowledge-source"
    }
  ],
  "retrieveDefaults": {
    "maxRuntimeInSeconds": 45,
    "maxOutputDocuments": 8,
    "maxOutputSizeInTokens": 12000
  }
}

참조:기술 자료 - 만들기 또는 업데이트

이러한 저장된 값을 한 요청에 대해 20초, 문서 1개, 토큰 5,000개로 재정의하려면 기술 자료 검색 기본값 확인을 참조하세요.

브라우저 기반 검색 호출에 대한 CORS 구성(미리 보기)

중요

CORS(원본 간 리소스 공유)를 사용하면 브라우저 기반 애플리케이션이 서비스에서 직접 데이터를 요청할 수 있습니다. CORS 구성에 따라 외부 웹 페이지는 사용자의 브라우저 컨텍스트를 사용하여 서비스 및 해당 데이터에 액세스하거나 호출할 수 있습니다. 이 액세스는 보안 위협을 만들 수 있습니다. CORS를 사용하도록 설정하는 것은 사용자 고유의 위험에 처해 있습니다.

2026-05-01-preview API 버전부터 지식 기반은 JavaScript에서 retrieve 작업을 직접 호출하는 브라우저 기반 애플리케이션용으로 corsOptions를 정의할 수 있습니다. CORS 정책은 기술 자료에 검색 요청을 보낼 수 있는 브라우저 원본을 식별합니다.

생략 corsOptions하면 기술 자료에 CORS 정책이 없으며 브라우저는 원본 간 검색 요청을 차단합니다.

다음 예제에서는 하나의 브라우저 원본에서 요청을 검색할 수 있는 기술 자료를 만듭니다.

using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());

var knowledgeBase = new KnowledgeBase(
    name: "browser-chat-kb",
    knowledgeSources: new[] { new KnowledgeSourceReference("product-docs-ks") }
)
{
    Description = "A knowledge base that allows one browser app origin.",
    CorsOptions = new CorsOptions(new[] { "https://myapp.example.com" })
    {
        MaxAgeInSeconds = 300
    }
};

await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);

참조:CorsOptions, KnowledgeBase

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    CorsOptions,
    KnowledgeBase,
    KnowledgeSourceReference,
)

index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())

knowledge_base = KnowledgeBase(
    name="browser-chat-kb",
    description="A knowledge base that allows one browser app origin.",
    knowledge_sources=[KnowledgeSourceReference(name="product-docs-ks")],
    cors_options=CorsOptions(
        allowed_origins=["https://myapp.example.com"],
        max_age_in_seconds=300,
    ),
)

index_client.create_or_update_knowledge_base(knowledge_base)

참조:CorsOptions, KnowledgeBase

PUT {{search-endpoint}}/knowledgebases/browser-chat-kb?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

{
  "name": "browser-chat-kb",
  "description": "A knowledge base that allows one browser app origin.",
  "knowledgeSources": [
    {
      "name": "product-docs-ks"
    }
  ],
  "corsOptions": {
    "allowedOrigins": [
      "https://myapp.example.com"
    ],
    "maxAgeInSeconds": 300
  }
}

기술 자료 질의

지식 베이스를 만든 후 retrieve 작업 또는 MCP 엔드포인트를 호출해 질의하세요.

기술 자료 삭제

기술 자료가 더 이상 필요하지 않거나 검색 서비스에서 다시 빌드할 필요가 없는 경우 다음 코드를 실행하여 개체를 삭제합니다.

// Delete a knowledge base
using Azure.Search.Documents.Indexes;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);

await indexClient.DeleteKnowledgeBaseAsync(knowledgeBaseName);
System.Console.WriteLine($"Knowledge base '{knowledgeBaseName}' deleted successfully.");

참조:SearchIndexClient

# Delete a knowledge base
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient

index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
index_client.delete_knowledge_base("<knowledge-base-name>")
print(f"Knowledge base deleted successfully.")

참조:SearchIndexClient

# Delete a knowledge base
DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Authorization: Bearer {{search-access-token}}

참조:기술 자료 - 삭제