fix: use getTagsProvider for all auto-labeling paths, allow suggestions without notebook
- app/api/ai/tags/route.ts: getAIProvider → getTagsProvider (was using embedding model instead of tags model for legacy tag generation) - lib/ai/services/auto-label-creation.service.ts: same fix - hooks/use-auto-tagging.ts: remove notebookId gate that blocked all suggestions in "General Notes" — the API has a legacy path for this - app/actions/admin-settings.ts: revalidateTag → updateTag (Next.js 16 requires 2 args for revalidateTag) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
import prisma from '@/lib/prisma'
|
import prisma from '@/lib/prisma'
|
||||||
import { auth } from '@/auth'
|
import { auth } from '@/auth'
|
||||||
import { sendEmail } from '@/lib/mail'
|
import { sendEmail } from '@/lib/mail'
|
||||||
import { revalidateTag } from 'next/cache'
|
import { updateTag } from 'next/cache'
|
||||||
|
|
||||||
async function checkAdmin() {
|
async function checkAdmin() {
|
||||||
const session = await auth()
|
const session = await auth()
|
||||||
@@ -63,7 +63,7 @@ export async function updateSystemConfig(data: Record<string, string>) {
|
|||||||
await prisma.$transaction(operations)
|
await prisma.$transaction(operations)
|
||||||
|
|
||||||
// Invalidate cache after update
|
// Invalidate cache after update
|
||||||
revalidateTag('system-config')
|
updateTag('system-config')
|
||||||
|
|
||||||
return { success: true }
|
return { success: true }
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { NextRequest, NextResponse } from 'next/server';
|
import { NextRequest, NextResponse } from 'next/server';
|
||||||
import { auth } from '@/auth';
|
import { auth } from '@/auth';
|
||||||
import { contextualAutoTagService } from '@/lib/ai/services/contextual-auto-tag.service';
|
import { contextualAutoTagService } from '@/lib/ai/services/contextual-auto-tag.service';
|
||||||
import { getAIProvider } from '@/lib/ai/factory';
|
import { getTagsProvider } from '@/lib/ai/factory';
|
||||||
import { getSystemConfig } from '@/lib/config';
|
import { getSystemConfig } from '@/lib/config';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ export async function POST(req: NextRequest) {
|
|||||||
|
|
||||||
// Otherwise, use legacy auto-tagging (generates new tags)
|
// Otherwise, use legacy auto-tagging (generates new tags)
|
||||||
const config = await getSystemConfig();
|
const config = await getSystemConfig();
|
||||||
const provider = getAIProvider(config);
|
const provider = getTagsProvider(config);
|
||||||
const tags = await provider.generateTags(content, language);
|
const tags = await provider.generateTags(content, language);
|
||||||
|
|
||||||
return NextResponse.json({ tags });
|
return NextResponse.json({ tags });
|
||||||
|
|||||||
@@ -22,13 +22,6 @@ export function useAutoTagging({ content, notebookId, enabled = true }: UseAutoT
|
|||||||
const previousNotebookId = useRef<string | null | undefined>(notebookId);
|
const previousNotebookId = useRef<string | null | undefined>(notebookId);
|
||||||
|
|
||||||
const analyzeContent = async (contentToAnalyze: string) => {
|
const analyzeContent = async (contentToAnalyze: string) => {
|
||||||
// CRITICAL: Don't suggest labels in "General Notes" (notebookId is null)
|
|
||||||
// Labels should ONLY appear within notebooks, not in the general notes section
|
|
||||||
if (!notebookId) {
|
|
||||||
setSuggestions([]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!contentToAnalyze || contentToAnalyze.length < 10) {
|
if (!contentToAnalyze || contentToAnalyze.length < 10) {
|
||||||
setSuggestions([]);
|
setSuggestions([]);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { prisma } from '@/lib/prisma'
|
import { prisma } from '@/lib/prisma'
|
||||||
import { getAIProvider } from '@/lib/ai/factory'
|
import { getTagsProvider } from '@/lib/ai/factory'
|
||||||
import { getSystemConfig } from '@/lib/config'
|
import { getSystemConfig } from '@/lib/config'
|
||||||
|
|
||||||
export interface SuggestedLabel {
|
export interface SuggestedLabel {
|
||||||
@@ -106,7 +106,7 @@ export class AutoLabelCreationService {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const config = await getSystemConfig()
|
const config = await getSystemConfig()
|
||||||
const provider = getAIProvider(config)
|
const provider = getTagsProvider(config)
|
||||||
const response = await provider.generateText(prompt)
|
const response = await provider.generateText(prompt)
|
||||||
|
|
||||||
// Parse AI response
|
// Parse AI response
|
||||||
|
|||||||
Reference in New Issue
Block a user