참고
Azure AI 검색 Azure 포털, REST API 및 Azure SDK 통해 사용할 수 있습니다. 또한 엔터프라이즈 콘텐츠를 Microsoft Foundry 포털의 에이전트에 대해 재사용 가능한 사용 권한 인식 기술 자료로 변환하는 관리되는 기술 계층인 Foundry IQ를 뒷받침합니다.
Important
기능, 기능 또는 표시된 속성(미리 보기)은 서비스 수준 계약에 포함되지 않으며 프로덕션 워크로드에는 권장되지 않으며 일반적으로 사용 가능해지기 전에 변경되거나 제한될 수 있습니다. Azure AI 검색 미리 보기 용어는 독립 실행형 기능이든 일반 공급 기능의 일부이든 관계없이 모든 미리 보기 기능에 적용됩니다.
인덱싱된 SharePoint 지식 원본(미리 보기)은 Azure AI 검색 에이전트 검색 파이프라인에 SharePoint 콘텐츠를 수집합니다. 기술 원본은 독립적으로 생성되고, 기술 자료에서 참조되며, 런타임에 기술 자료를 쿼리할 때 접지 데이터로 사용됩니다.
인덱싱된 SharePoint 기술 원본을 만들 때 SharePoint 연결 문자열, 모델 및 속성을 지정하여 다음 Azure AI 검색 개체를 자동으로 생성합니다.
- SharePoint 사이트를 가리키며 연결 문자열을 변경하지 않고 사용하는 데이터 원본입니다. 생성된 데이터 원본은 SharePoint 인덱서의
TenantId규칙을 따릅니다. - 다중 모달 콘텐츠를 청크하고 선택적으로 벡터화하는 기술 세트입니다.
- 보강된 콘텐츠를 저장하고 에이전트 검색 조건을 충족하는 인덱스입니다.
- 이전 개체를 사용하여 인덱싱 및 보강 파이프라인을 구동하는 인덱서입니다.
생성된 인덱서는 Microsoft 365의 SharePoint 인덱서를 따르며, 해당 인덱서의 필수 구성 요소, 지원되는 문서 형식 및 제한 사항은 인덱싱된 SharePoint 지식 원본에도 동일하게 적용됩니다. 자세한 내용은 SharePoint 인덱서 설명서 및 인덱서 제한을 참조하세요. 생성된 기술 세트가 외부 서비스를 호출하는 경우 해당 기술의 입력 및 서비스 제한도 적용됩니다.
사용량 지원
| Azure 포털 | Microsoft Foundry 포털 | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
필수 구성 요소
Azure AI 검색 서비스는 모든 지역에서 에이전트 검색 기능을 제공합니다.
다음 SharePoint 인덱서 구성 단계 완료:
1단계: Azure AI 검색에 대한 관리 ID 활성화 (비밀 없는 인증에만 필요; 클라이언트 암호를 사용하는 경우 생략 가능)
3단계: Microsoft Entra 애플리케이션 등록 만들기 (애플리케이션 권한의 경우 클라이언트 비밀 또는 비밀 없는 인증 구성).
standard가contentExtractionMode인 경우, Foundry Tools의 Content Understanding에서 지원되는 지역에 있는 Microsoft Foundry 리소스와https://<resource-name>.services.ai.azure.com엔드포인트를 사용하세요. 임베딩 모델을 배포하고, 이미지 설명을 사용하도록 설정한 경우 멀티모달 채팅 모델도 배포합니다.지식 원본을 만들 수 있는 권한입니다. 사용자 계정에 할당된 Search Service 기여자 및 검색 인덱스 데이터 기여자 역할을 사용하여 키 없는 인증을 구성하거나 관리자 API 키를 사용합니다.
지식 원본이 임베딩 또는 이미지 설명 생성에 Azure OpenAI 모델을 지정하는 경우, 검색 서비스에는 Microsoft Foundry 리소스에 대해 Cognitive Services User 권한이 있는 관리 ID가 있어야 합니다.
networkAccessMode을private(으)로 설정하면 다음 요구 사항을 충족하세요.S2, S3, L1 또는 L2 검색 서비스를 사용합니다.
이전 필수 구성 요소에 설명된 SharePoint 연결 문자열, Microsoft Entra 애플리케이션 및 SharePoint 권한을 유지합니다. SharePoint Online은 지원되는 공유 프라이빗 링크 대상이 아니므로 프라이빗 모드에서는 이 원본 연결을 비공개로 만들지 않습니다.
보호된 각 모델 엔드포인트에 대해 검색 서비스에서 관리 ID를 사용하도록 설정하고, 리소스에 대한 Cognitive Services 사용자 역할을 부여하고, 공유 프라이빗 링크를 만들고 승인합니다.
openai_accountAzure OpenAI 엔드포인트 및foundry_accountFoundry 리소스 엔드포인트에 그룹 ID를 사용합니다.
최신
Azure.Search.Documents미리 보기 패키지:dotnet add package Azure.Search.Documents --prerelease키 없는 인증의 경우 패키지:
Azure.Identitydotnet add package Azure.Identity
최신
azure-search-documents미리 보기 패키지:pip install --pre azure-search-documents키 없는 인증의 경우 패키지:
azure-identitypip install azure-identity
Search Service REST API의 2026-08-01-preview 버전입니다.
키 없는 인증의 경우 각 HTTP 요청의 헤더에 Microsoft Entra ID 토큰을
Authorization포함합니다.
기존 지식 원본 확인
기술 자료는 재사용 가능한 최상위 개체입니다. 기존 지식 원본에 대해 아는 것은 새 개체를 다시 사용하거나 이름을 지정하는 데 유용합니다.
다음 코드를 실행하여 이름 및 형식별로 기술 자료를 나열합니다.
// List knowledge sources by name and type
using Azure.Search.Documents.Indexes;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeSources = indexClient.GetKnowledgeSourcesAsync();
Console.WriteLine("Knowledge Sources:");
await foreach (var ks in knowledgeSources)
{
Console.WriteLine($" Name: {ks.Name}, Type: {ks.GetType().Name}");
}
# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
for ks in index_client.list_knowledge_sources():
print(f" - {ks.name} ({ks.kind})")
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}
참조:기술 자료 - 목록
이름으로 단일 기술 원본을 반환하여 JSON 정의를 검토할 수도 있습니다.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
// Specify the knowledge source name to retrieve
string ksNameToGet = "earth-knowledge-source";
// Get its definition
var knowledgeSourceResponse = await indexClient.GetKnowledgeSourceAsync(ksNameToGet);
var ks = knowledgeSourceResponse.Value;
// Serialize to JSON for display
var jsonOptions = new JsonSerializerOptions
{
WriteIndented = true,
DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.Never
};
Console.WriteLine(JsonSerializer.Serialize(ks, ks.GetType(), jsonOptions));
# Get a knowledge source definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}
참조:기술 자료 - 가져오기
다음 JSON은 인덱싱된 SharePoint 기술 소스에 대한 예제 응답입니다.
{
"name": "my-indexed-sharepoint-ks",
"kind": "indexedSharePoint",
"description": "A sample indexed SharePoint knowledge source",
"encryptionKey": null,
"indexedSharePointParameters": {
"connectionString": "<redacted>",
"containerName": "defaultSiteLibrary",
"query": null,
"ingestionParameters": {
"disableImageVerbalization": false,
"ingestionPermissionOptions": [],
"contentExtractionMode": "minimal",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<redacted>",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": null,
"ingestionSchedule": null,
"assetStore": null,
"aiServices": null
},
"createdResources": {
"datasource": "my-indexed-sharepoint-ks-datasource",
"indexer": "my-indexed-sharepoint-ks-indexer",
"skillset": "my-indexed-sharepoint-ks-skillset",
"index": "my-indexed-sharepoint-ks-index"
}
},
"indexedOneLakeParameters": null
}
기술 자료 만들기
다음 코드를 실행하여 인덱싱된 SharePoint 기술 자료를 만듭니다.
// Create an IndexedSharePoint knowledge source
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 chatCompletionParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiGptDeployment,
ModelName = aoaiGptModel
};
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
NetworkAccessMode = KnowledgeSourceNetworkAccessMode.Public,
DisableImageVerbalization = false,
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var sharePointParams = new IndexedSharePointKnowledgeSourceParameters(
connectionString: sharePointConnectionString,
containerName: "defaultSiteLibrary")
{
IngestionParameters = ingestionParams
};
var knowledgeSource = new IndexedSharePointKnowledgeSource(
name: "my-indexed-sharepoint-ks",
indexedSharePointParameters: sharePointParams)
{
Description = "A sample indexed SharePoint knowledge source."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
# Create an indexed SharePoint knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import IndexedSharePointKnowledgeSource, IndexedSharePointKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceContentExtractionMode
from azure.search.documents.knowledgebases.models import KnowledgeSourceIngestionParameters, KnowledgeSourceNetworkAccessMode, KnowledgeSourceAzureOpenAIVectorizer
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
knowledge_source = IndexedSharePointKnowledgeSource(
name = "my-indexed-sharepoint-ks",
description = "A sample indexed SharePoint knowledge source.",
encryption_key = None,
indexed_share_point_parameters = IndexedSharePointKnowledgeSourceParameters(
connection_string = "connection_string",
container_name = "defaultSiteLibrary",
query = None,
ingestion_parameters = KnowledgeSourceIngestionParameters(
network_access_mode = KnowledgeSourceNetworkAccessMode.PUBLIC,
identity = None,
disable_image_verbalization = False,
chat_completion_model = KnowledgeBaseAzureOpenAIModel(
azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-gpt-deployment>",
model_name = "<aoai-gpt-model>",
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-embedding-deployment>",
model_name = "<aoai-embedding-model>",
)
),
content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
ingestion_schedule = None,
ingestion_permission_options = None
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
### Create an indexed SharePoint knowledge source
PUT {{search-endpoint}}/knowledgesources/my-indexed-sharepoint-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "my-indexed-sharepoint-ks",
"kind": "indexedSharePoint",
"description": "A sample indexed SharePoint knowledge source.",
"encryptionKey": null,
"indexedSharePointParameters": {
"connectionString": "{{sharepoint-federated-connection-string}}",
"containerName": "defaultSiteLibrary",
"query": null,
"ingestionParameters": {
"networkAccessMode": "public",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large",
"resourceUri": "{{aoai-endpoint}}"
}
},
"chatCompletionModel": null,
"disableImageVerbalization": false,
"ingestionSchedule": null,
"ingestionPermissionOptions": [],
"contentExtractionMode": "minimal"
}
}
}
수집 과정에서 Azure 종속 항목 보호
2026-08-01-preview API 버전부터 인 networkAccessMode 덱싱된 SharePoint 기술 원본에 대해 생성된 인덱서가 실행되는 네트워크 환경을 제어합니다. 이 설정은 수집에만 영향을 미치며 기술 자료 검색 요청 또는 응답을 변경하지 않습니다.
networkAccessMode의 기본값은 public이며, 이는 기존 공용 네트워크 동작을 유지합니다. 이 경우 networkAccessModeprivate생성된 인덱서는 프라이빗 실행 환경에서 실행됩니다. 승인된 공유 프라이빗 링크를 사용하여 Azure OpenAI 모델 및 Microsoft Foundry 리소스와 같은 지원되는 Azure 종속성에 액세스합니다.
Important
인덱싱된 SharePoint 기술 자료의 경우 프라이빗 모드는 지원되는 Azure 종속성에만 적용됩니다. SharePoint Online은 지원되는 공유 프라이빗 링크 대상이 아니므로 SharePoint 원본 연결은 공용으로 유지됩니다.
지원되는 Azure 종속성에 대한 프라이빗 액세스를 구성하고 확인하려면 다음을 수행합니다.
지식 소스 생성 요청에서
private을(를)networkAccessMode(으)로 설정합니다. 만드는 동안에만이 속성을 설정할 수 있습니다. 나중에 변경하려면 기술 자료를 삭제하고 다시 만듭니다.서비스 계층 또는 런타임이 프라이빗 실행을 지원하지 않거나 필요한 공유 프라이빗 링크가 없는 경우 생성이 실패할 수 있습니다.
생성된 인덱서가
executionEnvironment.인지private확인합니다.필요한 각 공유 프라이빗 링크가 승인되고 올바른 종속성을 대상으로 하는지 확인합니다. 만들기에 성공해도 링크 승인 또는 대상 지정은 확인되지 않습니다.
lastSynchronizationState.endTime에 값이 있을 때까지 지식 소스 상태를 폴링합니다.itemsUpdatesFailed이(가)0인지 확인한 다음, 커넥터별 원본 콘텐츠를 확인합니다. 종속성에 연결할 수 없는 경우 동기화가 실패합니다.
언어별 자동 분석기 사용
2026-08-01-preview API 버전부터 Blob, 인덱싱된 OneLake 및 인덱싱된 SharePoint 기술 원본에 대해 언어별 자동 분석기를 사용할 수 있습니다. 사용하도록 설정하면 Azure AI 검색 각 원본 문서의 언어를 검색하고 일치하는 Microsoft 언어 분석기를 자동으로 적용합니다. 기술 자료 정의 또는 쿼리에서 분석기를 지정하지 않습니다.
언어별 자동 분석기를 사용하도록 설정하려면 minimal를 contentExtractionMode(으)로 설정하고 지식 원본 정의에서 ingestionParameters.aiServices를 구성합니다.
키 없는 인증의 경우 를 생략하고 Microsoft Foundry 리소스에서 검색 서비스의 관리형 ID에 aiServices.apiKey 역할을 할당합니다. 키 기반 인증의 경우 Foundry 리소스에 유효한 키로 설정합니다 aiServices.apiKey .
지원되는 언어는 다음과 같습니다.
- English
- Japanese
- French
- 스페인어
- German
- 네덜란드어
- Italian
- 포르투갈어(브라질)
- 유럽 포르투갈어
- 중국어(간체)
- 중국어 - 번체
- 한국어
다국어 콘텐츠의 경우 Azure AI 검색 검색된 언어에 따라 분석기를 선택합니다. 언어가 지원되지 않거나 불확실한 경우 표준 분석기를 사용합니다.
언어별 자동 분석기를 사용하도록 설정하면 Azure AI 검색 데이터에 해당 언어의 문서가 포함되어 있는지 여부에 관계없이 지원되는 모든 언어에 대한 언어별 콘텐츠 필드가 생성된 인덱스 스키마에 추가됩니다. 수집 중 문서는 감지된 언어에 따라 적절한 언어별 필드로 라우팅됩니다.
사용되지 않는 언어 필드에는 인덱싱된 콘텐츠가 포함되지 않고 스토리지에 미치는 영향이 최소화되지만 인덱스 스키마의 일부로 유지되며 인덱스 필드 제한에 포함됩니다. 인덱스 디자인, 필드 수 및 스토리지 요구 사항을 계획할 때 추가 필드를 고려합니다. 자세한 내용은 인덱스 제한 및검색 서비스의 용량 추정 및 관리를 참조하세요.
언어 감지는 무료 AI 보강 할당 후에 청구할 수 있습니다. 자세한 내용은 무료 보강을 참조하세요.
수집 상태 확인
다음 코드를 실행하여 인덱서 파이프라인을 생성하고 검색 인덱스를 채우는 지식 원본에 대한 기술 자료 종류 및 자세한 인덱싱 오류를 포함하여 수집 진행률 및 상태를 모니터링합니다.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get knowledge source ingestion status
var statusResponse = await indexClient.GetKnowledgeSourceStatusAsync(knowledgeSourceName);
var status = statusResponse.Value;
// Serialize to JSON for display
var json = JsonSerializer.Serialize(status, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);
# Check knowledge source ingestion status
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
status = index_client.get_knowledge_source_status("knowledge_source_name")
print(json.dumps(status.as_dict(), indent=2))
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version={{api-version}}
Authorization: Bearer {{token}}
Content-Type: application/json
수집 매개 변수를 포함하고 콘텐츠를 적극적으로 수집하는 요청에 대한 응답은 다음 예제와 같습니다.
{
"kind": "azureBlob",
"synchronizationStatus": "active",
"synchronizationInterval": "1d",
"currentSynchronizationState": {
"startTime": "2026-04-10T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": [
{
"key": "Item id 1",
"docURL": "https://contoso.blob.core.windows.net/contracts/2024/Q4/doc-00023.csv",
"statusCode": 400,
"componentName": "DocumentExtraction.AzureBlob.MyDataSource",
"errorMessage": "Could not read the value of column 'foo' at index '0'.",
"details": "The file could not be parsed.",
"documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388"
}
]
},
"lastSynchronizationState": {
"status": "partialSuccess",
"startTime": "2026-04-09T19:30:00Z",
"endTime": "2026-04-09T19:40:01Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": null
},
"statistics": {
"totalSynchronizations": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization": 500
}
}
참고
kind 문서 수준 오류 세부 정보가 포함된 속성 및 currentSynchronizationState.errors[] 배열은 2026-04-01 API 버전부터 사용할 수 있습니다. 이전 API 버전의 경우 이러한 필드는 반환되지 않습니다. 이 lastSynchronizationState.status 필드는 2026-04-01년에도 새로 추가되었습니다.
생성된 개체 검토
이 기술 원본을 만들 때 Azure AI 검색 자동으로 데이터 원본, 기술 세트, 인덱서 및 인덱스를 생성합니다. 만들기 응답은 아래 createdResources의 각 개체를 나열합니다.
이러한 개체는 고정 템플릿에 따라 생성되며 해당 이름은 기술 자료의 이름을 기반으로 합니다. 개체 이름은 변경할 수 없습니다. 변경으로 인해 인덱서 파이프라인을 중단하는 오류 또는 비호환성이 발생할 수 있으므로 이러한 개체를 직접 편집하지 마십시오.
Azure 포털을 사용하여 개체 만들기의 유효성을 검사할 수 있습니다. 워크플로는 다음과 같습니다.
인덱서에서 성공 또는 실패 메시지를 확인합니다. 연결 또는 할당량 오류가 여기에 표시됩니다.
데이터 원본을 확인하여 데이터 저장소에 대한 연결을 확인합니다. 연결은 지식 원본을 구성한 방식에 따라 연결 문자열 또는 관리되는 ID를 사용합니다.
콘텐츠가 어떻게 청크로 분할되고 필요에 따라 벡터화되는지 확인하려면 스킬셋을 확인하세요.
검색 가능하고 필터링 가능한 필드와 유사성 검색을 위해 벡터를 저장하는 필드를 포함하여 검색을 위해 콘텐츠가 인덱싱되고 노출되는 방식을 확인하려면 인덱스를 확인합니다. 검색 탐색기를 사용하여 생성된 인덱스에 대해 쿼리를 실행합니다.
기술 자료에 할당
기술 자료에 만족하는 경우 기술 자료에 추가합니다.
인덱싱된 SharePoint 지식 기반을 지정하는 경우 includeReferenceSourceData을(를) true로 설정해야 합니다. 이 단계는 원본 문서 URL을 인용으로 끌어와야 합니다.
지식 베이스 질의
기술 자료를 구성한 후 검색 작업 또는 MCP 엔드포인트를 호출 하여 기술 자료를 쿼리합니다. 시나리오와 일치하는 구성을 선택합니다.
문서 수준 권한 적용
문서 수준 권한을 적용하려면 이 기술 자료를 생성할 때 ingestionPermissionOptions을(를) 설정하고, 그런 다음 사용자의 액세스 토큰을 검색 요청에 포함합니다. 자세한 내용은 쿼리 시 사용 권한 적용(미리 보기)을 참조하세요.
인덱싱된 SharePoint 권한 쿼리에서 누락되거나 예기치 않거나 실패한 결과는 SharePoint 권한 필터링 문제 해결을 참조하세요.
Surface 문서에 포함된 이미지
답변 합성 응답에서 문서에 포함된 이미지(예: 다이어그램 또는 스캔)를 표시하려면 이 지식 소스에서 assetStore를 구성한 다음 지식 베이스에서 이미지 제공을 사용하도록 설정하세요.
ingestionPermissionOptions이 구성된 경우 이미지 제공은 지원되지 않습니다. 자세한 내용은 에이전트형 검색에서 문서에 포함된 이미지 표시(미리 보기)를 참조하세요.
지식 원본 삭제
기술 자료를 삭제하려면 먼저 이를 참조하는 기술 자료를 삭제하거나 기술 자료 정의를 업데이트하여 참조를 제거해야 합니다. 인덱스 및 인덱서 파이프라인을 생성하는 기술 원본의 경우 생성된 모든 개체 도 삭제됩니다. 그러나 기존 인덱스로 기술 원본을 만든 경우 인덱스가 삭제되지 않습니다.
사용 중인 기술 원본을 삭제하려고 하면 작업이 실패하고 영향을 받는 기술 자료 목록이 반환됩니다.
기술 자료를 삭제하려면 다음을 수행합니다.
검색 서비스의 모든 기술 자료 목록을 가져옵니다.
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}"); }예제 응답은 다음과 같을 수 있습니다.
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }개별 기술 자료 정의를 가져와서 기술 자료 참조를 확인합니다.
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);예제 응답은 다음과 같을 수 있습니다.
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }기술 자료를 삭제하거나 여러 기술 자료가 있는 경우 기술 자료를 업데이트하여 원본을 제거합니다. 이 예제에서는 삭제를 보여줍니다.
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.");기술 자료를 삭제합니다.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
검색 서비스의 모든 기술 자료 목록을 가져옵니다.
# Get knowledge bases from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) print("Knowledge Bases:") for kb in index_client.list_knowledge_bases(): print(f" - {kb.name}")예제 응답은 다음과 같을 수 있습니다.
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }개별 기술 자료 정의를 가져와서 기술 자료 참조를 확인합니다.
# Get a knowledge base definition from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) kb = index_client.get_knowledge_base("knowledge_base_name") print(kb)예제 응답은 다음과 같을 수 있습니다.
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }기술 자료를 삭제하거나 여러 기술 자료가 있는 경우 기술 자료를 업데이트하여 원본을 제거합니다. 이 예제에서는 삭제를 보여줍니다.
# Delete a knowledge base from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) index_client.delete_knowledge_base("knowledge_base_name") print(f"Knowledge base deleted successfully.")기술 자료를 삭제합니다.
# Delete a knowledge source from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) index_client.delete_knowledge_source("knowledge_source_name") print(f"Knowledge source deleted successfully.")
검색 서비스의 모든 기술 자료 목록을 가져옵니다.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}참조:기술 자료 - 목록
예제 응답은 다음과 같을 수 있습니다.
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }개별 기술 자료 정의를 가져와서 기술 자료 참조를 확인합니다.
### Get a knowledge base definition GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}참조:기술 자료 - 가져오기
예제 응답은 다음과 같을 수 있습니다.
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }기술 자료를 삭제하거나 여러 기술 자료가 있는 경우 기술 자료를 업데이트하여 원본을 제거합니다. 이 예제에서는 삭제를 보여줍니다.
### Delete a knowledge base DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}참조:기술 자료 - 삭제
기술 자료를 삭제합니다.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}참조:기술 자료 - 삭제
알려진 오류
생성된 SharePoint 데이터 원본 및 인덱서는 직접 구성된 SharePoint 인덱서와 동일한 Microsoft Entra 테넌트 유효성 검사 및 인증 동작을 사용합니다. 테넌트 관련 오류의 경우 생성된 인덱서의 상태 및 실행 기록을 검토한 다음 수정을 Invalid AAD tenant따릅니다.