메모
Azure AI 검색 Azure 포털, REST API 및 Azure SDK 통해 사용할 수 있습니다. 또한 엔터프라이즈 콘텐츠를 Microsoft Foundry 포털의 에이전트에 대해 재사용 가능한 사용 권한 인식 기술 자료로 변환하는 관리되는 기술 계층인 Foundry IQ를 뒷받침합니다.
Important
이러한 기능과 기능은 2026-05-01-preview REST API의 일부입니다. 2026-05-01-preview는 Azure 구독의 일부로 사용자에게 라이선스가 부여되며, Microsoft Product Terms의 "미리 보기"에 적용되는 약관, Microsoft 제품 및 서비스 데이터 보호 부록("DPA") 및 Microsoft Azure 미리 보기용 추가 사용 약관의 적용을 받습니다.
2026-05-01-preview는 다른 Microsoft 서비스 및 타사 서비스에 대한 연결을 지원합니다. 이러한 서비스의 사용은 해당 약관의 적용을 받으며 Azure 규정 준수 경계 외부의 데이터 처리 또는 스토리지뿐만 아니라 Azure 규정 준수 경계로 데이터가 유입될 수 있습니다.
Work IQ에 연결하면 비용이 발생할 수 있으며, 데이터는 Azure 규정 준수 경계 외부로 전송되고 해당 서비스 약관 및 데이터 처리 정책에 따라 처리될 수 있습니다. 데이터가 조직의 규정 준수 및 지리적 경계와 관련된 의미를 벗어나는지 여부와 적절한 권한, 경계 및 승인이 프로비전되는지를 관리하는 것은 사용자의 책임입니다.
특정 사용 사례의 컨텍스트에서 빌드한 애플리케이션을 신중하게 검토하고 테스트하고 모든 적절한 결정 및 사용자 지정을 수행할 책임이 있습니다. 여기에는 메타프롬프트, 콘텐츠 필터 또는 기타 안전 시스템과 같은 책임 있는 AI 완화를 구현하고 애플리케이션이 적절한 품질, 안정성, 보안 및 신뢰성 표준을 충족하도록 보장하는 것이 포함됩니다. 자세한 내용은 Azure AI 검색 투명성 정보를 참고하세요.
Work IQ 지식 원본(미리 보기)은 Work IQ를 Azure AI 검색 에이전트 검색 파이프라인에 연결합니다. 기술 원본은 독립적으로 생성되고, 기술 자료에서 참조되며, 런타임에 기술 자료를 쿼리할 때 접지 데이터로 사용됩니다.
Work IQ는 Microsoft 365 앱에서 문서, 전자 메일, 모임 및 활동을 포함하여 Microsoft 365 콘텐츠의 조직 인텔리전스를 표시합니다.
인덱싱된 지식 원본과 달리 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 검색 서비스는 모든 지역에서 에이전트 검색 기능을 제공합니다.
이 기술 자료를 통해 쿼리하는 각 최종 사용자에게는 Microsoft 365 Copilot 라이선스가 있어야 합니다.
Azure AI 검색 서비스, Work IQ 환경 및 최종 사용자는 동일한 Microsoft Entra 테넌트에 있어야 합니다. 테넌트 간 검색은 지원되지 않습니다.
Azure AI 검색 통해 Work IQ 검색에 대한 승인된 액세스입니다. 자세한 내용은 Work IQ 검색에 대한 액세스 요청을 참조하세요.
지식 소스를 생성할 수 있는 권한 사용자 계정에 할당된 Search Service 기여자 역할을 사용하여 키 없는 인증을 구성하거나 API 키를 사용합니다.
- 최신
Azure.Search.Documents미리 보기 패키지:dotnet add package Azure.Search.Documents --prerelease
- 최신
azure-search-documents미리 보기 패키지:pip install --pre azure-search-documents
- Search Service REST API의 2026-05-01-preview 버전입니다.
Work IQ 검색에 대한 액세스 요청
Azure AI 검색 통한 작업 IQ 검색은 기본적으로 해제되어 있으며 사용하기 전에 Microsoft 승인된 요청이 필요합니다.
접근 권한 요청:
Azure 구독에
EnableFoundryIQWithWorkIQ기능 플래그를 등록합니다.az feature register --namespace Microsoft.Search --name EnableFoundryIQWithWorkIQ --subscription "<your-subscription-guid>"Microsoft.Search리소스 공급자를 다시 등록합니다.az provider register -n Microsoft.Search --subscription "<your-subscription-guid>"테넌트에 대한 Microsoft Entra 관리자가 Work IQ 액세스 요청 양식 제출합니다.
Microsoft가 요청을 검토하고 승인한 후 액세스를 활성화할 때까지 기다리세요.
Tip
미리 보기 기능을 등록하려면 Owner 또는 Contributor 기본 제공 역할이 필요합니다. 이 역할은 양식을 제출하는 Microsoft Entra 관리자와는 별개입니다. 조직의 다른 사용자가 두 가지 책임을 맡을 수 있습니다. 등록 메커니즘에 대한 자세한 내용은 Azure 구독에서 미리 보기 기능 설정 참조하세요.
데이터 거버넌스 및 규정 준수
Work IQ는 Microsoft 365 신뢰 경계 내에서 전적으로 작동합니다. 다음 약정은 Work IQ를 통해 에이전트 요청을 라우팅할 때 적용됩니다.
데이터 저장 위치
Work IQ는 조직의 Microsoft 365 테넌트에서 데이터를 검색합니다. 데이터는 검색 중에 테넌트 외부로 이동하거나 지역 경계를 넘지 않습니다. 데이터의 위치는 Azure AI 검색 서비스 지역이 아닌 Microsoft 365 테넌트 데이터 상주 구성을 따릅니다. 자세한 내용은 Microsoft 365 Copilot의 데이터, 개인 정보 보호 및 보안을 참조하세요.
개인 정보 및 데이터 처리
모든 Work IQ 요청에는 Microsoft 365 Copilot의 데이터, 개인 정보 보호 및 보안이 적용됩니다. 주요 약정:
- Work IQ는 고객 콘텐츠를 사용하여 기본 AI 모델을 학습하거나 개선하지 않습니다.
액세스 제어 및 권한
Work IQ는 모든 요청에 대해 Microsoft 365 권한을 자동으로 적용합니다. 에이전트는 로그인한 사용자가 이미 볼 수 있는 권한이 있는 데이터에만 액세스할 수 있습니다. 권한 상승은 불가능합니다.
- Microsoft 365 정의된 역할 기반 액세스 제어, 민감도 레이블 및 정보 장벽을 준수합니다.
규정 준수 인증
Work IQ는 Microsoft 365 규정 준수 인증을 상속합니다. 자세한 내용은 Microsoft 365 Copilot의 데이터, 개인 정보 보호 및 보안을 참조하세요.
기존 지식 원본 확인
기술 자료는 재사용 가능한 최상위 개체입니다. 기존 지식 원본에 대해 아는 것은 새 개체를 다시 사용하거나 이름을 지정하는 데 유용합니다.
다음 코드를 실행하여 이름 및 형식별로 기술 자료를 나열합니다.
// 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
api-key: {{api-key}}
참조:기술 자료 - 목록
이름으로 단일 기술 원본을 반환하여 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}}
api-key: {{api-key}}
참조:기술 자료 - 가져오기
다음 JSON은 Work IQ 기술 원본에 대한 응답 예제입니다.
{
"name": "my-workiq-ks",
"kind": "workIQ",
"description": "A sample Work IQ knowledge source.",
"encryptionKey": null
}
기술 자료 만들기
다음 코드를 실행하여 Work IQ 기술 원본을 만듭니다.
using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
Uri searchEndpoint = new Uri("<search-service-url>");
AzureKeyCredential credential = new AzureKeyCredential("<api-key>");
var indexClient = new SearchIndexClient(searchEndpoint, credential);
var knowledgeSource = new WorkIQKnowledgeSource(name: "my-workiq-ks")
{
Description = "A sample Work IQ knowledge source."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import WorkIQKnowledgeSource
index_client = SearchIndexClient(
endpoint="<search-service-url>",
credential=AzureKeyCredential("<api-key>")
)
knowledge_source = WorkIQKnowledgeSource(
name="my-workiq-ks",
description="A sample Work IQ knowledge source."
)
index_client.create_or_update_knowledge_source(knowledge_source=knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
### Create a Work IQ knowledge source
PUT {{search-url}}/knowledgesources/my-workiq-ks?api-version=2026-05-01-preview
api-key: {{api-key}}
Content-Type: application/json
{
"name": "my-workiq-ks",
"kind": "workIQ",
"description": "A sample Work IQ knowledge source."
}
기술 자료에 할당
기술 자료에 만족하는 경우 기술 자료에 추가합니다.
지식 베이스 질의
기술 자료가 구성된 후 검색 작업 또는 MCP 엔드포인트를 호출 하여 Work IQ 콘텐츠를 쿼리합니다. 이 기술 원본에는 고유한 쿼리 시간 권한 적용 및 응답 특성이 있습니다.
Important
작업 IQ는 응답하는 데 40~60초 이상이 걸릴 수 있습니다. 시간 초과 오류를 방지하려면 retrieve 요청의 maxRuntimeInSeconds를 120 이상으로 설정하세요.
쿼리 시 사용 권한 적용
Work IQ 참조 자료 원본은 On-Behalf-Of(OBO) 토큰 흐름을 사용합니다. 검색 요청의 헤더에 x-ms-query-source-authorization 최종 사용자 액세스 토큰을 전달합니다. 토큰은 Azure AI 검색 대상 그룹(https://search.azure.com/.default)으로 범위가 지정되어야 합니다. 검색 엔진은 이 토큰을 Work IQ 범위 토큰으로 교환하고 이를 사용하여 최종 사용자를 대신하여 Work IQ를 쿼리합니다.
검색 요청에도 표준 Azure AI 검색 인증이 필요합니다. 토큰은 x-ms-query-source-authorization 별도로 전달되며 서비스 인증을 대체하지 않습니다.
토큰 전달에 대한 지침은 쿼리 시 권한 적용(미리 보기)을 참조하세요.
작업 IQ 관련 응답 필드
Work IQ 지식 소스는 references 배열에 결과를 반환하고 activity 배열에 쿼리 진단 정보를 반환합니다. 각 참조 항목에는 다음이 포함됩니다.
-
sourceData.extracts[].text: Work IQ를 기반으로 한 텍스트 발췌문입니다. -
attributions[].seeMoreWebUrl: Microsoft 365 원본 문서에 대한 링크입니다.
다음 예제에서는 Work IQ 기술 자료 참조 및 해당 활동 레코드를 포함하는 검색 응답을 보여 있습니다. 검색 응답 해석에 대한 광범위한 지침은 응답 검토를 참조하세요.
Tip
참조용 sourceData를 받으려면 검색 요청의 includeReferenceSourceData 내에 있는 지식 소스 항목에서 true를 knowledgeSourceParams(으)로 설정하세요.
{
"response": [
// ... Response omitted for brevity
],
"activity": [
{
"type": "workIQ",
"id": 0,
"knowledgeSourceName": "my-workiq-ks",
"queryTime": "2026-05-01T19:25:23.683Z",
"count": 1,
"elapsedMs": 1137,
"workIQArguments": {
"search": "my query"
}
},
{
// ... Additional activity records omitted for brevity
}
],
"references": [
{
"type": "workIQ",
"id": "83dd7d40",
"activitySource": 0,
"rerankerScore": 3.5,
"attributions": [
{
"seeMoreWebUrl": "https://..."
}
],
"sourceData": {
"extracts": [
{
"text": "Have your VPN username and password ready."
}
]
}
},
{
// ... Additional references omitted for brevity
}
]
}
지식 원본 삭제
기술 자료를 삭제하려면 먼저 이를 참조하는 기술 자료를 삭제하거나 기술 자료 정의를 업데이트하여 참조를 제거해야 합니다. 인덱스 및 인덱서 파이프라인을 생성하는 기술 원본의 경우 생성된 모든 개체 도 삭제됩니다. 그러나 기존 인덱스로 기술 원본을 만든 경우 인덱스가 삭제되지 않습니다.
사용 중인 기술 원본을 삭제하려고 하면 작업이 실패하고 영향을 받는 기술 자료 목록이 반환됩니다.
기술 자료를 삭제하려면 다음을 수행합니다.
검색 서비스의 모든 기술 자료 목록을 가져옵니다.
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 api-key: {{api-key}}참조:기술 자료 - 목록
예제 응답은 다음과 같을 수 있습니다.
{ "@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}} api-key: {{api-key}}참조:기술 자료 - 가져오기
예제 응답은 다음과 같을 수 있습니다.
{ "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}} api-key: {{api-key}}참조:기술 자료 - 삭제
기술 자료를 삭제합니다.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} api-key: {{api-key}}참조:기술 자료 - 삭제