mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 23:01:09 +03:00
Add feedback endpoints
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
import { Entity, Column, CreateDateColumn, PrimaryGeneratedColumn, Index } from 'typeorm'
|
import { Entity, Column, CreateDateColumn, PrimaryGeneratedColumn, Index, OneToOne, JoinColumn } from 'typeorm'
|
||||||
import { IChatMessage, MessageType } from '../../Interface'
|
import { IChatMessage, MessageType } from '../../Interface'
|
||||||
|
import { ChatMessageFeedback } from './ChatMessageFeedback'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class ChatMessage implements IChatMessage {
|
export class ChatMessage implements IChatMessage {
|
||||||
@@ -40,4 +41,8 @@ export class ChatMessage implements IChatMessage {
|
|||||||
|
|
||||||
@CreateDateColumn()
|
@CreateDateColumn()
|
||||||
createdDate: Date
|
createdDate: Date
|
||||||
|
|
||||||
|
@OneToOne(() => ChatMessageFeedback)
|
||||||
|
@JoinColumn()
|
||||||
|
feedback?: ChatMessageFeedback
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import logger from './utils/logger'
|
|||||||
import { expressRequestLogger } from './utils/logger'
|
import { expressRequestLogger } from './utils/logger'
|
||||||
import { v4 as uuidv4 } from 'uuid'
|
import { v4 as uuidv4 } from 'uuid'
|
||||||
import OpenAI from 'openai'
|
import OpenAI from 'openai'
|
||||||
import { Between, IsNull, FindOptionsWhere } from 'typeorm'
|
import { Between, IsNull, FindOptionsWhere, createQueryBuilder } from 'typeorm'
|
||||||
import {
|
import {
|
||||||
IChatFlow,
|
IChatFlow,
|
||||||
IncomingInput,
|
IncomingInput,
|
||||||
@@ -20,6 +20,7 @@ import {
|
|||||||
ICredentialReturnResponse,
|
ICredentialReturnResponse,
|
||||||
chatType,
|
chatType,
|
||||||
IChatMessage,
|
IChatMessage,
|
||||||
|
IChatMessageFeedback,
|
||||||
IDepthQueue,
|
IDepthQueue,
|
||||||
INodeDirectedGraph
|
INodeDirectedGraph
|
||||||
} from './Interface'
|
} from './Interface'
|
||||||
@@ -54,6 +55,7 @@ import { getDataSource } from './DataSource'
|
|||||||
import { NodesPool } from './NodesPool'
|
import { NodesPool } from './NodesPool'
|
||||||
import { ChatFlow } from './database/entities/ChatFlow'
|
import { ChatFlow } from './database/entities/ChatFlow'
|
||||||
import { ChatMessage } from './database/entities/ChatMessage'
|
import { ChatMessage } from './database/entities/ChatMessage'
|
||||||
|
import { ChatMessageFeedback } from './database/entities/ChatMessageFeedback'
|
||||||
import { Credential } from './database/entities/Credential'
|
import { Credential } from './database/entities/Credential'
|
||||||
import { Tool } from './database/entities/Tool'
|
import { Tool } from './database/entities/Tool'
|
||||||
import { Assistant } from './database/entities/Assistant'
|
import { Assistant } from './database/entities/Assistant'
|
||||||
@@ -512,6 +514,7 @@ export class App {
|
|||||||
const sessionId = req.query?.sessionId as string | undefined
|
const sessionId = req.query?.sessionId as string | undefined
|
||||||
const startDate = req.query?.startDate as string | undefined
|
const startDate = req.query?.startDate as string | undefined
|
||||||
const endDate = req.query?.endDate as string | undefined
|
const endDate = req.query?.endDate as string | undefined
|
||||||
|
const feedback = req.query?.feedback as boolean | undefined
|
||||||
let chatTypeFilter = req.query?.chatType as chatType | undefined
|
let chatTypeFilter = req.query?.chatType as chatType | undefined
|
||||||
|
|
||||||
if (chatTypeFilter) {
|
if (chatTypeFilter) {
|
||||||
@@ -537,7 +540,8 @@ export class App {
|
|||||||
memoryType,
|
memoryType,
|
||||||
sessionId,
|
sessionId,
|
||||||
startDate,
|
startDate,
|
||||||
endDate
|
endDate,
|
||||||
|
feedback
|
||||||
)
|
)
|
||||||
return res.json(chatmessages)
|
return res.json(chatmessages)
|
||||||
})
|
})
|
||||||
@@ -599,6 +603,24 @@ export class App {
|
|||||||
return res.json(results)
|
return res.json(results)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// ----------------------------------------
|
||||||
|
// Chat Message Feedback
|
||||||
|
// ----------------------------------------
|
||||||
|
this.app.get('/api/v1/feedback/:id', async (req: Request, res: Response) => {})
|
||||||
|
|
||||||
|
this.app.post('/api/v1/feedback/:id', async (req: Request, res: Response) => {
|
||||||
|
const body = req.body
|
||||||
|
const results = await this.addChatMessageFeedback(body)
|
||||||
|
return res.json(results)
|
||||||
|
})
|
||||||
|
|
||||||
|
this.app.put('/api/v1/feedback/:id', async (req: Request, res: Response) => {
|
||||||
|
const chatflowid = req.params.id
|
||||||
|
const body = req.body
|
||||||
|
const results = await this.addChatMessageFeedback(body)
|
||||||
|
return res.json(results)
|
||||||
|
})
|
||||||
|
|
||||||
// ----------------------------------------
|
// ----------------------------------------
|
||||||
// Credentials
|
// Credentials
|
||||||
// ----------------------------------------
|
// ----------------------------------------
|
||||||
@@ -1422,6 +1444,7 @@ export class App {
|
|||||||
* @param {string} sessionId
|
* @param {string} sessionId
|
||||||
* @param {string} startDate
|
* @param {string} startDate
|
||||||
* @param {string} endDate
|
* @param {string} endDate
|
||||||
|
* @param {boolean} feedback
|
||||||
*/
|
*/
|
||||||
async getChatMessage(
|
async getChatMessage(
|
||||||
chatflowid: string,
|
chatflowid: string,
|
||||||
@@ -1431,7 +1454,8 @@ export class App {
|
|||||||
memoryType?: string,
|
memoryType?: string,
|
||||||
sessionId?: string,
|
sessionId?: string,
|
||||||
startDate?: string,
|
startDate?: string,
|
||||||
endDate?: string
|
endDate?: string,
|
||||||
|
feedback?: boolean
|
||||||
): Promise<ChatMessage[]> {
|
): Promise<ChatMessage[]> {
|
||||||
let fromDate
|
let fromDate
|
||||||
if (startDate) fromDate = new Date(startDate)
|
if (startDate) fromDate = new Date(startDate)
|
||||||
@@ -1450,6 +1474,9 @@ export class App {
|
|||||||
},
|
},
|
||||||
order: {
|
order: {
|
||||||
createdDate: sortOrder === 'DESC' ? 'DESC' : 'ASC'
|
createdDate: sortOrder === 'DESC' ? 'DESC' : 'ASC'
|
||||||
|
},
|
||||||
|
relations: {
|
||||||
|
feedback
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -1466,6 +1493,18 @@ export class App {
|
|||||||
return await this.AppDataSource.getRepository(ChatMessage).save(chatmessage)
|
return await this.AppDataSource.getRepository(ChatMessage).save(chatmessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method that adds feedback for a chat message.
|
||||||
|
* @param {Partial<IChatMessageFeedback>} chatMessageFeedback
|
||||||
|
*/
|
||||||
|
async addChatMessageFeedback(chatMessageFeedback: Partial<IChatMessageFeedback>): Promise<ChatMessageFeedback> {
|
||||||
|
const newFeedback = new ChatMessageFeedback()
|
||||||
|
Object.assign(newFeedback, chatMessageFeedback)
|
||||||
|
|
||||||
|
const feedback = this.AppDataSource.getRepository(ChatMessageFeedback).create(newFeedback)
|
||||||
|
return await this.AppDataSource.getRepository(ChatMessageFeedback).save(feedback)
|
||||||
|
}
|
||||||
|
|
||||||
async upsertVector(req: Request, res: Response, isInternal: boolean = false) {
|
async upsertVector(req: Request, res: Response, isInternal: boolean = false) {
|
||||||
try {
|
try {
|
||||||
const chatflowid = req.params.id
|
const chatflowid = req.params.id
|
||||||
|
|||||||
Reference in New Issue
Block a user