enzostvs HF Staff commited on
Commit
0698bd6
·
1 Parent(s): 9defc5a

remove comment

Browse files
Files changed (2) hide show
  1. app/api/ask/route.ts +3 -12
  2. middleware.ts +1 -13
app/api/ask/route.ts CHANGED
@@ -292,17 +292,15 @@ export async function PUT(request: NextRequest) {
292
 
293
  const client = new InferenceClient(token);
294
 
295
- // Helper function to escape regex special characters
296
  const escapeRegExp = (string: string) => {
297
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
298
  };
299
 
300
- // Helper function to create flexible HTML regex that handles varying spaces
301
  const createFlexibleHtmlRegex = (searchBlock: string) => {
302
  let searchRegex = escapeRegExp(searchBlock)
303
- .replace(/\s+/g, '\\s*') // Allow any amount of whitespace where there are spaces
304
- .replace(/>\s*</g, '>\\s*<') // Allow spaces between HTML tags
305
- .replace(/\s*>/g, '\\s*>'); // Allow spaces before closing >
306
 
307
  return new RegExp(searchRegex, 'g');
308
  };
@@ -310,19 +308,15 @@ export async function PUT(request: NextRequest) {
310
  const selectedProvider = await getBestProvider(selectedModel.value, provider)
311
 
312
  try {
313
- // Calculate dynamic max_tokens for PUT request
314
  const systemPrompt = FOLLOW_UP_SYSTEM_PROMPT + (isNew ? PROMPT_FOR_PROJECT_NAME : "");
315
  const userContext = "You are modifying the HTML file based on the user's request.";
316
 
317
- // Helper function to get only the most relevant pages based on prompt
318
  const getRelevantPages = (pages: Page[], prompt: string, maxPages: number = 2): Page[] => {
319
  if (pages.length <= maxPages) return pages;
320
 
321
- // Always include index/main page
322
  const indexPage = pages.find(p => p.path === '/' || p.path === '/index' || p.path === 'index');
323
  const otherPages = pages.filter(p => p !== indexPage);
324
 
325
- // If we have a selected element, only include pages that might contain it
326
  if (selectedElementHtml) {
327
  const elementKeywords = selectedElementHtml.toLowerCase().match(/class=["']([^"']*)["']|id=["']([^"']*)["']/g) || [];
328
  const relevantPages = otherPages.filter(page => {
@@ -333,7 +327,6 @@ export async function PUT(request: NextRequest) {
333
  return indexPage ? [indexPage, ...relevantPages.slice(0, maxPages - 1)] : relevantPages.slice(0, maxPages);
334
  }
335
 
336
- // Score pages based on keyword matches from prompt
337
  const keywords = prompt.toLowerCase().split(/\s+/).filter(word => word.length > 3);
338
  const scoredPages = otherPages.map(page => {
339
  const pageContent = (page.path + ' ' + page.html).toLowerCase();
@@ -343,7 +336,6 @@ export async function PUT(request: NextRequest) {
343
  return { page, score };
344
  });
345
 
346
- // Sort by relevance and take top pages
347
  const topPages = scoredPages
348
  .sort((a, b) => b.score - a.score)
349
  .slice(0, maxPages - (indexPage ? 1 : 0))
@@ -352,7 +344,6 @@ export async function PUT(request: NextRequest) {
352
  return indexPage ? [indexPage, ...topPages] : topPages;
353
  };
354
 
355
- // Get only the most relevant pages - provide FULL HTML for accurate replacements
356
  const relevantPages = getRelevantPages(pages || [], prompt);
357
  const pagesContext = relevantPages
358
  .map((p: Page) => `- ${p.path}\n${p.html}`)
 
292
 
293
  const client = new InferenceClient(token);
294
 
 
295
  const escapeRegExp = (string: string) => {
296
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
297
  };
298
 
 
299
  const createFlexibleHtmlRegex = (searchBlock: string) => {
300
  let searchRegex = escapeRegExp(searchBlock)
301
+ .replace(/\s+/g, '\\s*')
302
+ .replace(/>\s*</g, '>\\s*<')
303
+ .replace(/\s*>/g, '\\s*>');
304
 
305
  return new RegExp(searchRegex, 'g');
306
  };
 
308
  const selectedProvider = await getBestProvider(selectedModel.value, provider)
309
 
310
  try {
 
311
  const systemPrompt = FOLLOW_UP_SYSTEM_PROMPT + (isNew ? PROMPT_FOR_PROJECT_NAME : "");
312
  const userContext = "You are modifying the HTML file based on the user's request.";
313
 
 
314
  const getRelevantPages = (pages: Page[], prompt: string, maxPages: number = 2): Page[] => {
315
  if (pages.length <= maxPages) return pages;
316
 
 
317
  const indexPage = pages.find(p => p.path === '/' || p.path === '/index' || p.path === 'index');
318
  const otherPages = pages.filter(p => p !== indexPage);
319
 
 
320
  if (selectedElementHtml) {
321
  const elementKeywords = selectedElementHtml.toLowerCase().match(/class=["']([^"']*)["']|id=["']([^"']*)["']/g) || [];
322
  const relevantPages = otherPages.filter(page => {
 
327
  return indexPage ? [indexPage, ...relevantPages.slice(0, maxPages - 1)] : relevantPages.slice(0, maxPages);
328
  }
329
 
 
330
  const keywords = prompt.toLowerCase().split(/\s+/).filter(word => word.length > 3);
331
  const scoredPages = otherPages.map(page => {
332
  const pageContent = (page.path + ' ' + page.html).toLowerCase();
 
336
  return { page, score };
337
  });
338
 
 
339
  const topPages = scoredPages
340
  .sort((a, b) => b.score - a.score)
341
  .slice(0, maxPages - (indexPage ? 1 : 0))
 
344
  return indexPage ? [indexPage, ...topPages] : topPages;
345
  };
346
 
 
347
  const relevantPages = getRelevantPages(pages || [], prompt);
348
  const pagesContext = relevantPages
349
  .map((p: Page) => `- ${p.path}\n${p.html}`)
middleware.ts CHANGED
@@ -5,23 +5,11 @@ export function middleware(request: NextRequest) {
5
  const headers = new Headers(request.headers);
6
  headers.set("x-current-host", request.nextUrl.host);
7
 
8
- // Create response with headers
9
  const response = NextResponse.next({ headers });
10
-
11
- // Add SEO and security headers
12
- // Only set X-Frame-Options for non-HF spaces domains
13
- // if (!request.nextUrl.host.includes('hf.space') && !request.nextUrl.host.includes('huggingface.co') && !request.nextUrl.host.includes('hf.co')) {
14
- // response.headers.set('X-Frame-Options', 'SAMEORIGIN');
15
- // }
16
- // response.headers.set('X-Content-Type-Options', 'nosniff');
17
- // response.headers.set('Referrer-Policy', 'strict-origin-when-cross-origin');
18
-
19
- // Add cache control for better performance
20
  if (request.nextUrl.pathname.startsWith('/_next/static')) {
21
  response.headers.set('Cache-Control', 'public, max-age=31536000, immutable');
22
  }
23
-
24
- // Add canonical URL headers for programmatic access
25
  response.headers.set('X-Canonical-URL', `https://deepsite.hf.co${request.nextUrl.pathname}`);
26
 
27
  return response;
 
5
  const headers = new Headers(request.headers);
6
  headers.set("x-current-host", request.nextUrl.host);
7
 
 
8
  const response = NextResponse.next({ headers });
9
+
 
 
 
 
 
 
 
 
 
10
  if (request.nextUrl.pathname.startsWith('/_next/static')) {
11
  response.headers.set('Cache-Control', 'public, max-age=31536000, immutable');
12
  }
 
 
13
  response.headers.set('X-Canonical-URL', `https://deepsite.hf.co${request.nextUrl.pathname}`);
14
 
15
  return response;