File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -30,6 +30,18 @@ type LangfuseChatMessage = {
3030 tool_call_id ?: string
3131}
3232
33+ function isLangfuseRole ( value : unknown ) : value is LangfuseChatMessage [ 'role' ] {
34+ switch ( value ) {
35+ case 'user' :
36+ case 'assistant' :
37+ case 'system' :
38+ case 'tool' :
39+ return true
40+ default :
41+ return false
42+ }
43+ }
44+
3345type LangfuseInputMessage =
3446 | UserMessage
3547 | AssistantMessage
@@ -144,11 +156,11 @@ export function convertMessagesToLangfuse(
144156 }
145157 }
146158 for ( const msg of messages ) {
147- const inner = 'message' in msg ? msg . message : msg
159+ const isWrappedMessage = 'message' in msg
160+ const inner = isWrappedMessage ? msg . message : msg
148161 if ( ! inner ) continue
149162 const role =
150- ( inner . role as 'user' | 'assistant' | 'system' | 'tool' | undefined ) ??
151- ( 'message' in msg ? toRole ( msg ) : 'user' )
163+ isLangfuseRole ( inner . role ) ? inner . role : isWrappedMessage ? toRole ( msg ) : 'user'
152164 const rawContent = inner . content
153165 if ( typeof rawContent === 'string' || ! Array . isArray ( rawContent ) ) {
154166 result . push ( {
You can’t perform that action at this time.
0 commit comments