UNPKG

focus-product-extractor2

Version:

Extract product information from chat/order data

259 lines (232 loc) 5.29 kB
declare module "focus-product-extractor2" { interface CardMessageHeader { type: number; icon: string; title: string; } interface CardMessageContent { type: number; icon?: string; title: string; content: string; } interface CardMessageImage { type: number; url: string; } interface CardMessageWare { title: string; desc: string; price: number; num: number; image_url: string; ware_url: string; } interface CardMessageOrderItem { title: string; desc: string; extra_info: string[]; price: number; num: number; image_url: string; ware_url: string; } interface CardMessageOrder { type: number; title: string; desc: string; order_id: string; total_price: string; list: CardMessageOrderItem[]; } interface CardMessageInfo { title: string; desc: string; } interface CardMessageProgressItem { title: string; icon: string; color: string; desc: string; tip: string; } interface CardMessageCoupon { style: number; type: number; begin: number; end: number; name: string; status: number; discount: string; quota: string; tag: string; image_url: string; } interface MessageBase { type: number; sub_type: number; sku_id?: string; spu_id?: string; order_id?: string; question?: string; origin_data?: string; } interface TextMessage extends MessageBase { sub_type: 1; text: { content: string; }; } interface ImageMessage extends MessageBase { sub_type: 2; image: { url: string; width: number; height: number; }; } interface VideoMessage extends MessageBase { sub_type: 3; video: { url: string; width: number; height: number; }; } interface CardMessage extends MessageBase { sub_type: 4; card_msg: { data: Array<{ header?: CardMessageHeader; content?: CardMessageContent; img?: CardMessageImage; wares?: { type: number; list: CardMessageWare[]; }; orders?: CardMessageOrder; infos?: { type: number; list: CardMessageInfo[]; }; progress?: { type: number; list: CardMessageProgressItem[]; }; coupons?: { type: number; list: CardMessageCoupon[]; }; }>; }; } interface FileMessage extends MessageBase { sub_type: 5; file: { url: string; }; } interface BuyerEnterMessage extends MessageBase { sub_type: 6; buyer_enter_msg: { from: string; sku_id: string; spu_id: string; order_id: string; }; } interface TransferOutMessage extends MessageBase { sub_type: 7; transfer_out: { from: string; from_spin: string; to_spin: string; pin: string; order_id: string; plat_goods_id: string; }; } interface TransferInMessage extends MessageBase { sub_type: 8; transfer_in: { from: string; from_spin: string; to_spin: string; pin: string; order_id: string; plat_goods_id: string; }; } interface VoiceMessage extends MessageBase { sub_type: 9; voice: { url: string; duration: number; }; } type ChatMessage = | TextMessage | ImageMessage | VideoMessage | CardMessage | FileMessage | BuyerEnterMessage | TransferOutMessage | TransferInMessage | VoiceMessage; interface OrderItem { id: string; name?: string; price?: number; status?: string; create_time?: number; sku_id?: string; spu_id?: string; image_url?: string; } interface CustomRule { pattern: string; flags?: string; description?: string; } interface ProcessInput { scene?: "chat" | "order"; // 可选参数,不传递的时候就是全部提取,当传chat就代表只从聊天中提取,传order就代表只从order中提取 platform: string; shopId: string; rawData: { messages?: Array<{ sender: "buyer" | "service" | "system"; timestamp: number; message: ChatMessage; }>; orderItems?: OrderItem[]; }; rules?: { sources?: ("buyer" | "service" | "system")[]; customRules?: CustomRule[]; }; authConfig?: { taobaoAuth?: string; domesticAuth?: string; overseasAuth?: string; }; } interface ProcessResultItem { goodsId?: string; spuId?: string; orderId?: string; name?: string; source?: string; matchedText?: string; metadata: any; } interface ProcessResult { items: ProcessResultItem[]; } const FocusProductExtractor: { process(input: ProcessInput): ProcessResult; }; // 确保类型声明兼容两种导入方式 export = FocusProductExtractor; export as namespace FocusProductExtractor; }