Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Note
Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Jest także podstawą Foundry IQ — zarządzanej warstwy wiedzy, która przekształca treści przedsiębiorstwa w bazy wiedzy wielokrotnego użytku z uwzględnieniem uprawnień dla agentów w portalu Microsoft Foundry.
Ważna
Funkcje, możliwości lub właściwości oznaczone (wersja zapoznawcza) nie są objęte umową dotyczącą poziomu usług, nie są zalecane w przypadku obciążeń produkcyjnych i mogą ulec zmianie lub ograniczeniu, zanim staną się one ogólnie dostępne. Warunki Wyszukiwanie AI platformy Azure wersji zapoznawczej mają zastosowanie do wszystkich funkcji w wersji zapoznawczej, niezależnie od tego, czy jest ona autonomiczna, czy częścią ogólnie dostępnej funkcji.
Po nawiązaniu połączenia z usługą Work IQ mogą być naliczane koszty, a dane mogą być wysyłane poza granicą zgodności Azure i przetwarzane zgodnie z odpowiednimi zasadami obsługi usług i obsługi danych.
Źródło wiedzy Work IQ (wersja zapoznawcza) łączy usługę Work IQ z potokiem wyszukiwania wspomaganym przez agenty w usłudze Wyszukiwanie AI platformy Azure. Źródła wiedzy są tworzone niezależnie, przywoływane w bazie wiedzy i używane jako dane uziemienia, gdy baza wiedzy jest odpytywane w czasie wykonywania zapytań.
Work IQ wydobywa informacje o organizacji z zawartości w usłudze Microsoft 365, w tym z dokumentów, wiadomości e-mail, spotkań i aktywności w aplikacjach Microsoft 365.
W przeciwieństwie do indeksowanych źródeł wiedzy źródła wiedzy Work IQ wysyłają zapytania o dane na żywo bezpośrednio w czasie pobierania. Potok importu danych nie jest potrzebny. Zapytania wymagają tokenu dostępu użytkownika wystawionego na potrzeby rejestracji aplikacji Microsoft Entra. Usługa Wyszukiwanie AI platformy Azure zamienia ten token na delegowany token Work IQ i wywołuje usługę Work IQ w imieniu użytkownika.
Warning
W tej wersji zapoznawczej źródło wiedzy Work IQ może korzystać z możliwości Work IQ umożliwiających wykonywanie działań, a nie tylko pobieranie informacji. Należy zachować ostrożność podczas korzystania z tej funkcji, ograniczyć dostęp do zaufanych aplikacji i użytkowników oraz przed jej włączeniem sprawdzić uprawnienia dla danego scenariusza i mechanizmy nadzoru.
Wsparcie użytkowania
| Portal Azure | Portal Microsoft Foundry | SDK platformy .NET | SDK Python | pakiet Java SDK | JavaScript SDK | API REST |
|---|---|---|---|---|---|---|
| ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ✔️ |
Wymagania wstępne
Usługa Wyszukiwanie AI platformy Azure w dowolnym regionie, która zapewnia autonomiczne wyszukiwanie.
Plan rozliczeniowy oparty na użyciu dla usługi Work IQ skonfigurowany w Copilot Studio z użyciem subskrypcji platformy Azure i grupy zasobów. Przypisz do planu rozliczeniowego każdego użytkownika, który wyszukuje w Work IQ.
Twoja dzierżawa Microsoft Entra z włączoną funkcją Work IQ. Po skonfigurowaniu rozliczeń administrator globalny Microsoft Entra ukończy tę jednorazową konfigurację.
Aplikacja kliencka, która loguje użytkowników i wysyła żądania pobierania.
Zalecane role Microsoft Entra dla każdej akcji konfiguracji aplikacji:
Programista aplikacji aby utworzyć rejestrację aplikacji.
Właściciel rejestracji aplikacji lub obsługiwana rola administratora w celu utworzenia poświadczeń tożsamości federacyjnej.
Administrator aplikacji w chmurze lub administrator aplikacji w celu udzielenia zgody administratora całej dzierżawy
WorkIQAgent.Askna uprawnienia delegowane.
Uprawnienie do tworzenia źródeł wiedzy. Skonfiguruj uwierzytelnianie bez klucza przy użyciu roli Współautor usługi wyszukiwania przypisanej do konta użytkownika (zalecane) lub użyj klucza interfejsu API administratora.
Najnowszy pakiet
Azure.Search.Documentswersji zapoznawczej:dotnet add package Azure.Search.Documents --prereleaseW przypadku uwierzytelniania bezkluczowego pakiet
Azure.Identity:dotnet add package Azure.Identity
Najnowszy pakiet
azure-search-documentswersji zapoznawczej:pip install --pre azure-search-documentsW przypadku uwierzytelniania bezkluczowego pakiet
azure-identity:pip install azure-identity
Interfejs API REST usługi Search w wersji 2026-08-01-preview.
W przypadku uwierzytelniania bez klucza dołącz token Microsoft Entra ID w nagłówku
Authorizationkażdego żądania HTTP.
Nadzór i zgodność danych
Przed włączeniem pobierania aplikacji Work IQ zapoznaj się z tematem Dane, Prywatność i Zabezpieczenia dla Microsoft 365 Copilot.
Korzystanie z danych i prywatność
Prompty, odpowiedzi i dane dostępne za pośrednictwem Microsoft Graph nie są używane do trenowania bazowych modeli językowych.
Kontrola dostępu
Work IQ uwzględnia uprawnienia Microsoft 365 przy każdym żądaniu. Pobieranie zwraca tylko dane organizacyjne, do których zalogowany użytkownik ma uprawnienia dostępu.
Miejsce przechowywania i zgodność danych
Zapoznaj się z dokumentacją Microsoft 365 dotyczącą rezydencji danych, prywatności, zabezpieczeń i zgodności, które mają zastosowanie do organizacji i scenariusza.
Konfigurowanie uwierzytelniania w usłudze Microsoft Entra
Począwszy od wersji interfejsu API 2026-08-01-preview, każde źródło wiedzy Work IQ używa należącej do klienta rejestracji aplikacji w usłudze Microsoft Entra do uwierzytelniania.
W czasie zapytania uwierzytelnianie działa w następujący sposób:
- Aplikacja kliencka loguje użytkownika i wysyła asercję użytkownika do Wyszukiwanie AI platformy Azure.
- Tożsamość zarządzana usługi wyszukiwania jest uwierzytelniana jako aplikacja należąca do klienta za pomocą poświadczeń federacyjnych.
- Wyszukiwanie AI platformy Azure wymienia asercję użytkownika na delegowany token Work IQ i wywołuje usługę Work IQ w imieniu zalogowanego użytkownika.
W źródle wiedzy Work IQ nie jest przechowywany żaden klucz tajny klienta. Skonfiguruj aplikację i jej uprawnienia raz, a następnie utwórz poświadczenia federacyjne dla każdej tożsamości usługi wyszukiwania korzystającej z aplikacji.
Konfigurowanie rejestracji aplikacji Work IQ
Aby skonfigurować aplikację klienta używaną przez usługę Wyszukiwanie AI platformy Azure do wywoływania usługi Work IQ:
Zarejestruj aplikację w dzierżawie Microsoft Entra, w której chcesz zarządzać zgodą aplikacji Work IQ. W sekcji Obsługiwane typy kont wybierz opcję Konta tylko w tym katalogu organizacyjnym.
Na stronie Przegląd rejestracji aplikacji skopiuj Identyfikator aplikacji (klienta) i Identyfikator katalogu (dzierżawy). Do skonfigurowania uwierzytelniania Work IQ potrzebny jest identyfikator aplikacji, a do zalogowania się do dzierżawy zawierającej rejestrację aplikacji — identyfikator dzierżawy.
Na stronie rejestracji aplikacji Udostępnianie interfejsu APIdodaj wymagany delegowany zakres o nazwie dokładnie
access_as_user. Użyj tej nazwy zapisanej małymi literami; nie podstawiaj innej nazwy zakresu. Pełny zakres toapi://<application-client-id>/access_as_user.Na stronie Uprawnienia interfejsu API w rejestracji aplikacji wybierz Dodaj uprawnienie>Interfejsy API używane przez moją organizację.
Wyszukaj pozycję Work IQ (identyfikator
fdcc1f02-fc51-4226-8753-f668596af7f7aplikacji), wybierz pozycję Delegowane uprawnienia>WorkIQAgent.Ask, a następnie wybierz pozycję Dodaj uprawnienia.Poproś administratora z rolą umożliwiającą wyrażenie zgody, wymienioną w wymaganiach wstępnych, aby na tej samej stronie wybrał opcję Udziel zgody administratora dla [Twoja dzierżawa]. Ta zgoda umożliwia aplikacji wymianę asercji użytkownika na delegowany token Work IQ.
Konfigurowanie tożsamości usługi wyszukiwania
Aby skonfigurować tożsamość używaną przez usługę Wyszukiwanie AI platformy Azure do uwierzytelniania się jako aplikacja Work IQ:
Włącz tożsamość zarządzaną przypisaną przez system w usłudze wyszukiwania. Jeśli nie możesz użyć tożsamości przypisanej przez system, skonfiguruj dokładnie jedną tożsamość przypisaną przez użytkownika. Usługa wyszukiwania z wieloma tożsamościami przypisanymi przez użytkownika, bez tożsamości przypisanej przez system, nie jest obsługiwana.
Na stronie Tożsamość usługi wyszukiwania skopiuj identyfikator obiektu (podmiotu zabezpieczeń). Poświadczenie federacyjne używa tej wartości jako
subject.Przejdź do Microsoft Entra ID>Przegląd i skopiuj identyfikator dzierżawy. Poświadczenie federacyjne używa tej wartości w adresie
issuerURL.
Utwórz poświadczenie federacyjne
Aby utworzyć poświadczenie federacyjne dla tożsamości usługi wyszukiwania:
Utwórz plik o nazwie
credential.json. Zastąp elementy<search-service-name>,<search-service-tenant-id>oraz<search-service-principal-id>wartościami dla swojej usługi wyszukiwania.{ "name": "<search-service-name>-identity", "issuer": "https://login.microsoftonline.com/<search-service-tenant-id>/v2.0", "subject": "<search-service-principal-id>", "audiences": ["api://AzureADTokenExchange"] }Nazwa poświadczenia musi być unikatowa w ramach rejestracji aplikacji. Wartość
subjectmusi dokładnie odpowiadać identyfikatorowi podmiotu zabezpieczeń tożsamości zarządzanej. Niezgodność pojawia się podczas wykonywania zapytania, a nie podczas tworzenia źródła wiedzy.Zaloguj się do Azure CLI przy użyciu dzierżawy zawierającej rejestrację aplikacji.
az login --tenant <app-tenant-id> --allow-no-subscriptionsUtwórz poświadczenie federacyjne.
az ad app federated-credential create --id <application-client-id> --parameters credential.json --query id --output tsvSkopiuj dane wyjściowe polecenia. Użyj tej wartości dla
federatedCredentialIdpodczas tworzenia źródła wiedzy Work IQ.
Każde federacyjne poświadczenie jest powiązane z jednym identyfikatorem jednostki głównej tożsamości zarządzanej. Jeśli inna tożsamość usługi wyszukiwania używa rejestracji aplikacji, powtórz tę procedurę, używając unikatowej nazwy poświadczenia oraz identyfikatorów dzierżawy i podmiotu zabezpieczeń tej tożsamości. Użyj odpowiedniego identyfikatora poświadczenia w każdym źródle wiedzy Work IQ.
Konfigurowanie aplikacji klienckiej
Aby skonfigurować aplikację, która loguje użytkowników i wysyła żądania pobierania:
Na stronie Uprawnienia interfejsu API aplikacji klienckiej wybierz Dodaj uprawnienie>Interfejsy API używane przez moją organizację.
Wklej skopiowany wcześniej identyfikator aplikacji (klienta) w polu wyszukiwania, a następnie wybierz rejestrację aplikacji Work IQ.
Wybierz pozycję Delegowane uprawnienia>access_as_user, a następnie wybierz pozycję Dodaj uprawnienia.
Udziel wszystkich zgód wymaganych przez zasady zgody użytkownika obowiązujące u dzierżawcy. Jeśli wymagana jest zgoda administratora, niech administrator wybierze pozycję Udziel zgody administratora dla [Twojej dzierżawy].
Aplikacja kliencka może teraz zażądać potwierdzenia użytkownika dla rejestracji aplikacji Work IQ. Uprawnienie access_as_user nie udziela aplikacji klienckiej bezpośredniego dostępu do funkcji IQ pracy.
Wartości uwierzytelniania
Podczas tworzenia źródła wiedzy Work IQ użyj następujących wartości entraAppAuthentication z konfiguracji aplikacji w Microsoft Entra. Każda podana wartość musi być identyfikatorem GUID.
| Majątek | Wymagane | Value |
|---|---|---|
applicationId |
Yes | Identyfikator aplikacji (klienta) rejestracji aplikacji Work IQ. |
federatedCredentialId |
Yes | Identyfikator obiektu poświadczenia federacyjnego utworzonego w aplikacji. Nie jest to nazwa poświadczeń i nie jest identyfikatorem jednostki usługi wyszukiwania. |
tenantId |
No | Identyfikator katalogu (dzierżawy) rejestracji aplikacji. Pomiń tę właściwość, gdy rejestracja aplikacji i usługa wyszukiwania znajdują się w tej samej dzierżawie. Jeśli znajdują się w różnych tenantach, ta właściwość jest wymagana. |
Sprawdzanie istniejących źródeł wiedzy
Źródłem wiedzy jest obiekt najwyższego poziomu wielokrotnego użytku. Znajomość istniejących źródeł wiedzy jest przydatna w przypadku ponownego użycia lub nazewnictwa nowych obiektów.
Uruchom następujący kod, aby wyświetlić listę źródeł wiedzy według nazwy i typu.
// 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}");
}
Reference:SearchIndexClient
# 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})")
Reference:SearchIndexClient
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}
Dokumentacja:Źródła wiedzy — lista
Możesz również zwrócić pojedyncze źródło wiedzy według nazwy, aby przejrzeć jego definicję 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));
Reference:SearchIndexClient
# 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))
Reference:SearchIndexClient
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}
Dokumentacja:Źródła wiedzy — Pobierz
Poniższy obiekt JSON jest przykładową odpowiedzią dla źródła wiedzy 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
}
Tworzenie źródła wiedzy
Uruchom poniższy kod, aby utworzyć źródło wiedzy 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}'.");
Reference:SearchIndexClient, WorkIQKnowledgeSource
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}'.")
Reference:SearchIndexClient, WorkIQKnowledgeSource
@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>"
}
}
}
Dokumentacja:Źródła wiedzy — tworzenie lub aktualizowanie
Przypisywanie do bazy wiedzy
Jeśli źródło wiedzy jest zadowalające, dodaj je do bazy wiedzy.
Wykonywanie zapytań w bazie wiedzy
Po skonfigurowaniu bazy wiedzy wywołaj akcję pobierania lub endpoint MCP, aby przeszukać treści Work IQ. To źródło wiedzy ma unikalne mechanizmy egzekwowania uprawnień w czasie wykonywania zapytania oraz charakterystykę odpowiedzi.
Ważna
Work IQ może potrzebować od 40 do 60 sekund lub więcej, aby udzielić odpowiedzi. Aby uniknąć błędów przekroczenia limitu czasu, ustaw wartość maxRuntimeInSeconds w żądaniu pobierania na 120 lub wyższą.
Wymuszanie uprawnień w czasie wykonywania zapytania
Począwszy od wersji interfejsu API 2026-08-01-preview, źródła wiedzy Work IQ korzystają z przepływu tokenów w imieniu użytkownika (OBO) za pośrednictwem należącej do klienta rejestracji aplikacji w usłudze Microsoft Entra. Oprócz uwierzytelnienia żądania pobierania w celu Wyszukiwanie AI platformy Azure klient musi podać potwierdzenie użytkownika odbiorcy aplikacji dla zalogowanego użytkownika.
Aplikacja kliencka musi zalogować się do użytkownika i uzyskać potwierdzenie użytkownika. Sposób uzyskiwania asercji zależy od platformy i języka aplikacji. Użyj biblioteki Microsoft Authentication Library (MSAL) i przepływu kodu autoryzacji z mechanizmem Proof Key for Code Exchange (PKCE), aby zażądać dokładnego zakresu api://<application-client-id>/access_as_user.
Przed wysłaniem potwierdzenia użytkownika upewnij się, że:
-
audidentyfikuje rejestrację aplikacji Work IQ. -
scpzawieraaccess_as_user. -
oiditididentyfikują zalogowanego użytkownika i dzierżawę aplikacji.
Wyślij oba poświadczenia w tym samym żądaniu pobierania, jak pokazano w poniższym przykładzie. Użyj tokenu Wyszukiwanie AI platformy Azure lub klucza interfejsu API do uwierzytelniania usługi. Przekaż surową asercję użytkownika w nagłówku x-ms-query-work-iq-source-authorization, a nie x-ms-query-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);
Dokumentacja: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)
Dokumentacja: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
}
Referencja:Odzyskiwanie wiedzy - Pobieranie
Pomyślne żądanie zwraca 200 OK. Upewnij się, że activity zawiera wpis, w którym pole type ma wartość workIQ, a pole knowledgeSourceName odpowiada źródłu wiedzy Work IQ. Upewnij się również, że references zawiera wpis workIQ.
W poniższej tabeli wymieniono typowe błędy konfiguracji.
| Status | Przyczyna |
|---|---|
| 400 | Brakuje nagłówka autoryzacji Work IQ lub ma on nieprawidłowy format, brakuje wymaganych oświadczeń użytkownika albo usługa wyszukiwania nie ma obsługiwanej konfiguracji tożsamości zarządzanej. |
| 206 lub 502 | Źródło Work IQ nie powiodło się, ponieważ wymiana tokenu, zgoda, delegowane uprawnienie, poświadczenie federacyjne, autoryzacja usługi podrzędnej lub żądanie Work IQ nie powiodły się albo przekroczono limit czasu. Sprawdź błąd działania źródła.
206 Odpowiedź oznacza, że inne źródło powiodło się.
502 Odpowiedź oznacza, że każde wybrane źródło nie powiodło się lub wymagane źródło nie powiodło się. |
Pola odpowiedzi specyficzne dla Work IQ
Źródła wiedzy Work IQ zwracają wyniki w tablicy references, a informacje diagnostyczne dotyczące zapytania w tablicy activity. Każda pozycja odniesienia zawiera:
-
sourceData.parts[].text: Fragmenty tekstu oparte na danych z Work IQ. -
sourceData.parts[].data: Dane cytowań Work IQ. Elementy cytowania mają typapplication/vnd.ms-workiq-referencenośnika.
Poniższy przykład przedstawia odpowiedź na żądanie pobrania zawierającą odwołanie do źródła wiedzy Work IQ oraz odpowiadający mu rekord aktywności. Aby uzyskać szersze wskazówki dotyczące interpretowania odpowiedzi operacji pobierania, zobacz Przejrzyj odpowiedź.
Wskazówka
Aby otrzymywać sourceData odniesienia, ustaw wartość includeReferenceSourceData na true we wpisie źródła wiedzy w elemencie knowledgeSourceParams w żądaniu pobierania.
{
"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"
}
]
}
}
]
}
Usuwanie źródła wiedzy
Aby można było usunąć źródło wiedzy, należy usunąć dowolną bazę wiedzy, która odwołuje się do źródła wiedzy, lub zaktualizować definicję bazy wiedzy, aby usunąć odwołanie. W przypadku źródeł wiedzy, które generują potok indeksu i indeksatora, wszystkie wygenerowane obiekty również są usuwane. Jeśli jednak użyto istniejącego indeksu do utworzenia źródła wiedzy, indeks nie zostanie usunięty.
Jeśli spróbujesz usunąć używane źródło wiedzy, akcja zakończy się niepowodzeniem i zwróci listę baz wiedzy, których dotyczy problem.
Aby usunąć źródło wiedzy:
Pobierz listę wszystkich baz wiedzy w usłudze wyszukiwania.
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}"); }Reference:SearchIndexClient
Przykładowa odpowiedź może wyglądać następująco:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Uzyskaj pojedynczą definicję bazy wiedzy, aby sprawdzić odwołania do źródeł wiedzy.
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);Reference:SearchIndexClient
Przykładowa odpowiedź może wyglądać następująco:
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }Usuń bazę wiedzy lub, jeśli masz wiele źródeł wiedzy, zaktualizuj bazę wiedzy, aby usunąć źródło. W tym przykładzie pokazano usunięcie.
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.");Reference:SearchIndexClient
Usuń źródło wiedzy.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Reference:SearchIndexClient
Pobierz listę wszystkich baz wiedzy w usłudze wyszukiwania.
# 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}")Reference:SearchIndexClient
Przykładowa odpowiedź może wyglądać następująco:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Uzyskaj pojedynczą definicję bazy wiedzy, aby sprawdzić odwołania do źródeł wiedzy.
# 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)Reference:SearchIndexClient
Przykładowa odpowiedź może wyglądać następująco:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Usuń bazę wiedzy lub, jeśli masz wiele źródeł wiedzy, zaktualizuj bazę wiedzy, aby usunąć źródło. W tym przykładzie pokazano usunięcie.
# 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.")Reference:SearchIndexClient
Usuń źródło wiedzy.
# 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.")Reference:SearchIndexClient
Pobierz listę wszystkich baz wiedzy w usłudze wyszukiwania.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}Dokumentacja:Bazy wiedzy — lista
Przykładowa odpowiedź może wyglądać następująco:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Uzyskaj pojedynczą definicję bazy wiedzy, aby sprawdzić odwołania do źródeł wiedzy.
### Get a knowledge base definition GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Dokumentacja:Bazy wiedzy — pobieranie
Przykładowa odpowiedź może wyglądać następująco:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Usuń bazę wiedzy lub, jeśli masz wiele źródeł wiedzy, zaktualizuj bazę wiedzy, aby usunąć źródło. W tym przykładzie pokazano usunięcie.
### Delete a knowledge base DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Dokumentacja:Bazy wiedzy — usuwanie
Usuń źródło wiedzy.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Dokumentacja:Źródła wiedzy — usuwanie