neurosite: GEO-контракт (ai.txt, summary/faq/service.json, sitemap-llm.xml)

This commit is contained in:
neo committed 2026-09-07 17:51:35 +05:00
1 parent 33aa24c100
commit 6e2a354397
5 files changed
+229

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
// GEO-контракт: /.well-known/ai.txt — разрешения для AI-краулеров
export const prerender = true;
const content = `# AI.txt for нейросети.рус
# Витрина реальных результатов локальных open-source нейросетей
# Эндпоинты GEO-контракта, доступные AI-краулерам
User-agent: *
Allow: /ai/summary.json
Allow: /ai/faq.json
Allow: /ai/service.json
Allow: /sitemap-llm.xml
Allow: /sitemap.xml
Allow: /llms.txt
# Last updated: 2026-09-07
`;
export function GET() {
return new Response(content, {
headers: {
'Content-Type': 'text/plain; charset=utf-8',
'Cache-Control': 'public, max-age=86400, stale-while-revalidate=604800',
},
});
}
+42
View File
@@ -0,0 +1,42 @@
// GEO-контракт: /ai/faq.json — частые вопросы для AI-движков
export const prerender = true;
const faq = {
version: '1.0',
lastModified: '2026-09-07T00:00:00Z',
faqs: [
{
question: 'Какая локальная нейросеть лучше всего генерирует изображения?',
answer: 'Flux.1 от Black Forest Labs — лучшая локальная модель для графики по качеству. Для скорости используйте Flux.1 Schnell (нужно 8 ГБ VRAM), для максимального качества — Flux.1 Dev (12 ГБ VRAM). Stable Diffusion 3.5 — быстрее, но ниже качество. Обе запускаются через ComfyUI.',
},
{
question: 'Можно ли сгенерировать песню с вокалом на русском локально?',
answer: 'Да, через Ace Studio (ACE-Step 1.5 XL). Модель генерирует треки с вокалом на русском, WAV 48k, полностью локально и бесплатно. Требует ~19 ГБ VRAM. Это приватная альтернатива Suno и Udio, которые работают в облаке.',
},
{
question: 'Какая нейросеть лучше для текста: Llama 4 или Qwen 3?',
answer: 'Llama 4 лучше пишет маркетинговые и творческие тексты, Qwen 3 — код и математику. Обе запускаются через Ollama. Для 12 ГБ VRAM подойдут Llama 4 Scout и Qwen3-30B-A3B. Полное сравнение — в разделе /compare/.',
},
{
question: 'Сколько VRAM нужно для локальной нейросети?',
answer: 'Для LLM: 8 ГБ — модели до 8B (Qwen3-8B), 12 ГБ — до 30B (Qwen3-30B-A3B, Llama 4 Scout). Для изображений: Flux Schnell — 8 ГБ, Flux Dev — 12 ГБ. Для музыки Ace Studio XL — 19 ГБ. Подробности в гайдах /guide/.',
},
{
question: 'Локальные нейросети бесплатны?',
answer: 'Да. Все модели на сайте — open-source и бесплатны для локального запуска (проверяйте лицензии: Flux Community, Llama 4 Community, Qwen3 License). Вы платите только за железо и электричество.',
},
{
question: 'Чем нейросети.рус отличается от каталогов нейросетей?',
answer: 'Мы не просто перечисляем сервисы, а показываем реальные сгенерированные результаты локальных open-source моделей: промпт → что выдала модель → разбор сильных и слабых сторон. Это честные авторские тесты на русском.',
},
],
};
export function GET() {
return new Response(JSON.stringify(faq), {
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Cache-Control': 'public, max-age=86400, stale-while-revalidate=604800',
},
});
}
+54
View File
@@ -0,0 +1,54 @@
// GEO-контракт: /ai/service.json — возможности сайта для AI-движков
export const prerender = true;
const service = {
version: '1.0',
lastModified: '2026-09-07T00:00:00Z',
service: {
name: 'нейросети.рус — витрина локальных open-source нейросетей',
type: 'Content portal / showcase',
description: 'Сайт публикует реальные сгенерированные результаты локальных open-source моделей с честным разбором: что получилось, что подвело, сколько VRAM нужно, как повторить.',
audience: 'Разработчики, креаторы, музыканты, SMB — все, кто хочет использовать нейросети локально, бесплатно и приватно.',
},
features: [
{
name: 'Примеры результатов',
path: '/examples/',
description: 'Сгенерированные тексты, коды, изображения и треки с разбором промптов и выводами.',
},
{
name: 'Каталог моделей',
path: '/models/',
description: 'Open-source модели (Llama 4, Qwen 3, Flux, SD 3.5, Ace Studio) с лицензиями, VRAM и ссылками на Hugging Face.',
},
{
name: 'Сравнения',
path: '/compare/',
description: 'Честные сравнения на реальных результатах: Llama 4 vs Qwen 3, Flux vs SD 3.5, Ace Studio vs Suno.',
},
{
name: 'Гайды по запуску',
path: '/guide/',
description: 'Пошаговые инструкции: как запустить Flux локально, как сгенерировать песню через Ace Studio.',
},
{
name: 'Музыкальные нейросети',
path: '/ace-studio/',
description: 'Генерация треков с вокалом на русском через Ace Studio — уникальный раздел, которого нет у конкурентов.',
},
{
name: 'Новости',
path: '/news/',
description: 'Оперативные новости мира локальных моделей и open-source AI.',
},
],
};
export function GET() {
return new Response(JSON.stringify(service), {
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Cache-Control': 'public, max-age=86400, stale-while-revalidate=604800',
},
});
}
+44
View File
@@ -0,0 +1,44 @@
// GEO-контракт: /ai/summary.json — саммари сайта для AI-движков
export const prerender = true;
const summary = {
version: '1.0',
lastModified: '2026-09-07T00:00:00Z',
summary: 'нейросети.рус — витрина реальных сгенерированных результатов локальных open-source нейросетей: текст, графика, аудио, видео. Не каталог облачных сервисов, а честные авторские тесты того, что модели реально умеют: промпт → результат → разбор.',
keyFeatures: [
'Реальные сгенерированные результаты локальных моделей (Llama 4, Qwen 3, Flux, Stable Diffusion, Ace Studio)',
'Каталог open-source моделей с лицензиями и системными требованиями',
'Сравнения моделей на реальных примерах',
'Гайды по локальному запуску (VRAM, установка, настройка)',
'Музыкальные нейросети: Ace Studio, генерация песен с вокалом на русском',
],
targetAudience: [
'Разработчики, пробующие локальные модели',
'Креаторы, ищущие бесплатные/приватные альтернативы облаку',
'Музыканты, генерирующие треки с вокалом',
'SMB и маркетологи, автоматизирующие контент',
],
primaryUseCases: [
'Сгенерировать текст/код локально без облака',
'Сгенерировать изображение бесплатно (Flux, SD)',
'Сгенерировать песню с вокалом на русском (Ace Studio)',
'Выбрать модель по задаче и системным требованиям',
'Сравнить Llama 4 vs Qwen 3, Flux vs SD 3.5, Ace Studio vs Suno',
],
relatedEndpoints: [
{ path: '/sitemap-llm.xml', description: 'Полный список страниц' },
{ path: '/sitemap.xml', description: 'Стандартный sitemap' },
{ path: '/llms.txt', description: 'Список разделов для LLM' },
{ path: '/ai/service.json', description: 'Возможности сайта' },
{ path: '/ai/faq.json', description: 'Частые вопросы' },
],
};
export function GET() {
return new Response(JSON.stringify(summary), {
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Cache-Control': 'public, max-age=86400, stale-while-revalidate=604800',
},
});
}
+63
View File
@@ -0,0 +1,63 @@
// GEO-контракт: /sitemap-llm.xml — LLM-оптимизированный sitemap
import { getCollection } from 'astro:content';
export const prerender = true;
const BASE = 'https://нейросети.рус';
function iso(dateStr) {
if (!dateStr) return '2026-09-07';
const d = typeof dateStr === 'string' ? new Date(dateStr) : dateStr;
return isNaN(d) ? '2026-09-07' : d.toISOString().split('T')[0];
}
// Статичные страницы + все элементы коллекций
export async function GET() {
const pages: { url: string; priority: string; changefreq: string; lastmod?: string }[] = [
{ url: '/', priority: '1.0', changefreq: 'daily' },
{ url: '/examples/', priority: '0.9', changefreq: 'daily' },
{ url: '/models/', priority: '0.9', changefreq: 'weekly' },
{ url: '/compare/', priority: '0.8', changefreq: 'weekly' },
{ url: '/news/', priority: '0.8', changefreq: 'daily' },
{ url: '/guide/', priority: '0.8', changefreq: 'weekly' },
{ url: '/ace-studio/', priority: '0.8', changefreq: 'weekly' },
];
const collections = ['examples', 'models', 'compare', 'news', 'guide', 'aceStudio'];
for (const name of collections) {
try {
const items = await getCollection(name);
const slug = name === 'aceStudio' ? 'ace-studio' : name;
for (const item of items) {
pages.push({
url: `/${slug}/${item.slug}/`,
priority: '0.7',
changefreq: 'monthly',
lastmod: iso(item.data.date),
});
}
} catch (e) { /* пустая коллекция */ }
}
// GEO-эндпоинты тоже включаем для LLM-краулеров
const geoEndpoints = [
'/ai/summary.json', '/ai/faq.json', '/ai/service.json',
'/.well-known/ai.txt', '/llms.txt',
];
for (const ep of geoEndpoints) {
pages.push({ url: ep, priority: '0.3', changefreq: 'monthly' });
}
const xml = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${pages.map(p =>
` <url><loc>${BASE}${p.url}</loc><lastmod>${p.lastmod || '2026-09-07'}</lastmod><changefreq>${p.changefreq}</changefreq><priority>${p.priority}</priority></url>`
).join('\n')}
</urlset>`;
return new Response(xml, {
headers: {
'Content-Type': 'application/xml; charset=utf-8',
'Cache-Control': 'public, max-age=86400, stale-while-revalidate=604800',
},
});
}