generate_ llms_ txt
Perangkak tapak, analisis strukturnya dan keluarkan fail llms.txt (dan llms-full.txt pilihan) yang mematuhi piawaian bagi menentukan cara model AI patut berinteraksi dengan kandungan anda. Tahap pematuhan daripada permisif hingga ketat.
Kes Penggunaan
Hantar Dokumentasi Sedia AI
Terbitkan llms.txt bersama dokumen anda supaya Claude, ChatGPT dan perangkak lain membaca garis panduan yang bersih.
Penerbitan Pematuhan AI
Gunakan pematuhan ketat untuk menetapkan peraturan data latihan, caching dan atribusi di satu tempat.
Penjanaan Dasar Bot
Tambah garis panduan dan sekatan tersuai untuk agen pengguna AI tertentu pada domain anda.
Endpoint
/api/v1/tools/generate_llms_txtParameters
Operasi berat: Alat ini mungkin merangkak sehingga 500 halaman. Ia menggunakan sistem tempahan supaya credits ditahan sepanjang tempoh tugas.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Required | - | URL tapak web untuk menjana llms.txt Example: https://example.com |
format | string | Optional | both | Format output: "both" | "llms-txt" | "llms-full-txt" Example: both |
complianceLevel | string | Optional | standard | "basic" | "standard" | "strict". Diterima untuk keserasian dan tidak mengubah output endpoint ini, yang dibina daripada apa yang diterbitkan oleh laman itu sendiri. Pada pelayan MCP CrawlForge, ia hanya terpakai dengan `outputOptions.robotsStyle: true`. Example: standard |
analysisOptions | object | Optional | - | Pilihan analisis tapak web (maxDepth 1-5, maxPages 10-500, respectRobots, detectAPIs, analyzeContent, checkSecurity) Example: {"maxDepth": 3, "maxPages": 100, "detectAPIs": true} |
outputOptions | object | Optional | - | Penyesuaian output (organizationName, contactEmail, customGuidelines, customRestrictions, includeDetailed, includeAnalysis) Example: {"organizationName": "Example Inc.", "contactEmail": "ai@example.com"} |
respect_robots | boolean | Optional | true | Hormati robots.txt tapak sasaran. Dibiarkan pada `true`, laluan yang dilarang untuk `CrawlForge` ditolak dengan 403 sebelum apa-apa diambil dan tiada credits dicaj. Tetapkan kepada `false` hanya untuk sasaran yang anda mempunyai perjanjian sendiri dengannya — respons kemudiannya membawa entri `warnings` dan tindakan mengatasi itu direkodkan pada API key anda. `analysisOptions.respectRobots` ialah alias; menetapkan mana-mana satu kepada `false` akan mematikan semakan itu. Example: true |
max_inline_chars | number | Optional | 40000 | Hasil terbesar yang dikembalikan sebaris, dalam aksara JSON-nya (1,000-10,000,000). Melebihinya, respons membawa `preview` (`max_inline_chars` aksara pertama `llms_full_txt`, atau `llms_txt` apabila hanya fail itu dijana), `result_handle`, `total_chars`, `truncated: true` dan `expires_at`, dan [read_result](/docs/api-reference/tools/read-result) membaca selebihnya dengan 1 credit setiap panggilan. Hasil tersimpan disimpan selama 1 jam. Example: 40000 |
Contoh Permintaan
cURL — both formats, standard compliance
curl -X POST https://crawlforge.dev/api/v1/tools/generate_llms_txt \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"format": "both",
"complianceLevel": "standard",
"outputOptions": {
"organizationName": "Example Inc.",
"contactEmail": "ai@example.com"
}
}'TypeScript — strict with custom guidelines
// npm install crawlforge-sdk
import { CrawlForge } from 'crawlforge-sdk';
import fs from 'node:fs/promises';
const client = new CrawlForge({ apiKey: process.env.CRAWLFORGE_API_KEY });
const result = await client.generateLlmsTxt({
url: 'https://docs.example.com',
format: 'both',
complianceLevel: 'strict',
analysisOptions: {
maxDepth: 4,
maxPages: 250,
detectAPIs: true,
analyzeContent: true,
},
outputOptions: {
organizationName: 'Example Inc.',
contactEmail: 'ai@example.com',
customGuidelines: [
'AI crawlers must respect robots.txt',
'Cache responses for up to 24 hours',
],
customRestrictions: [
'No training on user-submitted content',
],
includeAnalysis: true,
},
});
// result.data is untyped in crawlforge-sdk 0.1 — its shape is the Response Example below.
const { llms_txt, llms_full_txt } = result.data as { llms_txt: string; llms_full_txt: string };
await fs.writeFile('public/llms.txt', llms_txt);
await fs.writeFile('public/llms-full.txt', llms_full_txt);Python
# pip install crawlforge
from crawlforge import CrawlForge
client = CrawlForge() # reads CRAWLFORGE_API_KEY
result = client.generate_llms_txt(
url='https://example.com',
format='llms-txt',
complianceLevel='basic',
)
# result.data is a plain dict — its shape is the Response Example below.
with open('public/llms.txt', 'w') as f:
f.write(result.data['llms_txt'])Contoh Respons
{ "success": true, "data": { "url": "https://example.com", "llms_txt": "# Example Inc.\n\n> Tools for building things.\n\n## Docs\n\n- [Quickstart](https://example.com/docs/quickstart): Get started in five minutes\n", "llms_full_txt": "# Example Inc.\n\n## Quickstart\n\nURL: https://example.com/docs/quickstart\n\nGet started in five minutes...", "pages_analyzed": 12, "pages": [ { "url": "https://example.com", "title": "Example Inc." }, { "url": "https://example.com/docs/quickstart", "title": "Quickstart" } ], "compliance": { "robots_txt_found": true, "disallow_count": 3 }, "api_endpoints_detected": [ "https://example.com/api/v1" ], "clamps_applied": [ "maxPages clamped from 100 to 25" ], "generated_at": "2026-08-26T14:30:00.000Z" }, "credits_used": 5, "credits_remaining": 995, "processing_time": 4100}data.llms_txtllms.txt yang dijana. Hadir melainkan `format` ditetapkan kepada llms-full-txt.data.llms_full_txtllms.txt dengan teks setiap halaman yang dianalisis disisipkan. Hadir hanya apabila `format` ialah both atau llms-full-txt.data.pages_analyzedHalaman akar serta setiap halaman yang berjaya diambil.data.pagesHalaman yang masuk ke dalam output, setiap satu dengan tajuknya.data.compliance.robots_txt_foundSama ada robots.txt berjaya diperoleh; disallow_count ialah bilangan peraturan Disallow yang dibawanya. `false` meliputi tapak tanpa robots.txt dan tapak yang robots.txt-nya tidak dapat dibaca — kes kedua turut menambah entri `warnings` yang menyatakan sebabnya.data.api_endpoints_detectedSehingga 10 URL yang kelihatan seperti API dikesan dalam HTML yang diambil. Ia heuristik pada laluan, bukan senarai API yang disahkan. URL tapak yang sama yang dilarang oleh robots.txt untuk `CrawlForge` tidak pernah disenaraikan.data.clamps_appliedNota yang boleh dibaca apabila had yang anda minta dikurangkan untuk muat dengan bajet tanpa pelayan. Kosong apabila tiada apa-apa dihadkan.data.generated_atCap masa ISO 8601 bagi penjanaan.Pengendalian Ralat
Disekat oleh robots.txt (403 Forbidden)
robots.txt tapak sasaran melarang laluan ini untuk CrawlForge. Tetapkan respect_robots: false untuk mengatasinya jika anda mempunyai perjanjian sendiri dengan sasaran — tindakan mengatasi itu direkodkan pada API key anda. Tindakan mengatasi itu tidak sampai kepada hos yang berada dalam senarai penarikan diri kekal CrawlForge, yang ditolak tanpa mengira nilai respect_robots. Hanya URL sasaran yang mengembalikan 403: halaman yang ditemui semasa analisis dan dilarang oleh robots.txt ditinggalkan daripada analisis sebaliknya, dan dikira dalam warnings.
Kos Credit
Alat Berkaitan
Bersedia untuk menerbitkan garis panduan interaksi AI? Daftar secara percuma dan dapatkan 1,000 credits.