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
| 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 | Tahap pematuhan untuk garis panduan yang dijana: "basic" | "standard" | "strict" 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 |
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
const response = await fetch('https://crawlforge.dev/api/v1/tools/generate_llms_txt', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
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,
},
}),
});
const { data } = await response.json();
await fs.writeFile('public/llms.txt', data.files['llms.txt']);
await fs.writeFile('public/llms-full.txt', data.files['llms-full.txt']);Python
import requests, os
response = requests.post(
'https://crawlforge.dev/api/v1/tools/generate_llms_txt',
headers={
'X-API-Key': os.environ['CRAWLFORGE_API_KEY'],
'Content-Type': 'application/json',
},
json={
'url': 'https://example.com',
'format': 'llms-txt',
'complianceLevel': 'basic',
},
)
data = response.json()['data']
with open('public/llms.txt', 'w') as f:
f.write(data['files']['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.data.api_endpoints_detectedSehingga 10 URL yang kelihatan seperti API dikesan dalam HTML yang diambil. Ia heuristik pada laluan, bukan senarai API yang disahkan.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.