메모
Azure AI 검색 Azure 포털, REST API 및 Azure SDK 통해 사용할 수 있습니다. 또한 엔터프라이즈 콘텐츠를 Microsoft Foundry 포털의 에이전트에 대해 재사용 가능한 사용 권한 인식 기술 자료로 변환하는 관리되는 기술 계층인 Foundry IQ를 뒷받침합니다.
Important
기능, 기능 또는 표시된 속성(미리 보기)은 서비스 수준 계약에 포함되지 않으며 프로덕션 워크로드에는 권장되지 않으며 일반적으로 사용 가능해지기 전에 변경되거나 제한될 수 있습니다. Azure AI 검색 미리 보기 용어는 독립 실행형 기능이든 일반 공급 기능의 일부이든 관계없이 모든 미리 보기 기능에 적용됩니다.
Work IQ에 연결하면 비용이 발생할 수 있으며, 데이터는 Azure 규정 준수 경계 외부로 전송되고 해당 서비스 약관 및 데이터 처리 정책에 따라 처리될 수 있습니다.
Work IQ 지식 원본(미리 보기)은 Work IQ를 Azure AI 검색 에이전트 검색 파이프라인에 연결합니다. 기술 원본은 독립적으로 생성되고, 기술 자료에서 참조되며, 런타임에 기술 자료를 쿼리할 때 접지 데이터로 사용됩니다.
Work IQ는 Microsoft 365 앱에서 문서, 전자 메일, 모임 및 활동을 포함하여 Microsoft 365 콘텐츠의 조직 인텔리전스를 표시합니다.
인덱싱된 지식 원본과 달리 Work IQ 기술 원본은 검색 시 라이브 데이터를 직접 쿼리합니다. 수집 파이프라인이 필요하지 않습니다. 쿼리에는 Microsoft Entra 앱 등록을 위해 발급된 사용자 액세스 토큰이 필요합니다. Azure AI 검색 위임된 Work IQ 토큰에 대한 토큰을 교환하고 사용자를 대신하여 Work IQ를 호출합니다.
Warning
이 미리 보기에서 Work IQ 지식 원본은 정보를 검색하는 것뿐만 아니라 작업을 수행하는 Work IQ 기능을 사용할 수 있습니다. 주의하여 사용하고, 신뢰할 수 있는 애플리케이션 및 사용자에 대한 액세스를 제한하고, 사용하도록 설정하기 전에 시나리오의 권한 및 거버넌스 컨트롤을 검토합니다.
사용량 지원
| Azure Portal | Microsoft Foundry 포털 | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ✔️ |
사전 요구 사항
Azure AI 검색 서비스는 모든 지역에서 에이전트 검색 기능을 제공합니다.
Azure 구독 및 리소스 그룹을 사용하여 Copilot Studio 설정된 Work IQ에 대한 사용량 기반 청구 계획입니다. 작업 IQ를 쿼리하는 각 사용자를 청구 계획에 할당합니다.
Work IQ에 사용하도록 설정된 Microsoft Entra 테넌트입니다. 청구가 구성되면 Microsoft Entra 전역 관리자가 이 일회성 설정을 완료합니다.
사용자를 로그인하고 검색 요청을 보내는 클라이언트 애플리케이션입니다.
각 앱 설정 작업에 권장되는 Microsoft Entra 역할:
애플리케이션 개발자 가 앱 등록을 만듭니다.
앱 등록 소유자 또는 해당 앱 등록의 페더레이션 ID 자격 증명을 만들기 위한 지원되는 관리자 역할 중 하나
클라우드 애플리케이션 관리자 또는 애플리케이션 관리자 가 위임된 권한에 대한 테넌트 전체 관리자 동의를
WorkIQAgent.Ask부여합니다.
지식 원본을 만들 수 있는 권한입니다. 사용자 계정에 할당된 Search Service 기여자 역할로 키 없는 인증을 구성하거나(권장) 관리자 API 키를 사용합니다.
최신
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포함합니다.
데이터 거버넌스 및 규정 준수
Work IQ 검색을 사용하도록 설정하기 전에 Microsoft Copilot 대한 데이터, 개인 정보 및 보안을 검토합니다.
데이터 사용 및 개인 정보
Microsoft Graph 통해 액세스되는 프롬프트, 응답 및 데이터는 기본 언어 모델을 학습하는 데 사용되지 않습니다.
액세스 제어
Work IQ는 모든 요청에 Microsoft 365 권한을 적용합니다. 검색은 로그인한 사용자에게 액세스 권한이 있는 조직 데이터만 반환합니다.
데이터 보존 및 규정 준수
조직 및 시나리오에 적용되는 데이터 보존, 개인 정보, 보안 및 규정 준수 약정에 대한 Microsoft 365 설명서를 검토합니다.
Microsoft Entra 인증 설정
2026-08-01-preview API 버전부터 각 Work IQ 기술 원본은 인증을 위해 고객 소유의 Microsoft Entra 앱 등록을 사용합니다.
쿼리 시 인증은 다음과 같이 작동합니다.
- 클라이언트 앱은 사용자를 로그인하고 사용자 어설션을 Azure AI 검색 보냅니다.
- 검색 서비스 관리 ID는 페더레이션 자격 증명을 통해 고객 소유 앱으로 인증됩니다.
- Azure AI 검색 위임된 Work IQ 토큰에 대한 사용자 어설션을 교환하고 로그인한 사용자를 대신하여 Work IQ를 호출합니다.
클라이언트 암호는 Work IQ 기술 원본에 저장되지 않습니다. 앱 및 해당 권한을 한 번 구성한 다음, 앱을 사용하는 각 검색 서비스 ID에 대한 페더레이션 자격 증명을 만듭니다.
Work IQ 앱 등록 구성
Azure AI 검색 Work IQ를 호출하는 데 사용하는 고객 소유 앱을 구성하려면 다음을 수행합니다.
Work IQ 동의를 관리하려는 Microsoft Entra 테넌트에 애플리케이션을 등록합니다. 지원되는 계정 유형으로는 이 조직 디렉터리의 계정만 선택합니다.
앱 등록 개요 페이지에서애플리케이션(클라이언트) ID 및 디렉터리(테넌트) ID를 복사합니다. 앱 등록이 포함된 테넌트에 로그인하려면 Work IQ 인증 및 테넌트 ID를 구성하려면 애플리케이션 ID가 필요합니다.
앱 등록의 API 노출 페이지에서 정확히 명명 된 필수 위임 범위를 추가 합니다
access_as_user. 이 소문자 이름을 사용합니다. 다른 범위 이름을 대체하지 마세요. 전체 범위는api://<application-client-id>/access_as_user입니다.앱 등록의 API 권한 페이지에서조직에서 사용하는 권한 >API 추가를 선택합니다.
작업 IQ(애플리케이션 ID
fdcc1f02-fc51-4226-8753-f668596af7f7)를 검색하고 위임된 권한>WorkIQAgent.Ask를 선택한 다음, 권한 추가를 선택합니다.필수 구성 요소에 나열된 동의 역할이 있는 관리자가 같은 페이지에서 [테넌트]에 대한 관리자 동의 부여 를 선택하게 합니다. 이 동의를 통해 앱은 위임된 Work IQ 토큰에 대한 사용자 어설션을 교환할 수 있습니다.
검색 서비스 ID 구성
Azure AI 검색 Work IQ 앱으로 인증하는 데 사용하는 ID를 구성하려면 다음을 수행합니다.
검색 서비스에서 시스템 할당 관리 ID를 사용하도록 설정합니다. 시스템 할당 ID를 사용할 수 없는 경우 정확히 하나의 사용자 할당 ID를 구성합니다. 여러 사용자 할당 ID가 있고 시스템 할당 ID가 없는 검색 서비스는 지원되지 않습니다.
검색 서비스의 Identity 페이지에서 개체(주체) ID를 복사합니다. 페더레이션 자격 증명은 이 값을 해당
subject값으로 사용합니다.Microsoft Entra ID>오버뷰로 이동하여 테넌트 ID를 복사합니다. 페더레이션 자격 증명은 URL에서
issuer이 값을 사용합니다.
페더레이션 자격 증명 만들기
검색 서비스 ID에 대한 페더레이션 자격 증명을 만들려면 다음을 수행합니다.
이름이
credential.json인 파일을 만듭니다.<search-service-tenant-id>,<search-service-principal-id>,<search-service-name>를 검색 서비스의 값으로 바꾸세요.{ "name": "<search-service-name>-identity", "issuer": "https://login.microsoftonline.com/<search-service-tenant-id>/v2.0", "subject": "<search-service-principal-id>", "audiences": ["api://AzureADTokenExchange"] }자격 증명 이름은 앱 등록에서 고유해야 합니다.
subject값은 관리되는 ID의 보안 주체 ID와 정확히 일치해야 합니다. 불일치는 지식 소스를 생성할 때가 아니라 쿼리할 때 드러납니다.앱 등록이 포함된 테넌트에서 Azure CLI 로그인합니다.
az login --tenant <app-tenant-id> --allow-no-subscriptions페더레이션 자격 증명을 만듭니다.
az ad app federated-credential create --id <application-client-id> --parameters credential.json --query id --output tsv명령 출력을 복사합니다. Work IQ 지식 소스를 만들 때
federatedCredentialId에 이 값을 사용합니다.
각 페더레이션 자격 증명은 하나의 관리형 ID 주체 ID를 신뢰합니다. 다른 검색 서비스 ID에서 앱 등록을 사용하는 경우 고유한 자격 증명 이름과 해당 ID의 테넌트 및 보안 주체 ID를 사용하여 이 절차를 반복합니다. 각 Work IQ 지식 소스에서 해당 자격 증명 ID를 사용합니다.
클라이언트 앱 구성
사용자를 로그인하고 검색 요청을 보내는 앱을 구성하려면 다음을 수행합니다.
클라이언트 앱의 API 권한 페이지에서조직에서 사용하는 권한 >API 추가를 선택합니다.
이전에 복사한 애플리케이션(클라이언트) ID 를 검색 상자에 붙여넣은 다음, Work IQ 앱 등록을 선택합니다.
위임된 권한>access_as_user 선택한 다음, 권한 추가를 선택합니다.
테넌트의 사용자 동의 정책에 필요한 모든 동의를 완료합니다. 관리자 동의가 필요한 경우 관리자가 [테넌트]에 대한 관리자 동의 부여를 선택하게 합니다.
이제 클라이언트 앱에서 Work IQ 앱 등록에 대한 사용자 어설션을 요청할 수 있습니다.
access_as_user 권한은 클라이언트 앱이 Work IQ에 직접 액세스하도록 허용하지 않습니다.
인증 값
Work IQ 지식 원본을 만들 때 Microsoft Entra 앱 설정의 다음 entraAppAuthentication 값을 사용하세요. 제공하는 각 값은 GUID여야 합니다.
| 재산 | 필수 | Value |
|---|---|---|
applicationId |
예 | Work IQ 앱 등록의 애플리케이션(클라이언트) ID입니다. |
federatedCredentialId |
예 | 앱에서 생성한 페더레이션 자격 증명의 개체 ID입니다. 자격 증명 이름이 아니며 검색 서비스 주체 ID가 아닙니다. |
tenantId |
No | 앱 등록의 디렉터리(테넌트) ID입니다. 앱 등록 및 검색 서비스가 동일한 테넌트에 있는 경우 이 속성을 생략합니다. 다른 테넌트에 있는 경우 이 속성이 필요합니다. |
기존 지식 원본 확인
기술 자료는 재사용 가능한 최상위 개체입니다. 기존 지식 원본에 대해 아는 것은 새 개체를 다시 사용하거나 이름을 지정하는 데 유용합니다.
다음 코드를 실행하여 이름 및 형식별로 기술 자료를 나열합니다.
// 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은 Work IQ 기술 원본에 대한 응답 예제입니다.
{
"name": "my-workiq-ks",
"kind": "workIQ",
"description": "A sample Work IQ knowledge source.",
"workIQParameters": {
"entraAppAuthentication": {
"applicationId": "11111111-1111-1111-1111-111111111111",
"federatedCredentialId": "22222222-2222-2222-2222-222222222222",
"tenantId": null
}
},
"encryptionKey": null
}
기술 자료 만들기
다음 코드를 실행하여 Work IQ 기술 원본을 만듭니다.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.Models;
Uri searchEndpoint =
new("https://<search-service-name>.search.windows.net");
var credential = new DefaultAzureCredential();
var indexClient = new SearchIndexClient(searchEndpoint, credential);
var entraAuthentication = new EntraAppAuthentication(
Guid.Parse("<application-client-id>"),
Guid.Parse("<federated-credential-id>"));
var knowledgeSource = new WorkIQKnowledgeSource(
"my-workiq-ks",
new WorkIQKnowledgeSourceParameters(entraAuthentication))
{
Description = "A sample Work IQ knowledge source."
};
KnowledgeSource createdSource =
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Created knowledge source '{createdSource.Name}'.");
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
EntraAppAuthentication,
WorkIQKnowledgeSource,
WorkIQKnowledgeSourceParameters,
)
endpoint = "https://<search-service-name>.search.windows.net"
credential = DefaultAzureCredential()
knowledge_source = WorkIQKnowledgeSource(
name="my-workiq-ks",
description="A sample Work IQ knowledge source.",
work_iq_parameters=WorkIQKnowledgeSourceParameters(
entra_app_authentication=EntraAppAuthentication(
application_id="<application-client-id>",
federated_credential_id="<federated-credential-id>",
)
),
)
with SearchIndexClient(endpoint, credential) as index_client:
created_source = index_client.create_or_update_knowledge_source(
knowledge_source
)
print(f"Created knowledge source '{created_source.name}'.")
@search-endpoint = <search-endpoint> // Example: https://my-service.search.windows.net
@search-access-token = <search-access-token> // Run: az account get-access-token --scope https://search.azure.com/.default --query accessToken -o tsv
### Create a Work IQ knowledge source
PUT {{search-endpoint}}/knowledgesources/my-workiq-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
Prefer: return=representation
{
"name": "my-workiq-ks",
"kind": "workIQ",
"description": "A sample Work IQ knowledge source.",
"workIQParameters": {
"entraAppAuthentication": {
"applicationId": "<application-client-id>",
"federatedCredentialId": "<federated-credential-id>"
}
}
}
기술 자료에 할당
기술 자료에 만족하는 경우 기술 자료에 추가합니다.
지식 베이스 질의
기술 자료가 구성된 후 검색 작업 또는 MCP 엔드포인트를 호출 하여 Work IQ 콘텐츠를 쿼리합니다. 이 기술 원본에는 고유한 쿼리 시간 권한 적용 및 응답 특성이 있습니다.
Important
작업 IQ는 응답하는 데 40~60초 이상이 걸릴 수 있습니다. 시간 초과 오류를 방지하려면 retrieve 요청의 maxRuntimeInSeconds를 120 이상으로 설정하세요.
쿼리 시 사용 권한 적용
2026-08-01-preview API 버전부터 Work IQ 지식 소스는 고객 소유의 Microsoft Entra 앱 등록을 통해 OBO(On-Behalf-Of) 토큰 흐름을 사용합니다. Azure AI 검색 대한 검색 요청을 인증하는 것 외에도 클라이언트는 로그인한 사용자에 대한 앱 대상 사용자 어설션을 제공해야 합니다.
클라이언트 앱은 사용자를 로그인하고 사용자 어설션을 획득해야 합니다. 어설션을 획득하는 방법은 앱의 플랫폼 및 언어에 따라 달라집니다. 정확한 범위를 api://<application-client-id>/access_as_user요청하려면 MSAL(Microsoft 인증 라이브러리) 및 인증 코드 흐름을 PKCE(코드 Exchange 증명 키)와 함께 사용합니다.
사용자 어설션을 보내기 전에 다음을 확인합니다.
-
aud는 Work IQ 앱 등록을 식별합니다. -
scp에는access_as_user가 포함됩니다. -
oid및tid는 로그인한 사용자와 앱 테넌트를 식별합니다.
다음 예제와 같이 동일한 검색 요청에서 두 자격 증명을 모두 보냅니다. 서비스 인증에 Azure AI 검색 토큰 또는 API 키를 사용합니다. 원시 사용자 어설션은 x-ms-query-source-authorization가 아니라 x-ms-query-work-iq-source-authorization 헤더에 전달하세요.
using Azure.Identity;
using Azure.Search.Documents;
using Azure.Search.Documents.KnowledgeBases;
using Azure.Search.Documents.KnowledgeBases.Models;
Uri searchEndpoint =
new("https://<search-service-name>.search.windows.net");
string userAssertion = "<user-assertion>";
var credential = new DefaultAzureCredential();
var options = new SearchClientOptions();
options.Retry.NetworkTimeout = TimeSpan.FromSeconds(130);
var retrievalClient = new KnowledgeBaseRetrievalClient(
searchEndpoint,
"my-kb",
credential,
options);
var request = new KnowledgeBaseRetrievalRequest
{
IncludeActivity = true,
MaxRuntimeInSeconds = 120
};
request.Intents.Add(
new KnowledgeRetrievalSemanticIntent("Find my project status."));
request.KnowledgeSourceParams.Add(
new WorkIQKnowledgeSourceParams("my-workiq-ks")
{
IncludeReferences = true,
IncludeReferenceSourceData = true
});
var response = await retrievalClient.RetrieveAsync(
request,
querySourceAuthorization: null,
queryWorkIQSourceAuthorization: userAssertion);
Console.WriteLine(response.Value);
참조:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest
from azure.identity import DefaultAzureCredential
from azure.search.documents.knowledgebases import (
KnowledgeBaseRetrievalClient,
)
from azure.search.documents.knowledgebases.models import (
KnowledgeBaseRetrievalRequest,
KnowledgeRetrievalSemanticIntent,
WorkIQKnowledgeSourceParams,
)
endpoint = "https://<search-service-name>.search.windows.net"
user_assertion = "<user-assertion>"
credential = DefaultAzureCredential()
request = KnowledgeBaseRetrievalRequest(
intents=[
KnowledgeRetrievalSemanticIntent(
search="Find my project status."
)
],
knowledge_source_params=[
WorkIQKnowledgeSourceParams(
knowledge_source_name="my-workiq-ks",
include_references=True,
include_reference_source_data=True,
)
],
include_activity=True,
max_runtime_in_seconds=120,
)
with KnowledgeBaseRetrievalClient(
endpoint,
credential,
knowledge_base_name="my-kb",
) as retrieval_client:
response = retrieval_client.retrieve(
request,
query_work_iq_source_authorization=user_assertion,
timeout=130,
)
print(response)
참조:KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest
@search-endpoint = <search-endpoint>
@search-access-token = <search-access-token>
@user-assertion = <user-assertion>
### Query a knowledge base with a Work IQ knowledge source
POST {{search-endpoint}}/knowledgebases/my-kb/retrieve?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
x-ms-query-work-iq-source-authorization: {{user-assertion}}
Content-Type: application/json
{
"messages": [{
"role": "user",
"content": [{
"type": "text",
"text": "Find my project status."
}]
}],
"knowledgeSourceParams": [{
"knowledgeSourceName": "my-workiq-ks",
"kind": "workIQ",
"includeReferences": true,
"includeReferenceSourceData": true
}],
"includeActivity": true,
"maxRuntimeInSeconds": 120
}
참조:지식 검색 - 검색
성공적인 요청이 반환됩니다 200 OK.
activity에 type이(가) workIQ이고 knowledgeSourceName이(가) Work IQ 지식 소스와 일치하는 항목이 있는지 확인합니다. 또한 references에 workIQ 항목이 포함되어 있는지 확인합니다.
다음 표에서는 일반적인 구성 오류를 나열합니다.
| 상태 | 원인 |
|---|---|
| 400 | Work IQ 권한 부여 헤더가 없거나 형식이 잘못되었거나, 필요한 사용자 클레임이 없거나, 검색 서비스에 지원되는 관리 ID 구성이 없습니다. |
| 206 또는 502 | 토큰 교환, 동의, 위임된 권한, 페더레이션 자격 증명, 다운스트림 권한 부여 또는 Work IQ 요청이 실패하거나 시간이 초과되어 Work IQ 원본이 실패했습니다. 원본 활동 오류를 검사합니다.
206 응답은 다른 소스가 성공했다는 의미입니다. 응답은 502 선택한 모든 원본이 실패했거나 필요한 원본이 실패했음을 의미합니다. |
작업 IQ 관련 응답 필드
Work IQ 지식 소스는 references 배열에 결과를 반환하고 activity 배열에 쿼리 진단 정보를 반환합니다. 각 참조 항목에는 다음이 포함됩니다.
-
sourceData.parts[].text: Work IQ를 기반으로 한 텍스트 발췌문입니다. -
sourceData.parts[].data: Work IQ 인용 데이터. 인용 부분에는 미디어 유형이 있습니다application/vnd.ms-workiq-reference.
다음 예제에서는 Work IQ 기술 자료 참조 및 해당 활동 레코드를 포함하는 검색 응답을 보여 있습니다. 검색 응답 해석에 대한 광범위한 지침은 응답 검토를 참조하세요.
Tip
참조용 sourceData를 받으려면 검색 요청의 includeReferenceSourceData 내에 있는 지식 소스 항목에서 true를 knowledgeSourceParams(으)로 설정하세요.
{
"response": [],
"activity": [
{
"type": "workIQ",
"id": 0,
"knowledgeSourceName": "my-workiq-ks",
"queryTime": "2026-08-01T19:25:23.683Z",
"count": 1,
"elapsedMs": 1137,
"workIQArguments": {
"search": "my query"
}
}
],
"references": [
{
"type": "workIQ",
"id": "83dd7d40",
"activitySource": 0,
"rerankerScore": 3.5,
"sourceData": {
"parts": [
{
"text": "Have your VPN username and password ready."
},
{
"data": {
"1-abc123": {
"targetLink": "https://contoso.sharepoint.com/doc.docx",
"isCitedInResponse": true,
"isSourceFiltered": false
}
},
"mediaType": "application/vnd.ms-workiq-reference"
}
]
}
}
]
}
지식 원본 삭제
기술 자료를 삭제하려면 먼저 이를 참조하는 기술 자료를 삭제하거나 기술 자료 정의를 업데이트하여 참조를 제거해야 합니다. 인덱스 및 인덱서 파이프라인을 생성하는 기술 원본의 경우 생성된 모든 개체 도 삭제됩니다. 그러나 기존 인덱스로 기술 원본을 만든 경우 인덱스가 삭제되지 않습니다.
사용 중인 기술 원본을 삭제하려고 하면 작업이 실패하고 영향을 받는 기술 자료 목록이 반환됩니다.
기술 자료를 삭제하려면 다음을 수행합니다.
검색 서비스의 모든 기술 자료 목록을 가져옵니다.
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}}참조:기술 자료 - 삭제