← Přehled / ai-search / api / items
Workers binding
Workers poskytuje bezserverové prostředí pro spouštění kódu, ve kterém můžete vytvářet nové aplikace nebo rozšiřovat ty stávající. Použijte Workers binding k nahrávání, výpisu a správě dokumentů ve vašich instancích AI Search z Cloudflare Workeru. K Items API přistupujte prostřednictvím items vlastnost na handle instance.
Nakonfigurujte binding
Chcete-li používat AI Search s Workers, musíte vytvořit vazbu AI Search. Vazby vytváříte úpravou svého Konfigurace Wrangleru. AI Search nabízí dva typy bindingů:
- Vazba jmenného prostoru:
ai_search_namespaces - Vazba instance:
ai_search
Vazba jmenného prostoru
Přístup ke všem instancím v rámci namespace. Instance můžete za běhu získávat, vytvářet, vypisovat a mazat.
{
"$schema": "./node_modules/wrangler/config-schema.json",
"compatibility_date": "2026-03-27",
"ai_search_namespaces": [
{
"binding": "AI_SEARCH",
"namespace": "my-namespace"
}
]
}compatibility_date = "2026-03-27"
[[ai_search_namespaces]]
binding = "AI_SEARCH"
namespace = "my-namespace"| Pole | Typ | Povinné | Popis |
|---|---|---|---|
binding |
string | Ano | Název proměnné dostupné na env. Například "AI_SEARCH" jej zpřístupňuje jako env.AI_SEARCH. |
namespace |
string | Ano | namespace ke kterému se má vytvořit vazba. Namespace default namespace se automaticky vytvoří pro každý účet. Pokud namespace neexistuje, Wrangler jej při nasazení vytvoří. |
remote |
boolean | Ne | Nastavte na true pro lokální vývoj s wrangler dev. |
Vazba instance
Navažte přímou vazbu na jedinou instanci v default jmenný prostor. Použijte to v případě, že víte, kterou instanci potřebujete už v době nasazení.
{
"$schema": "./node_modules/wrangler/config-schema.json",
"compatibility_date": "2026-03-27",
"ai_search": [
{
"binding": "MY_SEARCH",
"instance_name": "my-instance"
}
]
}compatibility_date = "2026-03-27"
[[ai_search]]
binding = "MY_SEARCH"
instance_name = "my-instance"| Pole | Typ | Povinné | Popis |
|---|---|---|---|
binding |
string | Ano | Název proměnné dostupné na env. Například "MY_SEARCH" jej zpřístupňuje jako env.MY_SEARCH. |
instance_name |
string | Ano | Název instance AI Search. Musí existovat ve výchozím namespace v době nasazení. |
remote |
boolean | Ne | Nastavte na true pro lokální vývoj s wrangler dev. |
Metody
Metody Items API jsou dostupné jak u ai_search_namespaces a ai_search vazby. U vazby jmenného prostoru volejte metody na handle vráceném get(). S vazbou instance volejte metody přímo na vazbě (například env.MY_SEARCH.items.upload()).
Níže uvedené příklady používají vazbu jmenného prostoru.
const instance = env.AI_SEARCH.get("my-instance");items.upload()
Nahraje dokument k indexaci. Vrátí odpověď okamžitě. Dokument se zařadí do fronty ke zpracování.
// Upload from a string
await instance.items.upload(
"faq.md",
"# FAQ\n\nQ: How do I reset my password?\nA: Go to Settings > Security...",
);
// Upload from an ArrayBuffer
const pdfResponse = await fetch("https://example.com/guide.pdf");
const pdfBuffer = await pdfResponse.arrayBuffer();
await instance.items.upload("guide.pdf", pdfBuffer);
// Upload from a ReadableStream
await instance.items.upload("doc.txt", request.body);Nahrávání s metadaty
Připojte vlastní metadata k dokumentu, aby ho bylo možné filtrovat ve vyhledávacích dotazech. Vlastní pole metadat je nutné nejprve definovat na instanci pomocí update() metoda, nebo v okamžiku vytvoření.
await instance.items.upload("guide.pdf", pdfBuffer, {
metadata: {
category: "onboarding",
language: "en",
version: "2.0",
},
});Parametry
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
name |
string | Ano | Název souboru pro nahraný dokument. Používá se jako klíč položky. |
content |
ReadableStream, ArrayBuffer nebo string | Ano | Obsah dokumentu. Maximální velikost souboru je 4 MB. U prostého textu nebo formátu Markdown předejte řetězec, u ArrayBuffer pro binární soubory, nebo ReadableStream pro streamované nahrávání. |
options.metadata |
Record<string, string> | Ne | Dvojice klíč-hodnota vlastních metadat, které se mají připojit k položce. Používají se pro filtrování v dotazech vyhledávání. Maximálně 5 položek na instanci. |
Odpověď
| Pole | Typ | Popis |
|---|---|---|
id |
string | Jedinečný identifikátor položky. |
key |
string | Název souboru nebo klíč položky. |
items.uploadAndPoll()
Nahraje dokument a čeká na dokončení zpracování, nebo dokud není dosaženo časového limitu. Použijte tuto možnost, pokud potřebujete dokument prohledat ihned po nahrání.
// Wait for a specific document to finish indexing before searching
const item = await instance.items.uploadAndPoll(
"handbook.txt",
handbookContent,
);
console.log(`handbook.txt status: ${item.status}`); // "completed"
// Now search across all uploaded documents
const results = await instance.search({
messages: [{ role: "user", content: "password reset policy" }],
});Parametry
Stejné jako items.upload(), s dalšími možnostmi dotazování:
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
options.pollIntervalMs |
number | Ne | Jak často se má kontrolovat stav položky, v milisekundách. Výchozí hodnota: 1000. |
options.timeoutMs |
number | Ne | Maximální doba čekání na dokončení zpracování v milisekundách. Výchozí hodnota: 30000. |
Odpověď
Po dokončení dotazování vrátí úplný objekt položky:
| Pole | Typ | Popis |
|---|---|---|
id |
string | Jedinečný identifikátor položky. |
key |
string | Název souboru nebo klíč položky. |
status |
string | Stav zpracování: queued, running, completed, error, skipped, outdated. |
chunks_count |
number | Počet částí obsahu vytvořených z dokumentu. |
file_size |
number | Velikost nahraného souboru v bajtech. |
metadata |
objekt | Metadata položky, včetně filename, folder, a timestamp. |
source_id |
string | Identifikátor zdroje (například builtin pro nahrané soubory). |
created_at |
string | Časové razítko vytvoření položky. |
last_seen_at |
string | Časové razítko posledního výskytu položky během indexování. |
items.list()
Vrátí stránkovaný seznam položek v instanci.
const { result, result_info } = await instance.items.list();
for (const item of result) {
console.log(`${item.key} (${item.status})`);
}
// result_info.total_count contains the total number of itemsParametry
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
page |
number | Ne | Číslo stránky, které se má vrátit. Výchozí hodnota: 1. |
per_page |
number | Ne | Počet položek na stránku. Výchozí hodnota: 20. Maximálně 50. |
status |
string | Ne | Filtrování podle stavu zpracování: queued, running, completed, error, skipped, nebo outdated. |
sort_by |
string | Ne | Pořadí řazení položek: status (výchozí) nebo modified_at. |
search |
string | Ne | Vyhledat položky podle textového obsahu. |
source |
string | Ne | Filtrování podle identifikátoru zdroje (například builtin pro nahrané soubory). |
Odpověď
| Pole | Typ | Popis |
|---|---|---|
result |
array | Pole objektů položky. |
result[].id |
string | Jedinečný identifikátor položky. |
result[].key |
string | Název souboru nebo klíč položky. |
result[].status |
string | Stav zpracování: queued, running, completed, error, skipped, outdated. |
result[].chunks_count |
number | Počet částí obsahu vytvořených z dokumentu. |
result[].file_size |
number | Velikost nahraného souboru v bajtech. |
result[].metadata |
objekt | Metadata položky, včetně filename, folder, a timestamp. |
result[].source_id |
string | Identifikátor zdroje (například builtin pro nahrané soubory). |
result[].created_at |
string | Časové razítko vytvoření položky. |
result[].last_seen_at |
string | Časové razítko posledního výskytu položky během indexování. |
result_info |
objekt | Metadata stránkování. |
result_info.count |
number | Počet položek na aktuální stránce. |
result_info.total_count |
number | Celkový počet položek v instanci. |
result_info.page |
number | Číslo aktuální stránky. |
result_info.per_page |
number | Počet položek na stránku. |
items.delete()
Odstraní položku a její indexované části obsahu.
await instance.items.delete("item-id-123");Parametry
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
itemId |
string | Ano | Jedinečný identifikátor položky, která se má odstranit. |
Odpověď
Vrátí void. Vyvolá chybu, pokud položka neexistuje.
items.get()
Vrátí handle na konkrétní položku pro načtení jejího stavu nebo stažení původního souboru.
items.get().info()
Vrátí stav a metadata konkrétní položky.
const itemInfo = await instance.items.get("item-id-123").info();Parametry
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
itemId |
string | Ano | Jedinečný identifikátor položky. |
Odpověď
| Pole | Typ | Popis |
|---|---|---|
id |
string | Jedinečný identifikátor položky. |
key |
string | Název souboru nebo klíč položky. |
status |
string | Stav zpracování: queued, running, completed, error, skipped, outdated. |
chunks_count |
number | Počet částí obsahu vytvořených z dokumentu. |
file_size |
number | Velikost nahraného souboru v bajtech. |
metadata |
objekt | Metadata položky, včetně filename, folder, a timestamp. |
source_id |
string | Identifikátor zdroje (například builtin pro nahrané soubory). |
created_at |
string | Časové razítko vytvoření položky. |
last_seen_at |
string | Časové razítko posledního výskytu položky během indexování. |
items.get().download()
Stáhne původní zdrojový soubor položky.
const file = await instance.items.get("item-id-123").download();
// file.body is a ReadableStreamParametry
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
itemId |
string | Ano | Jedinečný identifikátor položky. |
Odpověď
| Pole | Typ | Popis |
|---|---|---|
filename |
string | Původní název souboru. |
contentType |
string | Typ MIME souboru (například application/pdf). |
size |
number | Velikost souboru v bajtech. |
body |
ReadableStream | Čitelný datový proud obsahu souboru. |