feat(stage-ui): add datetime as context provider for chat
This commit is contained in:
@@ -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'
|
||||
Reference in New Issue
Block a user