123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 |
- 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[]
- }
|