UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

164 lines (142 loc) 3 kB
import { LobeAgentConfig } from '@/types/agent'; import { ChatMessageError, ChatPluginPayload, ChatTTS, ChatToolPayload, ChatTranslate, MessageRoleType, } from '@/types/message'; import { MetaData } from '@/types/meta'; import { SessionGroupId } from '@/types/session'; export interface ImportSession { config: LobeAgentConfig; createdAt: string; group?: SessionGroupId; id: string; meta: MetaData; pinned?: boolean; type: 'agent' | 'group'; updatedAt: string; } export interface ImportMessage { content: string; createdAt: number; error?: ChatMessageError; // 扩展字段 extra?: { fromModel?: string; fromProvider?: string; // 翻译 translate?: ChatTranslate | false | null; // TTS tts?: ChatTTS; } & Record<string, any>; files?: string[]; id: string; /** * observation id */ observationId?: string; /** * parent message id */ parentId?: string; plugin?: ChatPluginPayload; pluginState?: any; quotaId?: string; role: MessageRoleType; sessionId?: string; tool_call_id?: string; tools?: ChatToolPayload[]; topicId?: string; traceId?: string; updatedAt: number; } export interface ImportSessionGroup { createdAt: number; id: string; name: string; sort?: number | null; updatedAt: number; } export interface ImportTopic { createdAt: number; favorite?: boolean; historySummary?: string; id: string; metadata?: { model?: string; provider?: string; }; sessionId?: string; title: string; updatedAt: number; } export interface ImporterEntryData { messages?: ImportMessage[]; sessionGroups?: ImportSessionGroup[]; sessions?: ImportSession[]; topics?: ImportTopic[]; version: number; } export interface ImportResult { added: number; errors: number; skips: number; } export interface ImportResults { messages?: ImportResult; sessionGroups?: ImportResult; sessions?: ImportResult; topics?: ImportResult; type?: string; } export enum ImportStage { Start, Preparing, Uploading, Importing, Success, Error, Finished, } export interface FileUploadState { progress: number; /** * rest time in ms */ restTime: number; /** * upload speed in KB/s */ speed: number; } export interface ErrorShape { code: string; httpStatus: number; message: string; path?: string; } export interface OnImportCallbacks { onError?: (error: ErrorShape) => void; onFileUploading?: (state: FileUploadState) => void; onStageChange?: (stage: ImportStage) => void; /** * * @param results * @param duration in ms */ onSuccess?: (results: ImportResults, duration: number) => void; } // ------ export type ImportResultData = ImportSuccessResult | ImportErrorResult; export interface ImportSuccessResult { results: Record<string, any>; success: true; } export interface ImportErrorResult { error: { details?: string; message: string }; results: Record<string, any>; success: false; }