INTEGRITY Dokumentace

R2

Můžete připojit Cloudflare R2 jako zdroj dat pro vaši instanci AI Search. AI Search automaticky indexuje soubory uložené ve vašem bucketu.

Začínáme

Bucket R2 můžete připojit při vytváření nové instance prostřednictvím dashboard, REST API, nebo Wrangler. R2 je volitelný zdroj dat, který můžete přidat vedle vestavěné úložiště.

Pokud jste ještě nikdy nevytvořili instanci založenou na R2, doporučujeme použít dashboard nebo Wrangler CLI, které za vás vytvoří a zaregistrují servisní token API za vás automaticky. Pokud používáte REST API nebo vazbu Workers, budete si muset vytvořit servisní token API a předat token_id v požadavku na vytvoření. Viz Token API služby pro pokyny k nastavení.

Pro začátek konfigurace bucketu R2 obsahující vaše data. Soubory, které nejsou podporované nebo překračují limit velikosti, budou při indexování přeskočeny a zaznamenány jako chyby.

Filtrování cest

Které soubory se zaindexují, můžete řídit definováním pravidel pro zahrnutí a vyloučení cest k objektům. Díky tomu můžete omezit indexování na konkrétní složky nebo vyloučit soubory, které nechcete mít prohledatelné.

Chcete-li například indexovat pouze dokumentaci a vynechat koncepty:

Viz Filtrování cest pro syntaxi vzorů, chování filtrování a další příklady.

Podporované typy souborů a omezení velikosti najdete v Zdroj dat.

Vlastní metadata

K objektům R2 můžete připojit vlastní metadata pro filtrování výsledků vyhledávání. AI Search čte metadata z hlaviček kompatibilních s S3 (x-amz-meta-*).

Než bude možné metadata extrahovat, musíte definice schématu v konfiguraci AI Search.

Nastavení metadat při nahrávání

Použijte customMetadata možnost při nahrávání objektů pomocí R2 Workers binding:

await env.MY_BUCKET.put("docs/document.pdf", fileContent, {
	customMetadata: {
		category: "documentation",
		version: "2.5",
		is_public: "true",
	},
});

Použijte Metadata možnost s AWS SDK for JavaScript:

import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";

const client = new S3Client({
	region: "auto",
	endpoint: `https://${accountId}.r2.cloudflarestorage.com`,
	credentials: {
		accessKeyId: R2_ACCESS_KEY_ID,
		secretAccessKey: R2_SECRET_ACCESS_KEY,
	},
});

await client.send(
	new PutObjectCommand({
		Bucket: "your-bucket",
		Key: "docs/document.pdf",
		Body: fileContent,
		Metadata: {
			category: "documentation",
			version: "2.5",
			is_public: "true",
		},
	}),
);

Použijte --header příznak s Wrangler nastavit x-amz-meta-* hlavičky:

wrangler r2 object put your-bucket/docs/document.pdf \
  --file=./document.pdf \
  --header="x-amz-meta-category:documentation" \
  --header="x-amz-meta-version:2.5" \
  --header="x-amz-meta-is_public:true"

Jak funguje extrakce metadat

Když se během indexování načítá soubor z R2:

  1. Všechny x-amz-meta-* hlavičky se čtou z objektu.
  2. x-amz-meta- předpona se odstraní (například x-amz-meta-category se změní na category).
  3. Názvy položek se porovnávají s vaším schématem (bez rozlišení velkých a malých písmen).
  4. Hodnoty se převedou na nakonfigurovaný datový typ.
  5. Neplatné hodnoty (například nečíselný řetězec u pole typu number typu) jsou tiše ignorovány.

Podpora Unicode

Hodnoty metadat podporují znaky Unicode prostřednictvím kódování MIME-Word (RFC 2047). Většina nástrojů kompatibilních s S3 toto kódování zpracovává automaticky.