Spaces:
Paused
Paused
| 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' | |
| // Log type contains key:string conversation_id:string created_at:string question:string answer:string | |
| 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[] // TODO | |
| 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 | |
| // read_at: Date | |
| 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 // The default value is 20 and the range is 1-100 | |
| } | |
| 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 // The default value is 20 and the range is 1-100 | |
| } | |
| 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[] | |
| } | |