feat: WorldState memory, increased context, better error handling
- Added WorldState types for character location tracking - Increased RECENT_MESSAGES_COUNT from 6 to 15 - Increased server limits (50k/200k chars) - Added language reminders to system prompts - Better error logging for 400 errors
This commit is contained in:
@@ -9,6 +9,8 @@ import {
|
||||
sendMessage,
|
||||
generateStorySummary,
|
||||
extractKeyEvents,
|
||||
updateWorldState,
|
||||
shouldUpdateWorldState,
|
||||
} from "../services/deepseek";
|
||||
import type {
|
||||
Story,
|
||||
@@ -359,11 +361,26 @@ export default function GamePage() {
|
||||
);
|
||||
}
|
||||
|
||||
// Update world state for better character tracking
|
||||
let newWorldState = session.worldState;
|
||||
if (shouldUpdateWorldState(allMessages.length, session.worldState)) {
|
||||
try {
|
||||
newWorldState = await updateWorldState(
|
||||
story,
|
||||
allMessages,
|
||||
session.worldState,
|
||||
);
|
||||
} catch (e) {
|
||||
console.warn("Failed to update world state:", e);
|
||||
}
|
||||
}
|
||||
|
||||
const finalSession: GameSession = {
|
||||
...session,
|
||||
messages: allMessages,
|
||||
keyEvents: newKeyEvents,
|
||||
storySummary: newSummary,
|
||||
worldState: newWorldState,
|
||||
};
|
||||
|
||||
await apiSaveSession(story.id, currentSessionId, finalSession);
|
||||
@@ -545,9 +562,24 @@ export default function GamePage() {
|
||||
assistantMessage,
|
||||
];
|
||||
|
||||
// Update world state after edit regeneration
|
||||
let newWorldState = session.worldState;
|
||||
if (shouldUpdateWorldState(allMessages.length, session.worldState)) {
|
||||
try {
|
||||
newWorldState = await updateWorldState(
|
||||
story,
|
||||
allMessages,
|
||||
session.worldState,
|
||||
);
|
||||
} catch (e) {
|
||||
console.warn("Failed to update world state:", e);
|
||||
}
|
||||
}
|
||||
|
||||
const finalSession: GameSession = {
|
||||
...session,
|
||||
messages: allMessages,
|
||||
worldState: newWorldState,
|
||||
};
|
||||
|
||||
await apiSaveSession(story.id, currentSessionId, finalSession);
|
||||
|
||||
Reference in New Issue
Block a user