This commit is contained in:
Zacharias-Brohn
2026-01-14 23:20:21 +01:00
parent b0fd4ff1ae
commit 0ea5048c19
2 changed files with 13 additions and 8 deletions
+12 -6
View File
@@ -6,18 +6,24 @@ interface Message {
content: string;
}
// Use a fast, consistent model for title generation
const TITLE_MODEL = 'deepseek-r1:8b';
/**
* Generate a short, descriptive title for a chat based on the conversation
*/
export async function POST(request: NextRequest) {
try {
const { model, messages } = await request.json();
const { messages } = await request.json();
// eslint-disable-next-line no-console
console.log('[Title API] Request received:', { model, messageCount: messages?.length });
console.log('[Title API] Request received:', {
model: TITLE_MODEL,
messageCount: messages?.length,
});
if (!model || !messages || !Array.isArray(messages) || messages.length === 0) {
return NextResponse.json({ error: 'Model and messages array are required' }, { status: 400 });
if (!messages || !Array.isArray(messages) || messages.length === 0) {
return NextResponse.json({ error: 'Messages array is required' }, { status: 400 });
}
// Format the conversation for context (truncate long messages)
@@ -44,7 +50,7 @@ Rules:
- "React Component Tutorial"`;
const response = await ollama.chat({
model,
model: TITLE_MODEL,
messages: [
{ role: 'system', content: systemPrompt },
{
@@ -54,7 +60,7 @@ Rules:
],
options: {
temperature: 0.3, // Lower temperature for more focused output
num_predict: 20, // Limit output length
num_predict: 50, // Allow more tokens for thinking models
},
});
+1 -2
View File
@@ -449,7 +449,7 @@ export default function ChatLayout() {
// Generate a title for new chats using the model
let chatTitle = `${userMessage.content.slice(0, 30)}...`; // Fallback title
if (isNewChat && selectedModel) {
if (isNewChat) {
try {
// Build conversation context (excluding the initial greeting)
const conversationForTitle = [...newMessages, responseMessage]
@@ -460,7 +460,6 @@ export default function ChatLayout() {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: selectedModel,
messages: conversationForTitle,
}),
});