Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Note
Azure AI Keresés a Azure portálon, REST API-kon és Azure SDK-k keresztül érhető el. Emellett a Foundry IQ-t is támogatja, amely a vállalati tartalmakat újrafelhasználható, engedélytudatos tudásbázisokká alakítja át az Microsoft Foundry portálon található ügynökök számára.
Important
Az (előzetes verzióban) megjelölt funkciókra, képességekre vagy tulajdonságokra nem vonatkozik szolgáltatási szintű szerződés, nem ajánlott éles számítási feladatokhoz, és az általános elérhetővé válásuk előtt változhatnak vagy korlátozhatók. Az Azure AI Keresés előzetes verziójú kifejezések az összes előzetes verziós funkcióra vonatkoznak, függetlenül attól, hogy önálló vagy egy általánosan elérhető funkció része.
A fájlalapú tudásforrás (előzetes) a kis és közepes méretű fájlkészleteket közvetlenül az Azure AI Keresésbe tölti fel az ügynökalapú visszakereséshez. A tudásbázisok egymástól függetlenül jönnek létre, egy tudásbázisban hivatkoznak rá, és földi adatként használják, amikor a tudásbázist futtatókörnyezetben kérdezik le.
A fájlismereti források akkor hasznosak, ha felügyelt feltöltési felületet szeretne ahelyett, hogy kiépítenie Azure Storage, konfigurálja a hozzáférést, és egy indexelő folyamatot hozna létre egy külső tárolón keresztül. Azure AI Keresés feldolgozza a feltöltött fájlokat, hogy a kinyert tartalom lekérhető legyen egy tudásbázisból.
Használjon inkább blob-tudásbázist, ha a fájlok már Azure Blob Storage vagy Azure Data Lake Storage Gen2 vannak, ha a fájlkészlet túllépi vagy valószínűleg meghaladja a fájlismereti forrás korlátait, vagy ha ütemezett betöltésre van szüksége. Akkor is használjon blobszintű tudásbázist, ha Azure Blob Storage életciklus-kezelési szabályzatokkal szeretné kezelni a forrásblobokat, vagy ha dokumentumszintű engedélyekre (előzetes verzió) van szüksége a Azure Storage engedélyeinek alapján.
Használat támogatása
| Azure Portál | Microsoft Foundry portál | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Prerequisites
Egy Azure AI Keresés szolgáltatás bármely régióban, amely lehetővé teszi az intelligens adatlekérést. A fájlismereti források támogatják a dedikált és a kiszolgáló nélküli díjszabási modelleket is. A modell és a szint részleteiért lásd: Díjszabási modell és szolgáltatási szint kiválasztása.
Tekintse át Azure AI Keresés költségeket. A modellhívások, a vektorizálás és más AI-feldolgozás külön díjakat vonhatnak maga után.
Kiszolgáló nélküli, sikeres fájlbetöltési műveletek számlázható számítást használnak fel. A sikertelen feltöltések nem járnak kiszolgáló nélküli számítási költségekkel.
Ha a havi ingyenes juttatáson túl fizetett ügynöki lekérésre van szüksége, engedélyezze a standard ügynöki lekérési tervet. A
knowledgeRetrieval=standardbeállítás eltér a kiszolgáló nélküli számítási és tárolási díjaktól, és nem választ ki díjszabási modellt.Támogatott formátumú fájlok.
Engedély tudásbázisok létrehozásához. Konfigurálja a kulcs nélküli hitelesítést a keresési szolgáltatás közreműködői szerepkörével a felhasználói fiókjához rendelve (ajánlott), vagy használjon rendszergazdai API-kulcsot.
Ha a tudásforrás beágyazásokhoz Azure OpenAI-modellt ad meg, a keresési szolgáltatásnak a Microsoft Foundry-erőforráson felügyelt identitással kell rendelkeznie Cognitive Services User engedélyekkel.
- Ha az Foundry-erőforrás nyilvános hálózati hozzáférése le van tiltva, hozzon létre egy
foundry_accountmegosztott privát hivatkozást a keresési szolgáltatásból az Foundry-erőforráshoz, és engedélyezze az erőforrás Engedélyezési Azure szolgáltatásait a megbízható szolgáltatások listájának beállításában.
- Ha az Foundry-erőforrás nyilvános hálózati hozzáférése le van tiltva, hozzon létre egy
Ha a tudásbázis megadja a
standardtartalomkinyerési módot, tekintse át a Azure Tartalomértés képesség követelményeit.A használat díja a
aiServicessegítségével konfigurált Foundry-erőforráshoz tartozó Foundry Toolsban elérhető Azure Content Understanding díjszabása szerint kerül felszámításra.Az egyes beépített készségek számára elérhető napi 20 dokumentumos ingyenes juttatás nem érvényes.
A cikkben szereplő példához szüksége van az Foundry erőforrásvégpontra és -kulcsra, valamint Azure OpenAI-beágyazási és csevegés-befejezési modell adataira.
A legújabb
Azure.Search.Documentselőzetes csomag:dotnet add package Azure.Search.Documents --prereleaseKulcs nélküli hitelesítés esetén a
Azure.Identitycsomag:dotnet add package Azure.Identity
A legújabb
azure-search-documentselőzetes csomag:pip install --pre azure-search-documentsKulcs nélküli hitelesítés esetén a
azure-identitycsomag:pip install azure-identity
A Search Service REST API 2026-08-01 előzetes verziója .
Kulcs nélküli hitelesítéshez minden HTTP-kérés fejlécében adjon meg egy
Authorization.
Fájltámogatás és korlátozások
Mielőtt létrehoz egy fájlismereti forrást, tekintse át a fájlok feltöltésére, kinyerésére és kezelésére vonatkozó követelményeket és korlátokat.
Támogatott tartalomtípusok
A fájlismereti források az észlelt tartalomtípus alapján fogadják el a fájlokat. A hívó által biztosított tartalomtípus nem bírálja felül az észlelést.
A támogatott tartalomtípusok a következők:
- Word (
.doc,.docx) - PowerPoint (
.ppt,.pptx) - Excel (
.xls,.xlsx) - JSON
- Rendszerhéj-parancsprogramok
- A következőként észlelt tartalom:
text/*, például.txt,.md,.htmlés.csv
Támogatott kinyerési módok
A felsorolt tartalomtípusok esetében mind a
2026-05-01-preview, mind a2026-08-01-previewtámogatja aminimal-t.standardcsak itt érhető el:2026-08-01-previewA(z)
image/*-ként észlelt tartalom nem támogatott itt:2026-05-01-preview. A2026-08-01-previewesetében használja astandardkinyerést.minimalaz extrakció http-állapotot415ad vissza mindkét verzióban.
Korlátok és fájlműveletek
A korlátok és a támogatott fájlműveletek API-verziónként eltérőek.
| Képesség | 2026-05-01-preview |
2026-08-01-preview |
|---|---|---|
| Fájlok maximális száma tudásbázisonként | 100 | 200 |
| Maximális fájlméret | 50 MB az összes támogatott tarifacsomagon | 50 MB ingyenesen és alapszintűen; 100 MB más támogatott dedikált szinteken és kiszolgáló nélküli eszközökön |
| Feldolgozási időtartam | A feltöltés akár 180 másodpercig is futtatható | A feltöltés és a frissítés akár 180 másodpercig is futtatható |
| Tartalom és metaadatok feltöltése | Nyers fájltartalom | Nyers fájltartalom vagy többrészes tartalom metaadatokkal |
| Feltöltött fájlok listázása | Fájlok listázása | Szűrés elérési út vagy fájlnév alapján, és részletesebb fájladatokat ad vissza |
| Meglévő fájltartalom cseréje | Törlés és újrafeltöltés | Frissítési művelet használata |
| A fájlműveletekhez való böngészőhozzáférés | A CORS nem érhető el | A CORS konfigurálása |
Note
- A létrehozott keresési index tárolja a feltöltött tartalmat. A teljes tárterületkorlátot tarifacsomag szerint a szolgáltatási korlátok között tekintheti meg.
- Ha a fájlismereti forrást úgy konfigurálja, hogy a feltöltött tartalmat darabolja vagy vektorizálja, a modell és az alsóbb réteg feldolgozási korlátai is érvényesek.
Meglévő tudásbázisok keresése
A tudásbázis egy legfelső szintű, újrafelhasználható objektum. A meglévő tudásbázisok ismerete hasznos lehet az új objektumok újbóli felhasználásához vagy elnevezéséhez.
Futtassa az alábbi kódot a tudásbázisok név és típus szerinti listázásához.
// 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}");
}
Referencia: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})")
Referencia:SearchIndexClient
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}
Referencia:Tudásbázisok – Lista
A JSON-definíció áttekintéséhez lekérdezhet egyetlen tudásforrást a név megadásával.
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));
Referencia: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))
Referencia:SearchIndexClient
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}
Referencia:Tudásforrások – Get
Az alábbi JSON egy példaválasz egy fájlismereti forráshoz.
{
"name": "my-file-ks",
"kind": "file",
"description": "A sample file knowledge source.",
"encryptionKey": null,
"fileParameters": {
"ingestionParameters": {
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
}
}
}
}
Tudásbázis létrehozása
Hozzon létre egy fájlismereti forrást, amely meghatározza a feltöltött tartalom vektorizálásához használt beágyazási modellt.
Minden fájlismereti forrás létrehoz egy indexet, de nem indexelőt vagy ütemezést. Tartalmaznia kell az fileParameters.ingestionParameters objektumot. A szolgáltatás elutasítja a megadott networkAccessModekéréseket.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
ContentExtractionMode = "minimal",
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var fileParams = new FileKnowledgeSourceParameters
{
IngestionParameters = ingestionParams
};
var knowledgeSource = new FileKnowledgeSource(
name: "my-file-ks",
fileParameters: fileParams
)
{
Description = "This knowledge source uses directly uploaded product manuals."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Referencia:SearchIndexClient
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
FileKnowledgeSource,
FileKnowledgeSourceParameters,
)
from azure.search.documents.knowledgebases.models import (
KnowledgeSourceAzureOpenAIVectorizer,
KnowledgeSourceIngestionParameters,
)
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
embedding_params = AzureOpenAIVectorizerParameters(
resource_url="<aoai-endpoint>",
deployment_name="<aoai-embedding-deployment>",
model_name="<aoai-embedding-model>",
)
ingestion_params = KnowledgeSourceIngestionParameters(
content_extraction_mode="minimal",
embedding_model=KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=embedding_params
),
)
knowledge_source = FileKnowledgeSource(
name="my-file-ks",
description="This knowledge source uses directly uploaded product manuals.",
file_parameters=FileKnowledgeSourceParameters(ingestion_parameters=ingestion_params),
)
index_client.create_or_update_knowledge_source(knowledge_source=knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Referencia:SearchIndexClient
PUT {{search-endpoint}}/knowledgesources/my-file-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
Prefer: return=representation
{
"name": "my-file-ks",
"kind": "file",
"description": "This knowledge source uses directly uploaded product manuals.",
"encryptionKey": null,
"fileParameters": {
"ingestionParameters": {
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
},
"contentExtractionMode": "minimal"
}
}
}
Referencia:Tudásforrások – Létrehozás vagy frissítés
Szabványos kinyerés konfigurálása
A standard API-verziótól kezdve a 2026-08-01-preview-kinyerés a Content Understanding segítségével kinyeri, szemantikai egységekre bontja és gazdagítja a feltöltött fájlokat. Azure AI Keresés ezt a feldolgozást a tudásbázis részeként kezeli, és a Tartalomértés díjai külön-külön érvényesek.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
var embeddingParameters = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParameters = new KnowledgeSourceIngestionParameters
{
ContentExtractionMode = KnowledgeSourceContentExtractionMode.Standard,
AiServices = new AIServices(new Uri(foundryEndpoint)) { ApiKey = foundryKey },
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParameters
},
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(
new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiChatDeployment,
ModelName = aoaiChatModel
})
};
var knowledgeSource = new FileKnowledgeSource(
"my-file-ks",
new FileKnowledgeSourceParameters { IngestionParameters = ingestionParameters });
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Configured standard extraction for '{knowledgeSource.Name}'.");
Referencia:SearchIndexClient
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
FileKnowledgeSource,
FileKnowledgeSourceParameters,
KnowledgeBaseAzureOpenAIModel,
)
from azure.search.documents.knowledgebases.models import (
AIServices,
KnowledgeSourceAzureOpenAIVectorizer,
KnowledgeSourceIngestionParameters,
)
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
embedding_parameters = AzureOpenAIVectorizerParameters(
resource_url="<aoai-endpoint>",
deployment_name="<aoai-embedding-deployment>",
model_name="<aoai-embedding-model>",
)
ingestion_parameters = KnowledgeSourceIngestionParameters(
content_extraction_mode="standard",
ai_services=AIServices(
uri="<foundry-resource-endpoint>",
api_key="<foundry-resource-key>",
),
embedding_model=KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=embedding_parameters
),
chat_completion_model=KnowledgeBaseAzureOpenAIModel(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
resource_url="<aoai-endpoint>",
deployment_name="<aoai-gpt-deployment>",
model_name="<aoai-gpt-model>",
)
),
)
knowledge_source = FileKnowledgeSource(
name="my-file-ks",
file_parameters=FileKnowledgeSourceParameters(
ingestion_parameters=ingestion_parameters
),
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Configured standard extraction for '{knowledge_source.name}'.")
Referencia:SearchIndexClient
PUT {{search-endpoint}}/knowledgesources/my-file-ks?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
Prefer: return=representation
{
"name": "my-file-ks",
"kind": "file",
"description": "This knowledge source uses standard extraction.",
"fileParameters": {
"ingestionParameters": {
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-gpt-deployment}}",
"modelName": "{{aoai-gpt-model}}"
}
},
"contentExtractionMode": "standard",
"aiServices": {
"uri": "{{foundry-resource-endpoint}}",
"apiKey": "{{foundry-resource-key}}"
}
}
}
}
Referencia:Tudásforrások – Létrehozás vagy frissítés
CORS fájlműveletekhez
A böngészőalapú fájlműveletek engedélyezéséhez állítsa be a fájlalapú tudásforráson a corsOptions értéket az alkalmazáshoz tartozó megbízható eredetekkel és a preflight gyorsítótárazás maximális időtartamával.
Important
Az API-verzióban a 2026-08-01-preview fájlfeltöltésre, corsOptions a listára, a frissítésre és a végpontok törlésére vonatkozik a kinyerési módtól függetlenül. Ha kihagyja corsOptions, a fájlismereti forrás nem rendelkezik böngészőközi házirenddel. A CORS nem engedélyezi a kéréseket. A forrásadatok engedélyezésével a szolgáltatásműveleteket és az adatokat böngészőkörnyezetben teheti elérhetővé, és biztonsági kockázatokat okozhat. Csak megbízható eredeteket adjon meg, és ne használjon helyettesítő karakteres eredetet éles környezetben. Böngészőkérések esetén használja Microsoft Entra jogkivonat-hitelesítést a minimálisan szükséges szerepkörrel. Soha ne tegye elérhetővé a hozzáférési jogkivonatokat vagy a szolgáltatáskulcsokat a böngészőkódban.
Fájlok feltöltése
A tudásbázis létrehozása után közvetlenül töltse fel a fájlokat. Minden feltöltés egy szinkron hívás: Azure AI Keresés kinyeri a tartalmat, darabkázza, szükség esetén beágyazásokat hoz létre, indexeli az adattömböket, és megőrzi a fájl metaadatait a hívás visszatérése előtt. Nem kell külön betöltési folyamatot konfigurálnia vagy futtatnia.
A fájlok feltöltésével és kezelésével kapcsolatos hibákkal kapcsolatos segítségért tekintse meg a fájlműveletek hibaelhárítását.
Raw fájl feltöltése
Nyers feltöltés esetén a felsorolt fileName a Content-Disposition: attachment; filename="..." fejlécből származik. A REST-hívások és a .NET SDK közvetlenül állítja be ezt a fejlécet, míg a Python SDK elfogad egy filename paramétert, és automatikusan létrehozza a fejlécet. Ha nem ad meg fájlnevet, a szolgáltatás automatikusan generált fileNamenevet rendel hozzá.
A fájlnevek tartalmazhatnak relatív elérési utat, például manuals/installation-guide.pdf. A szolgáltatás a visszaperjeleket perjelekké normalizálja. Elutasítja az abszolút elérési utakat, üres elérési utakat vagy .. szegmenseket., kettőspontot tartalmazó szegmenseket és érvénytelen HTTP-állapotú 400fájlnév karaktereket.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
string fileName = "installation-guide.pdf";
byte[] fileBytes = await File.ReadAllBytesAsync(fileName);
string contentDisposition = $"attachment; filename=\"{fileName}\"";
KnowledgeSourceFile uploadedFile = (await indexClient.UploadKnowledgeSourceFileAsync(
"my-file-ks",
contentDisposition,
BinaryData.FromBytes(fileBytes))).Value;
Console.WriteLine($"Uploaded file ID: {uploadedFile.FileId}");
from pathlib import Path
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
file_path = Path("installation-guide.pdf")
uploaded_file = index_client.upload_knowledge_source_file(
"my-file-ks",
file_path.read_bytes(),
filename=file_path.name,
)
print(f"Uploaded file ID: {uploaded_file.file_id}")
POST {{search-endpoint}}/knowledgesources/my-file-ks/files?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="installation-guide.pdf"
<binary file content>
Referencia:Tudásforrások – Fájl feltöltése
Fájl feltöltése választható metaadatokkal
Az API-verziótól 2026-08-01-preview kezdve használjon többrészes kérést egy bináris fájl feltöltéséhez opcionális egyéni metaadatokkal. A kérelem pontosan egy content részt és egy opcionális JSON-részt metadata tartalmaz.
Ha mindkét név meg van adva, metadata.fileName elsőbbséget élvez a fájlnévvel szemben.content Ha egyik sincs megadva, a szolgáltatás automatikusan létrehozott fájlnevet rendel hozzá.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
var metadata = new FileUploadMetadata
{
FileName = "installation-guide.pdf",
Metadata =
{
["department"] = "support",
["product"] = "contoso-100"
}
};
#pragma warning disable SCME0004
var request = new UploadKnowledgeSourceFileMultipartRequest(
metadata,
"installation-guide.pdf");
KnowledgeSourceFile uploadedFile = (await indexClient
.UploadKnowledgeSourceFileMultipartAsync("my-file-ks", request)).Value;
#pragma warning restore SCME0004
Console.WriteLine($"Uploaded file ID: {uploadedFile.FileId}");
Hivatkozás:SearchIndexClient.UploadKnowledgeSourceFileMultipartAsync
from pathlib import Path
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
FileUploadMetadata,
UploadKnowledgeSourceFileMultipartRequest,
)
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
file_path = Path("installation-guide.pdf")
request = UploadKnowledgeSourceFileMultipartRequest(
metadata=FileUploadMetadata(
file_name=file_path.name,
metadata={"department": "support", "product": "contoso-100"},
),
content=(file_path.name, file_path.read_bytes(), "application/pdf"),
)
uploaded_file = index_client.upload_knowledge_source_file_multipart(
name="my-file-ks",
body=request,
)
print(f"Uploaded file ID: {uploaded_file.file_id}")
Hivatkozás:SearchIndexClient.upload_knowledge_source_file_multipart
POST {{search-endpoint}}/knowledgesources('my-file-ks')/files?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: multipart/form-data; boundary=file-boundary
--file-boundary
Content-Disposition: form-data; name="metadata"
Content-Type: application/json
{
"fileName": "installation-guide.pdf",
"metadata": {
"department": "support",
"product": "contoso-100"
}
}
--file-boundary
Content-Disposition: form-data; name="content"; filename="installation-guide.pdf"
Content-Type: application/octet-stream
< ./installation-guide.pdf
--file-boundary--
Referencia:Tudásforrások – Fájl feltöltése
Note
A fájl feltöltése nem helyettesíti a meglévő fájlokat, még akkor sem, ha ugyanazt fileNamehasználja újra. Minden sikeres feltöltés egy új fájlt hoz létre saját fileId-val, így a feltöltött fájlok listája több olyan bejegyzést is tartalmazhat, amelyek ugyanazon a fileName-n osztoznak.
Ezzel 2026-05-01-previewa beállítással cserélje le a tartalmat a korábbi fájl törlésével és a csere feltöltésével. A(z) 2026-08-01-preview használatával használja a frissítési műveletet.
Feltöltött fájlok listázása
Listázhatja a tudásbázis fájljait a feltöltött fájlkészlet vizsgálatához.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
await foreach (KnowledgeSourceFile file in indexClient.GetKnowledgeSourceFilesAsync("my-file-ks"))
{
Console.WriteLine($"{file.FileName} ({file.FileSizeBytes} bytes) error={file.ErrorMessage}");
}
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
for file in index_client.list_knowledge_source_files("my-file-ks"):
print(f"{file.file_name} ({file.file_size_bytes} bytes) error={file.error_message}")
GET {{search-endpoint}}/knowledgesources/my-file-ks/files?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Referencia:Tudásforrások – Fájlok listázása
A válasz minden feltöltött fájl metaadatait tartalmazza. A sikeresen felsorolt fájlok errorMessage értéke : null.
{
"value": [
{
"fileId": "file-abc123",
"fileName": "installation-guide.pdf",
"fileSizeBytes": 1048576,
"createdAt": "2026-05-07T18:10:00Z",
"lastUpdatedAt": "2026-05-07T18:14:00.803Z",
"errorMessage": null
}
]
}
Ha egy új feltöltés sikertelen, a kérés hibát ad vissza, és nem hoz létre fájl metaadatrekordot. A sikertelen feltöltés nem jelenik meg a későbbi listaeredményekben, és nincs számlázva.
Ha a modell hozzáférési hibája történik, és a beágyazási modellt üzemeltető Foundry-erőforrás privát hálózatkezelést használ, ellenőrizze, hogy a foundry_account megosztott privát kapcsolat engedélyezve van-e, és engedélyezve van-e a megbízható szolgáltatások megkerülése. A letiltott bypass a(z) 403 Public access is disabled értéket adja vissza. A beállítás részleteiért tekintse meg az előfeltételeket.
Fájlok listázása és szűrése
A 2026-08-01-preview API-verziótól kezdve használja a search elemet a fájlok relatív útvonal szerinti szűrésére, illetve a prefix elemet a fájlnév-előtag szerinti szűrésre. Állítsa be a(z) pageSize elemet az eredmények számának szabályozásához.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
await foreach (KnowledgeSourceFile file in indexClient.GetKnowledgeSourceFilesAsync(
"my-file-ks",
prefix: "manuals/",
pageSize: 100))
{
Console.WriteLine($"{file.FileName} ({file.FileId})");
}
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
files = index_client.list_knowledge_source_files(
"my-file-ks",
prefix="manuals/",
page_size=100,
)
for file in files:
print(f"{file.file_name} ({file.file_id})")
GET {{search-endpoint}}/knowledgesources('my-file-ks')/files?api-version=2026-08-01-preview&prefix=manuals/&pageSize=100
Authorization: Bearer {{search-access-token}}
Referencia:Tudásforrások – Fájlok listázása
A válasz tartalmazza a szolgáltatás által kiválasztott elemzési és kinyerési módokat, valamint a fájlkezelés felhasználói metaadatait. A felhasználói metaadatok nem kereshetők és nem szűrhetők.
{
"value": [
{
"fileId": "file-abc123",
"fileName": "manuals/installation-guide.md",
"prefix": "manuals/",
"metadata": {
"department": "support",
"product": "contoso-100"
},
"parsingMode": "markdown",
"extractionMode": "minimal",
"fileSizeBytes": 1048576,
"createdAt": "2026-08-03T18:10:00Z",
"lastUpdatedAt": "2026-08-03T18:14:00Z",
"errorMessage": null
}
],
"@odata.nextLink": "<service-generated continuation URL>"
}
Az összes eredmény lekéréséhez kövesse a(z) @odata.nextLink elemet, amíg az el nem tűnik. Küldje el a teljes URL-címet pontosan a visszaadott módon, a lekérdezési paraméterek módosítása nélkül.
Feltöltött fájl frissítése
A 2026-08-01-preview API-verziótól kezdve frissítsen egy fájlt a fileId alapján. A többrészes kérelemhez a bináris content rész szükséges. A metaadatok JSON-része nem kötelező, ezért a csak tartalommal rendelkező frissítés támogatott. A csak metaadat-alapú frissítések nem támogatottak.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
var metadata = new FileUploadMetadata
{
FileName = "installation-guide.pdf",
Metadata =
{
["department"] = "support",
["product"] = "contoso-200"
}
};
#pragma warning disable SCME0004
var request = new UpdateKnowledgeSourceFileRequest(
metadata,
"installation-guide.pdf");
KnowledgeSourceFile updatedFile = (await indexClient.UpdateKnowledgeSourceFileAsync(
fileId,
"my-file-ks",
request)).Value;
#pragma warning restore SCME0004
Console.WriteLine($"Updated file ID: {updatedFile.FileId}");
from pathlib import Path
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
FileUploadMetadata,
UpdateKnowledgeSourceFileRequest,
)
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
file_path = Path("installation-guide.pdf")
request = UpdateKnowledgeSourceFileRequest(
metadata=FileUploadMetadata(
file_name=file_path.name,
metadata={"department": "support", "product": "contoso-200"},
),
content=(file_path.name, file_path.read_bytes(), "application/pdf"),
)
updated_file = index_client.update_knowledge_source_file(
name="my-file-ks",
file_id=file_id,
body=request,
)
print(f"Updated file ID: {updated_file.file_id}")
PUT {{search-endpoint}}/knowledgesources('my-file-ks')/files('{{file-id}}')?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: multipart/form-data; boundary=file-boundary
--file-boundary
Content-Disposition: form-data; name="metadata"
Content-Type: application/json
{
"fileName": "installation-guide.pdf",
"metadata": {
"department": "support",
"product": "contoso-200"
}
}
--file-boundary
Content-Disposition: form-data; name="content"; filename="installation-guide.pdf"
Content-Type: application/octet-stream
< ./installation-guide.pdf
--file-boundary--
Referencia:Tudásforrások – Fájl frissítése
Ha egy frissítés meghiúsul, az előző metaadatrekord megmarad. Ne feltételezzük, hogy egy frissítés tranzakciósan módosítja az indexelt tartalmat.
Feltöltött fájlok törlése
Törölje a fájlokat a tudásbázisból, ha már nem szeretné, hogy azok lekérésre elérhetők legyenek.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
await indexClient.DeleteKnowledgeSourceFileAsync("my-file-ks", "file-abc123");
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
index_client.delete_knowledge_source_file("my-file-ks", "file-abc123")
DELETE {{search-endpoint}}/knowledgesources/my-file-ks/files/file-abc123?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Referencia:Tudásforrások – Fájl törlése
Hozzárendelés tudásbázishoz
Ha elégedett a tudásbázissal, adja hozzá egy tudásbázishoz.
Tudásbázis lekérdezése
A tudásbázis konfigurálása után hívja meg a lekérési műveletet vagy az MCP-végpontot a tudásbázis lekérdezéséhez.
Tudásbázis törlése
Mielőtt törölhet egy tudásbázist, törölnie kell minden olyan tudásbázist, amely hivatkozik rá, vagy frissítenie kell a tudásbázis definícióját a hivatkozás eltávolításához. Az index- és indexelőfolyamatot létrehozó tudásbázisok esetében a rendszer az összes létrehozott objektumot is törli. Ha azonban egy meglévő indexet használt egy tudásbázis létrehozásához, az index nem törlődik.
Ha egy használatban lévő tudásbázist próbál törölni, a művelet meghiúsul, és visszaadja az érintett tudásbázisok listáját.
Tudásbázis törlése:
Szerezze be a keresési szolgáltatás összes tudásbázisának listáját.
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}"); }Referencia:SearchIndexClient
Egy példaválasz az alábbihoz hasonlóan nézhet ki:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Szerezze be az egyéni tudásbázisdefiníciót a tudásbázishivatkozások kereséséhez.
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);Referencia:SearchIndexClient
Egy példaválasz az alábbihoz hasonlóan nézhet ki:
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }Törölje a tudásbázist, vagy ha több tudásbázist használ, frissítse a tudásbázist a forrás eltávolításához. Ez a példa a törlést mutatja be.
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.");Referencia:SearchIndexClient
Törölje a tudásbázist.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Referencia:SearchIndexClient
Szerezze be a keresési szolgáltatás összes tudásbázisának listáját.
# 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}")Referencia:SearchIndexClient
Egy példaválasz az alábbihoz hasonlóan nézhet ki:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Szerezze be az egyéni tudásbázisdefiníciót a tudásbázishivatkozások kereséséhez.
# 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)Referencia:SearchIndexClient
Egy példaválasz az alábbihoz hasonlóan nézhet ki:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Törölje a tudásbázist, vagy ha több tudásbázist használ, frissítse a tudásbázist a forrás eltávolításához. Ez a példa a törlést mutatja be.
# 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.")Referencia:SearchIndexClient
Törölje a tudásbázist.
# 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.")Referencia:SearchIndexClient
Szerezze be a keresési szolgáltatás összes tudásbázisának listáját.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}Referencia:Tudásbázisok – Lista
Egy példaválasz az alábbihoz hasonlóan nézhet ki:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Szerezze be az egyéni tudásbázisdefiníciót a tudásbázishivatkozások kereséséhez.
### Get a knowledge base definition GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referencia:Tudásbázisok – Get
Egy példaválasz az alábbihoz hasonlóan nézhet ki:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Törölje a tudásbázist, vagy ha több tudásbázist használ, frissítse a tudásbázist a forrás eltávolításához. Ez a példa a törlést mutatja be.
### Delete a knowledge base DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referencia:Tudásbázisok – Törlés
Törölje a tudásbázist.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referencia:Tudásforrások – Törlés
Fájlműveletek hibaelhárítása
Az alábbi állapotkódok a tudásbázisfájl-műveletekre vonatkoznak.
| Állapotkód | Ok és művelet |
|---|---|
400 |
A fájl üres, nem tartalmaz kinyerhető szöveget, nem biztonságos relatív elérési út van, vagy érvénytelen folytatási kérelemmel rendelkezik. Ellenőrizze, hogy a fájl támogatott, olvasható tartalommal és érvényes fájlnévvel rendelkezik-e. Listaműveletek esetén pontosan kövesse a visszaadott @odata.nextLink elemet. Ne kombinálja a(z) $skiptoken elemet a(z) pageSize vagy search elemmel. |
409 |
A fájlismereti forrás elérte az API-verzió fájlkorlátját. Fájlok törlése további feltöltés előtt. |
415 |
A szolgáltatás nem támogatott MIME-típust észlelt, vagy képet észlelt, miközben a tudásbázis minimális kinyerést használ. Használjon támogatott formátumot. Képek esetén használjon szabványos kinyerést. Ha csak a hívó által megadott tartalomtípust módosítja, az nem bírálja felül az észlelést. |
429 |
A feldolgozási üzenetsor megtelt. Használjon határolt párhuzamosságot, és próbálkozzon újra exponenciális visszalépéssel. A szolgáltatás nem garantálja a Retry-After fejlécet. |
504 |
A feldolgozás meghaladta a 180 másodpercet a fájlfeltöltés vagy -frissítés során. Csökkentse a fájl méretét vagy összetettségét, és próbálkozzon újra. |