Перейти к содержимому

llmstxt-architect

AI-генерация llms.txt с помощью LLM

llmstxt-architect — это Python-инструмент, который использует языковые модели (Claude, GPT, Ollama) для автоматической генерации качественных описаний в llms.txt.

Репозиторий: github.com/rlancemartin/llmstxt_architect

В отличие от простого извлечения meta-описаний, llmstxt-architect:

  • Анализирует контент — читает содержимое страниц
  • Генерирует описания — использует LLM для создания осмысленных описаний
  • Объясняет релевантность — описывает, когда и зачем читать страницу
Окно терминала
# Быстрый запуск через uvx
curl -LsSf https://astral.sh/uv/install.sh | sh
uvx --from llmstxt-architect llmstxt-architect --help
# Или установка через pip
pip install llmstxt-architect
Окно терминала
export ANTHROPIC_API_KEY=sk-ant-...
llmstxt-architect \
--urls https://docs.example.com \
--max-depth 2 \
--llm-name claude-3-5-sonnet-latest \
--llm-provider anthropic \
--project-dir output
Окно терминала
export OPENAI_API_KEY=sk-...
llmstxt-architect \
--urls https://docs.example.com \
--max-depth 2 \
--llm-name gpt-4o \
--llm-provider openai \
--project-dir output
Окно терминала
# Запустите Ollama
ollama serve
llmstxt-architect \
--urls https://docs.example.com \
--max-depth 1 \
--llm-name llama3.2:latest \
--llm-provider ollama \
--project-dir output
ПараметрОписаниеПо умолчанию
--urlsURL для обработкиОбязательно
--max-depthГлубина краулинга (1-5)5
--llm-nameНазвание моделиclaude-3-sonnet
--llm-providerПровайдер (anthropic, openai, ollama)anthropic
--project-dirДиректория для результатовllms_txt
--output-fileИмя выходного файлаllms.txt
--blacklist-fileФайл с URL для исключения-
--extractorМетод извлечения (default, bs4)default
Окно терминала
llmstxt-architect \
--existing-llms-file https://example.com/llms.txt \
--update-descriptions-only \
--llm-name claude-3-5-sonnet-latest \
--llm-provider anthropic \
--project-dir updated

Сохраняет структуру и секции, обновляет только описания ссылок.

Окно терминала
llmstxt-architect \
--existing-llms-file ./llms.txt \
--update-descriptions-only \
--llm-provider ollama \
--llm-name llama3.2 \
--project-dir updated

Создайте файл blacklist.txt:

# Deprecated pages
https://example.com/old-api/
https://example.com/v1/
# Not relevant
https://example.com/jobs/
https://example.com/legal/

Запуск:

Окно терминала
llmstxt-architect \
--urls https://example.com \
--blacklist-file blacklist.txt \
--project-dir output
import asyncio
from llmstxt_architect.main import generate_llms_txt
async def main():
await generate_llms_txt(
urls=["https://docs.example.com"],
max_depth=2,
llm_name="claude-3-5-sonnet-latest",
llm_provider="anthropic",
project_dir="output",
)
asyncio.run(main())
from bs4 import BeautifulSoup
def custom_extractor(html: str) -> str:
soup = BeautifulSoup(html, 'html.parser')
# Удалить навигацию и футер
for tag in soup.find_all(['nav', 'footer', 'aside']):
tag.decompose()
# Извлечь только main content
main = soup.find('main') or soup.find('article')
if main:
return main.get_text(separator='\n', strip=True)
return soup.get_text(separator='\n', strip=True)
await generate_llms_txt(
urls=["https://docs.example.com"],
extractor=custom_extractor,
# ...
)
project-dir/
├── llms.txt # Итоговый файл
├── summaries/
│ ├── summarized_urls.json # Чекпоинт прогресса
│ ├── docs_example_com_page1.txt
│ ├── docs_example_com_page2.txt
│ └── ... # Индивидуальные саммари

По умолчанию LLM получает такой промпт:

Create a concise summary for this documentation page.
The summary should explain:
1. When should an LLM read this page?
2. What key topics are covered?
Keep the summary to 1-2 sentences maximum.
Окно терминала
llmstxt-architect \
--urls https://example.com \
--summary-prompt "Summarize this API documentation. Focus on endpoints and use cases." \
--project-dir output

Инструмент сохраняет прогресс каждые 5 документов:

Окно терминала
# Если процесс прервался, просто запустите снова
llmstxt-architect --urls https://example.com --project-dir output
# Обработанные URL будут пропущены

Используйте сгенерированный llms.txt с MCP-сервером:

{
"mcpServers": {
"docs": {
"command": "uvx",
"args": [
"--from", "mcpdoc",
"mcpdoc",
"--urls", "Docs:./output/llms.txt",
"--transport", "stdio"
]
}
}
}

Проекты, использующие llmstxt-architect:

Аспектllmstxt CLIllmstxt-architect
Источник описанийMeta-тегиAI-генерация
Качество описанийЗависит от сайтаВысокое
СкоростьБыстроМедленнее (API вызовы)
СтоимостьБесплатноОплата API
Глубина анализаПоверхностныйАнализ контента