| import type { Viewport } from 'reactflow' |
| import type { VisionFile } from '@/types/app' |
| import type { |
| Edge, |
| Node, |
| } from '@/app/components/workflow/types' |
| import type { Metadata } from '@/app/components/base/chat/chat/type' |
|
|
| |
| export type Conversation = { |
| id: string |
| key: string |
| conversationId: string |
| question: string |
| answer: string |
| userRate: number |
| adminRate: number |
| } |
|
|
| export type ConversationListResponse = { |
| logs: Conversation[] |
| } |
|
|
| export const fetchLogs = (url: string) => |
| fetch(url).then<ConversationListResponse>(r => r.json()) |
|
|
| export const CompletionParams = ['temperature', 'top_p', 'presence_penalty', 'max_token', 'stop', 'frequency_penalty'] as const |
|
|
| export type CompletionParamType = typeof CompletionParams[number] |
|
|
| export type CompletionParamsType = { |
| max_tokens: number |
| temperature: number |
| top_p: number |
| stop: string[] |
| presence_penalty: number |
| frequency_penalty: number |
| } |
|
|
| export type LogModelConfig = { |
| name: string |
| provider: string |
| completion_params: CompletionParamsType |
| } |
|
|
| export type ModelConfigDetail = { |
| introduction: string |
| prompt_template: string |
| prompt_variables: Array<{ |
| key: string |
| name: string |
| description: string |
| type: string | number |
| default: string |
| options: string[] |
| }> |
| completion_params: CompletionParamsType |
| } |
|
|
| export type LogAnnotation = { |
| id: string |
| content: string |
| account: { |
| id: string |
| name: string |
| email: string |
| } |
| created_at: number |
| } |
|
|
| export type Annotation = { |
| id: string |
| authorName: string |
| logAnnotation?: LogAnnotation |
| created_at?: number |
| } |
|
|
| export type MessageContent = { |
| id: string |
| conversation_id: string |
| query: string |
| inputs: Record<string, any> |
| message: { role: string; text: string; files?: VisionFile[] }[] |
| message_tokens: number |
| answer_tokens: number |
| answer: string |
| provider_response_latency: number |
| created_at: number |
| annotation: LogAnnotation |
| annotation_hit_history: { |
| annotation_id: string |
| annotation_create_account: { |
| id: string |
| name: string |
| email: string |
| } |
| created_at: number |
| } |
| feedbacks: Array<{ |
| rating: 'like' | 'dislike' | null |
| content: string | null |
| from_source?: 'admin' | 'user' |
| from_end_user_id?: string |
| }> |
| message_files: VisionFile[] |
| metadata: Metadata |
| agent_thoughts: any[] |
| workflow_run_id: string |
| parent_message_id: string | null |
| } |
|
|
| export type CompletionConversationGeneralDetail = { |
| id: string |
| status: 'normal' | 'finished' |
| from_source: 'api' | 'console' |
| from_end_user_id: string |
| from_end_user_session_id: string |
| from_account_id: string |
| read_at: Date |
| created_at: number |
| updated_at: number |
| annotation: Annotation |
| user_feedback_stats: { |
| like: number |
| dislike: number |
| } |
| admin_feedback_stats: { |
| like: number |
| dislike: number |
| } |
| model_config: { |
| provider: string |
| model_id: string |
| configs: Pick<ModelConfigDetail, 'prompt_template'> |
| } |
| message: Pick<MessageContent, 'inputs' | 'query' | 'answer' | 'message'> |
| } |
|
|
| export type CompletionConversationFullDetailResponse = { |
| id: string |
| status: 'normal' | 'finished' |
| from_source: 'api' | 'console' |
| from_end_user_id: string |
| from_account_id: string |
| |
| created_at: number |
| model_config: { |
| provider: string |
| model_id: string |
| configs: ModelConfigDetail |
| } |
| message: MessageContent |
| } |
|
|
| export type CompletionConversationsResponse = { |
| data: Array<CompletionConversationGeneralDetail> |
| has_more: boolean |
| limit: number |
| total: number |
| page: number |
| } |
|
|
| export type CompletionConversationsRequest = { |
| keyword: string |
| start: string |
| end: string |
| annotation_status: string |
| page: number |
| limit: number |
| } |
|
|
| export type ChatConversationGeneralDetail = Omit<CompletionConversationGeneralDetail, 'message' | 'annotation'> & { |
| summary: string |
| message_count: number |
| annotated: boolean |
| } |
|
|
| export type ChatConversationsResponse = { |
| data: Array<ChatConversationGeneralDetail> |
| has_more: boolean |
| limit: number |
| total: number |
| page: number |
| } |
|
|
| export type ChatConversationsRequest = CompletionConversationsRequest & { message_count: number } |
|
|
| export type ChatConversationFullDetailResponse = Omit<CompletionConversationGeneralDetail, 'message' | 'model_config'> & { |
| message_count: number |
| model_config: { |
| provider: string |
| model_id: string |
| configs: ModelConfigDetail |
| model: LogModelConfig |
| } |
| } |
|
|
| export type ChatMessagesRequest = { |
| conversation_id: string |
| first_id?: string |
| limit: number |
| } |
| export type ChatMessage = MessageContent |
|
|
| export type ChatMessagesResponse = { |
| data: Array<ChatMessage> |
| has_more: boolean |
| limit: number |
| } |
|
|
| export const MessageRatings = ['like', 'dislike', null] as const |
| export type MessageRating = typeof MessageRatings[number] |
|
|
| export type LogMessageFeedbacksRequest = { |
| message_id: string |
| rating: MessageRating |
| content?: string |
| } |
|
|
| export type LogMessageFeedbacksResponse = { |
| result: 'success' | 'error' |
| } |
|
|
| export type LogMessageAnnotationsRequest = Omit<LogMessageFeedbacksRequest, 'rating'> |
|
|
| export type LogMessageAnnotationsResponse = LogMessageFeedbacksResponse |
|
|
| export type AnnotationsCountResponse = { |
| count: number |
| } |
|
|
| export type WorkflowRunDetail = { |
| id: string |
| version: string |
| status: 'running' | 'succeeded' | 'failed' | 'stopped' |
| error?: string |
| elapsed_time: number |
| total_tokens: number |
| total_price: number |
| currency: string |
| total_steps: number |
| finished_at: number |
| } |
| export type AccountInfo = { |
| id: string |
| name: string |
| email: string |
| } |
| export type EndUserInfo = { |
| id: string |
| type: 'browser' | 'service_api' |
| is_anonymous: boolean |
| session_id: string |
| } |
| export type WorkflowAppLogDetail = { |
| id: string |
| workflow_run: WorkflowRunDetail |
| created_from: 'service-api' | 'web-app' | 'explore' |
| created_by_role: 'account' | 'end_user' |
| created_by_account?: AccountInfo |
| created_by_end_user?: EndUserInfo |
| created_at: number |
| read_at?: number |
| } |
| export type WorkflowLogsResponse = { |
| data: Array<WorkflowAppLogDetail> |
| has_more: boolean |
| limit: number |
| total: number |
| page: number |
| } |
| export type WorkflowLogsRequest = { |
| keyword: string |
| status: string |
| page: number |
| limit: number |
| } |
|
|
| export type WorkflowRunDetailResponse = { |
| id: string |
| sequence_number: number |
| version: string |
| graph: { |
| nodes: Node[] |
| edges: Edge[] |
| viewport?: Viewport |
| } |
| inputs: string |
| status: 'running' | 'succeeded' | 'failed' | 'stopped' |
| outputs?: string |
| error?: string |
| elapsed_time?: number |
| total_tokens?: number |
| total_steps: number |
| created_by_role: 'account' | 'end_user' |
| created_by_account?: AccountInfo |
| created_by_end_user?: EndUserInfo |
| created_at: number |
| finished_at: number |
| } |
|
|
| export type AgentLogMeta = { |
| status: string |
| executor: string |
| start_time: string |
| elapsed_time: number |
| total_tokens: number |
| agent_mode: string |
| iterations: number |
| error?: string |
| } |
|
|
| export type ToolCall = { |
| status: string |
| error?: string | null |
| time_cost?: number |
| tool_icon: any |
| tool_input?: any |
| tool_output?: any |
| tool_name?: string |
| tool_label?: any |
| tool_parameters?: any |
| } |
|
|
| export type AgentIteration = { |
| created_at: string |
| files: string[] |
| thought: string |
| tokens: number |
| tool_calls: ToolCall[] |
| tool_raw: { |
| inputs: string |
| outputs: string |
| } |
| } |
|
|
| export type AgentLogFile = { |
| id: string |
| type: string |
| url: string |
| name: string |
| belongs_to: string |
| } |
|
|
| export type AgentLogDetailRequest = { |
| conversation_id: string |
| message_id: string |
| } |
|
|
| export type AgentLogDetailResponse = { |
| meta: AgentLogMeta |
| iterations: AgentIteration[] |
| files: AgentLogFile[] |
| } |
|
|