feat(stage-ui): add datetime as context provider for chat

This commit is contained in:
RainbowBird
2026-01-21 23:23:20 +08:00
parent cda460ea29
commit 3590fdbdf7
3 changed files with 27 additions and 0 deletions
+4
View File
@@ -12,6 +12,7 @@ import { ref, toRaw } from 'vue'
import { useAnalytics } from '../composables'
import { useLlmmarkerParser } from '../composables/llm-marker-parser'
import { categorizeResponse, createStreamingCategorizer } from '../composables/response-categoriser'
import { createDatetimeContext } from './chat/context-providers'
import { useChatContextStore } from './chat/context-store'
import { createChatHooks } from './chat/hooks'
import { useChatSessionStore } from './chat/session-store'
@@ -99,6 +100,9 @@ export const useChatOrchestratorStore = defineStore('chat-orchestrator', () => {
chatSession.ensureSession(sessionId)
// Inject current datetime context before composing the message
chatContext.ingestContextMessage(createDatetimeContext())
const sendingCreatedAt = Date.now()
const streamingMessageContext: ChatStreamEventContext = {
message: { role: 'user', content: sendingMessage, createdAt: sendingCreatedAt },
@@ -0,0 +1,22 @@
import type { ContextMessage } from '../../../types/chat'
import { ContextUpdateStrategy } from '@proj-airi/server-sdk'
import { nanoid } from 'nanoid'
const DATETIME_CONTEXT_ID = 'system:datetime'
/**
* Creates a context message containing the current datetime information.
* This context is injected before each chat message to provide temporal awareness.
*/
export function createDatetimeContext(): ContextMessage {
const now = new Date()
return {
id: nanoid(),
contextId: DATETIME_CONTEXT_ID,
strategy: ContextUpdateStrategy.ReplaceSelf,
text: `Current datetime: ${now.toISOString()} (${now.toLocaleString()})`,
createdAt: Date.now(),
}
}
@@ -0,0 +1 @@
export { createDatetimeContext } from './datetime'