Flowise

Форк
0
51 строка · 1.7 Кб
1
import { StatusCodes } from 'http-status-codes'
2
import { chatType } from '../../Interface'
3
import { ChatMessage } from '../../database/entities/ChatMessage'
4
import { utilGetChatMessage } from '../../utils/getChatMessage'
5
import { ChatMessageFeedback } from '../../database/entities/ChatMessageFeedback'
6
import { InternalFlowiseError } from '../../errors/internalFlowiseError'
7
import { getErrorMessage } from '../../errors/utils'
8

9
// get stats for showing in chatflow
10
const getChatflowStats = async (
11
    chatflowid: string,
12
    chatTypeFilter: chatType | undefined,
13
    startDate?: string,
14
    endDate?: string,
15
    messageId?: string,
16
    feedback?: boolean
17
): Promise<any> => {
18
    try {
19
        const chatmessages = (await utilGetChatMessage(
20
            chatflowid,
21
            chatTypeFilter,
22
            undefined,
23
            undefined,
24
            undefined,
25
            undefined,
26
            startDate,
27
            endDate,
28
            messageId,
29
            feedback
30
        )) as Array<ChatMessage & { feedback?: ChatMessageFeedback }>
31
        const totalMessages = chatmessages.length
32
        const totalFeedback = chatmessages.filter((message) => message?.feedback).length
33
        const positiveFeedback = chatmessages.filter((message) => message?.feedback?.rating === 'THUMBS_UP').length
34
        const dbResponse = {
35
            totalMessages,
36
            totalFeedback,
37
            positiveFeedback
38
        }
39

40
        return dbResponse
41
    } catch (error) {
42
        throw new InternalFlowiseError(
43
            StatusCodes.INTERNAL_SERVER_ERROR,
44
            `Error: statsService.getChatflowStats - ${getErrorMessage(error)}`
45
        )
46
    }
47
}
48

49
export default {
50
    getChatflowStats
51
}
52

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.