feat: 加入插件开发计划

This commit is contained in:
R524809
2026-08-07 17:37:16 +08:00
parent 2083ad1954
commit a925283bf7
98 changed files with 11919 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"version": "1.1.8"
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.i_QiiG_wrapper{z-index:2147483641;cursor:wait;display:none;position:fixed;inset:0;overflow:hidden}.i_QiiG_wrapper.i_QiiG_visible{display:block}.A2hPZa_cursor{width:var(--cursor-size,75px);height:var(--cursor-size,75px);pointer-events:none;z-index:10000;position:absolute}.A2hPZa_cursorBorder{transform-origin:50%;background:linear-gradient(45deg,#39b6ff,#bd45fb);width:100%;height:100%;margin-top:-18px;margin-left:-10px;position:absolute;transform:rotate(-135deg)scale(1.2);mask-image:url(cursor-border.decb5f82.svg);mask-size:100% 100%;mask-repeat:no-repeat}.A2hPZa_cursorFilling{transform-origin:50%;background:url(cursor-fill.6b9e128f.svg) 0 0/100% 100% no-repeat;width:100%;height:100%;margin-top:-18px;margin-left:-10px;position:absolute;transform:rotate(-135deg)scale(1.2)}.A2hPZa_cursorRipple{pointer-events:none;width:100%;height:100%;margin-top:-50%;margin-left:-50%;position:absolute;&:after{content:"";opacity:0;border:4px solid #39b6ff;border-radius:50%;position:absolute;inset:0}}.A2hPZa_cursor.A2hPZa_clicking .A2hPZa_cursorRipple:after{animation:.3s ease-out forwards A2hPZa_cursor-ripple}@keyframes A2hPZa_cursor-ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(2)}}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "ፒንጂን የ1688 ግዢ አስተዳዳሪ"
},
"extensionDescription": {
"message": "የ1688 ፕላግ-ኢን ለምርት ፍለጋ በስክሪን ሾት፣ የሽያጭ ትንተና፣ የቁሳቁስ ማውረድ እና旺旺 ማሳወቂያዎች። የግዢ ውጤታማነትን ያሻሽላል።"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "ملحق مساعد الشراء من 1688"
},
"extensionDescription": {
"message": "ملحق 1688 للبحث عن المنتجات بلقطة الشاشة وتحليل المبيعات والأسعار وتنزيل المواد وإشعارات旺旺. يحسن كفاءة الشراء."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Приставка за помощник за поръчка от 1688"
},
"extensionDescription": {
"message": "Приставка 1688 за търсене на продукти със скрийншот, анализ на продажби и цени, изтегляне на материали и旺旺 уведомления. Подобрява ефективността на поръчването."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 ক্রয় সহায়ক প্লাগইন"
},
"extensionDescription": {
"message": "1688 প্লাগিন - স্ক্রিনশট দিয়ে পণ্য খোঁজা, বিক্রয় বিশ্লেষণ, উপকরণ ডাউনলোড এবং旺旺 বার্তা। ক্রয় দক্ষতা বাড়ায়।"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Complement de l'assistant de compres de 1688"
},
"extensionDescription": {
"message": "Complement 1688 per cercar productes amb captura de pantalla, consultar tendències de vendes i preus, descarregar materials i rebre notificacions旺旺. Millora l'eficiència de compra."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Plugin Asistenta pro nákup z 1688"
},
"extensionDescription": {
"message": "Plugin 1688 pro vyhledávání produktů snímkem obrazovky, analýzu prodeje a cen, stahování materiálů a旺旺 oznámení. Zvyšuje efektivitu nákupu."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Indkøbsassistent-plugin"
},
"extensionDescription": {
"message": "1688 plugin til produktsøgning med skærmbillede, salgsanalyse og prisudvikling, materialenedlastning og旺旺-notifikationer. Forbedrer indkøbseffektivitet."
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "1688 Einkaufsassistent Plugin",
"description": "Plugin-Name"
},
"extensionDescription": {
"message": "Offizielles 1688-Plugin für Screenshots, Produktsuche, Verkaufsanalysen und Benachrichtigungen. Ihr Partner beim Einkaufen.",
"description": "Plugin-Beschreibung"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Πρόσθετο Βοηθού Αγορών 1688"
},
"extensionDescription": {
"message": "Πρόσθετο 1688 για αναζήτηση προϊόντων με στιγμιότυπο, ανάλυση πωλήσεων και τιμών, λήψη υλικών και ειδοποιήσεις旺旺. Βελτιώνει την αποτελεσματικότητα αγορών."
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "1688 Purchasing Assistant Plugin",
"description": "Plugin name"
},
"extensionDescription": {
"message": "Official 1688 Plugin for screenshots, product searches, sales trends, downloads, and Wangwang notifications.",
"description": "Plugin description"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Purchase Assistant Plugin"
},
"extensionDescription": {
"message": "1688 plugin for screenshot product search, sales analysis, material downloads and旺旺 notifications. Improves purchasing efficiency."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Purchase Assistant Plugin"
},
"extensionDescription": {
"message": "1688 plugin for screenshot product search, sales analysis, material downloads and旺旺 notifications. Improves purchasing efficiency."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Purchase Assistant Plugin"
},
"extensionDescription": {
"message": "1688 plugin for screenshot product search, sales analysis, material downloads and旺旺 notifications. Improves purchasing efficiency."
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "Versión del Plugin Asistente de Compras 1688",
"description": "Nombre del Plugin"
},
"extensionDescription": {
"message": "Plugin oficial de 1688 para capturas de pantalla, búsqueda de productos, análisis de ventas, descargas y notificaciones Wangwang.",
"description": "Descripción del Plugin"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Complemento del Asistente de Compras de 1688"
},
"extensionDescription": {
"message": "Complemento 1688 para búsqueda por captura de pantalla, análisis de ventas y precios, descarga de materiales y notificaciones旺旺. Mejora la eficiencia de compras."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 ostutööriista plugin"
},
"extensionDescription": {
"message": "1688 plugin toodete otsimiseks ekraanipildiga, müügi ja hinna analüüsiks, materjalide allalaadimiseks ja旺旺 teavitusteks. Parandab ostlemise tõhusust."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "افزونهٔ کمک خرید 1688"
},
"extensionDescription": {
"message": "افزونه 1688 برای جستجوی محصول با عکس صفحه، تحلیل فروش و قیمت، دانلود مواد و اطلاعیه旺旺. کارایی خرید را بهبود می‌بخشد."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Ostopalvelun liitännäinen"
},
"extensionDescription": {
"message": "1688 liitännäinen tuotehakuun ruudunkuvalla, myynti- ja hinta-analyysiin, materiaalien lataamiseen ja旺旺-ilmoituksiin. Parantaa ostojen tehokkuutta."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Plugin ng 1688 Purchase Assistant"
},
"extensionDescription": {
"message": "Plugin ng 1688 para sa screenshot search, sales trends, material downloads, at旺旺 notifications. Tumutulong mapabuti ang efficiency sa pagbili."
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "Version du Plugin Assistant d'Achat 1688",
"description": "Nom du Plugin"
},
"extensionDescription": {
"message": "Plugin officiel 1688 pour captures d'écran, recherche de produits, tendances de vente, téléchargements et notifications Wangwang.",
"description": "Description du Plugin"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 ખરીદી મદદનું પ્લગઇન"
},
"extensionDescription": {
"message": "1688 પ્લગઇન - સ્ક્રીનશૉટ દ્વારા ઉત્પાદન શોધ, વેચાણ વિશ્લેષણ, સામગ્રી ડાઉનલોડ અને旺旺 સૂચનાઓ. ખરીદી કાર્યક્ષમતા સુધારે છે."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "תוסף עוזר קנייה של 1688"
},
"extensionDescription": {
"message": "תוסף 1688 לחיפוש מוצרים בצילום מסך, ניתוח מכירות ומחירים, הורדת חומרים והתראות旺旺. משפר יעילות רכישה."
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "1688 खरीदारी सहायक प्लगइन",
"description": "प्लगइन का नाम"
},
"extensionDescription": {
"message": "1688 आधिकारिक प्लगइन जो स्क्रीनशॉट, समान उत्पाद खोज, बिक्री प्रवृत्तियों और वांगवांग सूचनाओं का समर्थन करता है।",
"description": "प्लगइन विवरण"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Dodatak za pomoć pri kupnji s 1688"
},
"extensionDescription": {
"message": "Dodatak 1688 za pretraživanje proizvoda snimkom zaslona, analizu prodaje i cijena, preuzimanje materijala i旺旺 obavijesti. Poboljšava učinkovitost kupnje."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Vásárlási Asszisztens bővítmény"
},
"extensionDescription": {
"message": "1688 bővítmény termékkereséshez képernyőképpel, értékesítési és ármozgás elemzéshez, anyagletöltéshez és旺旺 értesítésekhez. Javítja a vásárlási hatékonyságot."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Plugin Asisten Pembelian 1688"
},
"extensionDescription": {
"message": "Plugin 1688 untuk pencarian produk dengan tangkapan layar, analisis penjualan dan harga, unduhan materi dan notifikasi旺旺. Meningkatkan efisiensi pembelian."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Plugin Assistente Acquisti 1688"
},
"extensionDescription": {
"message": "Plugin 1688 per ricerca prodotti con screenshot, analisi vendite e prezzi, download materiali e notifiche旺旺. Migliora l'efficienza degli acquisti."
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "1688購入アシスタントプラグイン",
"description": "プラグイン名"
},
"extensionDescription": {
"message": "1688公式プラグインで、ワンクリックスクリーンショット、類似製品検索、販売トレンド、素材ダウンロード、ワンワン通知をサポートします。",
"description": "プラグイン説明"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 ಖರೀದಿ ಸಹಾಯಕ ಪ್ಲಗ್‌ಇನ್"
},
"extensionDescription": {
"message": "1688 ಪ್ಲಗ್‌ಇನ್ - ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ಬಳಸಿ ಉತ್ಪನ್ನ ಹುಡುಕಿ, ಮಾರಾಟ ವಿಶ್ಲೇಷಣೆ, ಸಾಮಗ್ರಿ ಡೌನ್‌ಲೋಡ್, 旺旺 ಅಧಿಸೂಚನೆಗಳು. ಖರೀದಿ ದಕ್ಷತೆ ಸುಧಾರಿಸುತ್ತದೆ."
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "1688 구매 도우미 플러그인",
"description": "플러그인 이름"
},
"extensionDescription": {
"message": "1688 공식 플러그인으로, 원클릭 스크린샷, 유사 상품 검색, 판매 추세, 다운로드 및 왕왕 알림 기능을 지원합니다.",
"description": "플러그인 설명"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Pirkimo pagalbos įskiepis"
},
"extensionDescription": {
"message": "1688 įskiepis prekių paieškai su ekrano nuotrauka, pardavimų analizei, medžiagų atsisiuntimui ir旺旺 pranešimams. Pagerina pirkimo efektyvumą."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Iepirkšanās palīga spraudnis"
},
"extensionDescription": {
"message": "1688 spraudnis produktu meklēšanai ar ekrānuzņēmumu, pārdošanas un cenu analīzei, materiālu lejupielādei un旺旺 paziņojumiem. Uzlabo iepirkšanās efektivitāti."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 വാങ്ങൽ സഹായകന്റെ പ്ലഗിൻ"
},
"extensionDescription": {
"message": "1688 പ്ലഗിൻ - സ്ക്രീൻഷോട്ട് ഉപയോഗിച്ച് ഉത്പന്നം തിരയുക, വിൽപ്പന വിശകലനം, സാമഗ്രി ഡൗൺലോഡ്, 旺旺 അറിയിപ്പുകൾ. വാങ്ങൽ കാര്യക്ഷമത മെച്ചപ്പെടുത്തുന്നു."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 खरेदी सहाय्यक प्लगइन"
},
"extensionDescription": {
"message": "1688 प्लगइन - स्क्रीनशॉटने उत्पादन शोध, विक्री विश्लेषण, सामग्री डाउनलोड आणि旺旺 सूचना. खरेदी कार्यक्षमता सुधारते."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Plugin Pembantu Pembelian 1688"
},
"extensionDescription": {
"message": "Plugin 1688 untuk carian produk dengan tangkapan skrin, analisis jualan dan harga, muat turun bahan dan pemberitahuan旺旺. Meningkatkan kecekapan pembelian."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Inkoopassistent-plugin"
},
"extensionDescription": {
"message": "1688 plugin voor productzoeken met schermfoto, verkoop- en prijsanalyse, materiaaldownloads en旺旺-notificaties. Verbetert inkoopefficiëntie."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Kjøpshjelper-tillegg"
},
"extensionDescription": {
"message": "1688 plugin for produktsøk med skjermbilde, salgs- og prisanalyse, materialnedlasting og旺旺-varsler. Forbedrer kjøpseffektivitet."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Wtyczka Asystenta Zakupów 1688"
},
"extensionDescription": {
"message": "Plugin 1688 do wyszukiwania produktów zrzutami ekranu, analiz sprzedaży i cen, pobierania materiałów i powiadomień旺旺. Poprawia efektywność zakupów."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Plugin do Assistente de Compras 1688"
},
"extensionDescription": {
"message": "Plugin 1688 para busca por captura de tela, análise de vendas e preços, downloads de materiais e notificações旺旺. Melhora a eficiência em compras."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Plugin do Assistente de Compras 1688"
},
"extensionDescription": {
"message": "Plugin 1688 para busca por captura de tela, análise de vendas e preços, downloads de materiais e notificações旺旺. Melhora a eficiência em compras."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Plugin Asistent de Cumpărături 1688"
},
"extensionDescription": {
"message": "Plugin 1688 pentru căutare produse prin captură de ecran, analize vânzări și prețuri, descărcări materiale și notificări旺旺. Îmbunătățește eficiența cumpărăturilor."
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "Расширение помощника для закупок 1688",
"description": "Название расширения"
},
"extensionDescription": {
"message": "Расширение 1688, поддерживает поиск по фотографии, проверку продаж, загрузку материалов и уведомления. Надеемся стать вашим партнером.",
"description": "Описание расширения"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Plugin Pomocníka pre nákup na 1688"
},
"extensionDescription": {
"message": "Plugin 1688 pre vyhľadávanie produktov so snímkou obrazovky, analýzu predaja a cien, sťahovanie materiálov a旺旺 oznámenia. Zlepšuje efektívnosť nákupu."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Vstavek za pomoč pri nakupovanju na 1688"
},
"extensionDescription": {
"message": "Plugin 1688 za iskanje izdelkov s posnetkom zaslona, analizo prodaje in cen, prenos materialov in旺旺 obvestila. Izboljša učinkovitost nakupovanja."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Прикључак помоћника за куповину са 1688"
},
"extensionDescription": {
"message": "Прикључак 1688 за претрагу производа помоћу снимка екрана, анализу продаје и цена, преузимање материјала и旺旺 обавештења. Побољшава ефикасност куповине."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Inköpsassistent-tillägg"
},
"extensionDescription": {
"message": "1688 plugin för produktsökning med skärmdump, försäljningsanalys och pristrender, materialnedladdning och旺旺-meddelanden. Förbättrar inköpseffektivitet."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Kiungo cha Msaidizi wa Kununua kwa 1688"
},
"extensionDescription": {
"message": "Plugin ya 1688 kwa kutafuta bidhaa kwa picha ya skrini, uchambuzi wa mauzo na bei, upakuaji wa vifaa na arifa za旺旺. Inaboresha ufanisi wa ununuzi."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 வாங்குவதற்கான உதவியாளர் செருகுநிரல்"
},
"extensionDescription": {
"message": "1688 செருகுநிரல் - திரை பிடிப்பு மூலம் தேடல், விற்பனை போக்குகள், தரவு பதிவிறக்கம், 旺旺 அறிவிப்புகள். வாங்கும் திறனை மேம்படுத்துகிறது."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 కొనుగోలు సహాయకుడు ప్లగిన్"
},
"extensionDescription": {
"message": "1688 ప్లగిన్ - స్క్రీన్‌షాట్‌తో ఉత్పత్తి శోధన, అమ్మకాల విశ్లేషణ, మెటీరియల్ డౌన్‌లోడ్ మరియు旺旺 నోటిఫికేషన్లు. కొనుగోలు సామర్థ్యాన్ని మెరుగుపరుస్తుంది."
}
}
@@ -0,0 +1,12 @@
{
"extensionName": {
"message": "เวอร์ชันปลั๊กอินผู้ช่วยซื้อ 1688",
"description": "ชื่อปลั๊กอิน"
},
"extensionDescription": {
"message": "ปลั๊กอิน 1688 รองรับการจับภาพหน้าจอ, ค้นหาผลิตภัณฑ์, แนวโน้มการขาย, ดาวน์โหลดวัสดุ และแจ้งเตือน Wangwang.",
"description": "คำอธิบายปลั๊กอิน"
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "1688 Satın Alma Asistanı Eklentisi"
},
"extensionDescription": {
"message": "1688 eklentisi - ekran görüntüsüyle ürün arama, satış ve fiyat analizi, materyal indirme ve旺旺 bildirimleri. Satın alma verimliliğinizi artırır."
}
}
@@ -0,0 +1,8 @@
{
"extensionName": {
"message": "Плагін помічника з закупівлі 1688"
},
"extensionDescription": {
"message": "Плагін 1688 для пошуку товарів знімком екрана, аналізу продажів і цін, завантаження матеріалів і旺旺 сповіщень. Покращує ефективність закупівель."
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "Phiên bản Plugin Trợ lý Mua hàng 1688",
"description": "Tên Plugin"
},
"extensionDescription": {
"message": "Plugin chính thức của 1688, hỗ trợ chụp màn hình, tìm sản phẩm tương tự, xu hướng bán hàng, tải tài liệu và thông báo Wangwang.",
"description": "Mô tả Plugin"
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "1688官方采购助手",
"description": "插件名称"
},
"extensionDescription": {
"message": "1688采购助手插件是阿里巴巴旗下官方电商采购工具,支持一键截图找同款,上下游图搜比价;支持商品素材下载,提供商品销量和价格走势、旺旺消息/订单消息/供应商新品等通知信息、各类商机榜单和趋势热点,还有AI辅助找挑、图片素材优化,帮助您的采购流程更加便捷高效透明。",
"description": "插件说明"
}
}
@@ -0,0 +1,10 @@
{
"extensionName": {
"message": "1688採購助手插件版",
"description": "插件名稱"
},
"extensionDescription": {
"message": "1688採購助手插件,支持一鍵截圖找同款,銷量和價格走勢查詢,商品素材下載和旺旺通知等功能,希望成為您的貼心生意夥伴,幫助您提升採購效率。",
"description": "插件說明"
}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><path d="M15 42v-5.01q0-5 8.7-5h4.35q4.36 0 4.36-10V17q0-5 8.68-.05l35.22 20.1q8.69 4.95 0 9.9l-35.22 20.1q-8.68 4.95-8.68-5.04v-5q0-5-8.71-5h-4.35q-4.35 0-4.35-5Z" stroke="#000" stroke-width="6" stroke-miterlimit="10" style="stroke:light-dark(#000,#fff)"/></svg>

After

Width:  |  Height:  |  Size: 337 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g style="filter:drop-shadow(3px 4px 4px light-dark(#0006,#ededed66))"><path d="M15 42v-5.01q0-5 8.7-5h4.35q4.36 0 4.36-10V17q0-5 8.68-.05l35.22 20.1q8.69 4.95 0 9.9l-35.22 20.1q-8.68 4.95-8.68-5.04v-5q0-5-8.71-5h-4.35q-4.35 0-4.35-5Z" fill="#fff" style="fill:#fff" xmlns="http://www.w3.org/2000/svg"/></g></svg>

After

Width:  |  Height:  |  Size: 374 B

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"icons":{"16":"icon16.plasmo.bdf249cb.png","32":"icon32.plasmo.05bb7f90.png","48":"icon48.plasmo.a32f0d4b.png","64":"icon64.plasmo.0ee4cf32.png","128":"icon128.plasmo.be4ef7c1.png"},"manifest_version":3,"action":{"default_icon":{"16":"icon16.plasmo.bdf249cb.png","32":"icon32.plasmo.05bb7f90.png","48":"icon48.plasmo.a32f0d4b.png","64":"icon64.plasmo.0ee4cf32.png","128":"icon128.plasmo.be4ef7c1.png"},"default_popup":"popup.html"},"version":"1.1.8","name":"__MSG_extensionName__","description":"__MSG_extensionDescription__","background":{"service_worker":"static/background/index.js"},"options_ui":{"page":"options.html","open_in_tab":true},"side_panel":{"default_path":"sidepanel.html"},"permissions":["storage","sidePanel","declarativeNetRequest","declarativeNetRequestFeedback","alarms","webNavigation","contextMenus","scripting","cookies","webRequest","idle"],"content_scripts":[{"matches":["*://s.1688.com/selloffer/offer_search.htm*"],"js":["aiFindInMainSearch.d85bc82a.js"],"run_at":"document_end","css":[]},{"matches":["<all_urls>"],"js":["allWebsite.e084e880.js"],"run_at":"document_end","exclude_matches":["*://*.alibaba-inc.com/*","*://*.dingtalk.com/*"],"css":[]},{"matches":["https://seller.shopee.cn/*","https://seller.ozon.ru/app/dashboard/main*","https://csp.aliexpress.com/m_apps/aechoice-info-manage/sub-infoMange-aeChoice*","https://seller.tiktokshopglobalselling.com/homepage*","https://seller.kuajingmaihuo.com/*"],"js":["bindShop.bf8ce889.js"],"run_at":"document_end","css":[]},{"matches":["<all_urls>"],"js":["content-script.49c7f7ee.js"],"run_at":"document_end","css":[]},{"matches":["*://s.1688.com/youyuan/index.htm*","*://s.1688.com/selloffer/similar_search.htm*"],"js":["content-scripts-of-pick.7776a3b9.js"],"run_at":"document_end","css":[]},{"matches":["<all_urls>"],"js":["content.0f069321.js"],"run_at":"document_idle","css":[]},{"matches":["https://detail.1688.com/*"],"js":["detailPanel.ba624b85.js"],"run_at":"document_start","css":[]},{"matches":["<all_urls>"],"js":["findSameGoodsBtn.3ed716dc.js"],"css":["findSameGoodsBtn.6dd45fec.css"],"run_at":"document_end"},{"matches":["<all_urls>"],"js":["getWWUnRead.21bf76f1.js"],"run_at":"document_end","css":[]},{"matches":["<all_urls>"],"js":["installationChecker.1c3dad9b.js"],"run_at":"document_start","all_frames":true,"css":[]},{"matches":["https://work.1688.com/home/buyer.htm*","https://trade.1688.com/order/*","https://*.1688.com/app/ctf-page/trade-order-list/buyer-order-list.html*"],"js":["orderLogistics.f491b9f7.js"],"run_at":"document_end","all_frames":true,"css":[]},{"matches":["<all_urls>"],"js":["pagePilot.f212008d.js"],"run_at":"document_end","exclude_matches":["*://*.alibaba-inc.com/*","*://*.dingtalk.com/*"],"css":[]},{"matches":["<all_urls>"],"js":["wordsQuickCopy.f8d2e6a5.js"],"run_at":"document_end","css":[]},{"matches":["<all_urls>"],"js":["wordsSelection.08ebf15a.js"],"run_at":"document_end","all_frames":true,"exclude_matches":["*://*.jd.com/*"],"css":[]},{"matches":["<all_urls>"],"js":["FloatingAssistant.d52f9211.js"],"css":["font.02aa5140.css"],"run_at":"document_end"},{"matches":["<all_urls>"],"js":["GenericUrlDrawer.5d7de210.js"],"run_at":"document_end","css":[]},{"matches":["https://detail.1688.com/*"],"js":["detailPanelPopUp.b5961dc1.js"],"css":["font.02aa5140.css"],"run_at":"document_end"}],"default_locale":"zh_CN","key":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmMZncWwmPzgYitvGds5p4iNldY7kM+o5vaoQfoWnrdjwS5Ez59LVhNFx2v0xr1Pxr1CdQ0/xnBZHwLSChe7qnoVARTz4t8sQc1NK8Yir9HaH9fpagHT5+rJLeObGcWkyMMIf/GyYfv0H0mSa5cVat6nOqC85+wTruGtv+dI3S1X9zYUugUB4wmZkta7Z9GP5B9O3hCcwGrxU70cgn6LRwKAkJ5sj2oR2lP2QNsupzRjaN9zphNwjExjsQ2TdftS+gc+4MnuhPw9Ep9QAz9BvWKPB1nCWmqtiAQpdjiGjCHM+X8SO93ycdLYdPcP4b7zluiEPOpItUMNThOIgesvT6wIDAQAB","host_permissions":["https://*/*","<all_urls>"],"externally_connectable":{"matches":["https://*.1688.com/*"]},"commands":{"show_entry":{"suggested_key":{"default":"Ctrl+Shift+1","mac":"Command+Shift+1"},"description":"显示侧边按钮"},"screenshot":{"suggested_key":{"default":"Ctrl+Shift+2","mac":"Command+Shift+2"},"description":"一键截图找同款"}},"optional_permissions":["downloads"],"content_security_policy":{"extension_pages":"script-src 'self'; object-src 'self';"},"minimum_chrome_version":"92"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
<!DOCTYPE html><html><head><link rel="stylesheet" href="/options.b3323149.css"><title></title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body> <div id="__plasmo"></div> <script src="/options.1087bfb1.js" defer></script> </body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
<!DOCTYPE html><html><head><link rel="stylesheet" href="/popup.4136b890.css"><title></title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body> <div id="__plasmo"></div> <script src="/popup.966487c4.js" defer></script> </body></html>
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body> <div id="__plasmo"></div> <script src="/sidepanel.96be0ed4.js" defer></script> </body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+427
View File
@@ -0,0 +1,427 @@
# Seller Helper 方案设计 V2
> 面向 Ozon 跨境电商的 AI 选品搬运工具
> 文档状态:方案探讨阶段(未开始编码)
> 最后更新:2026-08-06
> V1 见 [`方案设计.md`](./方案设计.md),本文档为架构调整后的新版,V1 保留作为历史记录。
---
## 1. 背景与目标
在 Ozon 做跨境电商,货源来自 1688 / 淘宝 / 拼多多。当前痛点:
- 单个门店的商品图片、信息往往不完善,需要**跨多个网站抓取**补齐。
- **图片最麻烦**:图里的中文需要转成俄文,需要白底化,甚至需要 AI 美化重做。
- 信息要**一条条手动填进 Ozon 商品编辑页**,耗时。
- 部分商品带**视频**,视频里的中文也可能需要替换成俄文(三期)。
### 目标工作流
```
① 浏览 1688/淘宝/拼多多商品页
↓ 插件侧边栏点「收集」(可指定文件夹)
② 素材汇入同一「文件夹」(文本 + 图片,可来自多个页面多次收集)
↓ 打开发布管理系统
③ 选择文件夹 → 进入该文件夹的发布页
↓ 左侧素材 → 加入对话框 → 写要求 → 调大模型
④ 右侧结构化表单被逐字段填充(俄文标题/描述/标签/规格)
↓ 图片:白底、图内翻译(按钮式);AI 生图(对话式)
⑤ 挑选图片与头图、填价格 → 一键提交 Ozon 草稿
```
Ozon Seller API 文档:https://docs.ozon.ru/api/seller/zh/
---
## 2. 与 V1 的核心差异
| 维度 | V1 | V2 |
|---|---|---|
| 插件职责 | 抓取当前页 → POST 后端 | **纯采集器**:识别页面 + 归入文件夹 + 去重 |
| 采集单位 | 单次抓取 = 一个商品 | **文件夹**:多页面多次收集汇入同一文件夹 |
| 发布页宿主 | 独立 Web 预览页 | **后端托管的发布管理系统**,按文件夹进入 |
| 编辑交互 | 点选区域 → 弹对话框局部重生成 | **左素材 / 右表单 / 底对话框** 三栏工作台 |
| AI 输出形态 | 生成文本填入预览 | **结构化字段补丁**,逐字段接受/丢弃 + 版本历史 |
| 图片操作 | 统一走处理管线 | **确定性操作按钮化**AI 生图走对话 |
| 模型选择 | 固定 Claude | **多模型可配置**(文本/视觉/图像三类槽位) |
| Ozon 类目 | 上传前匹配 | **进入发布页即先定类目**,用于渲染规格表单 |
未变化的部分:Python 图片微服务、对象存储、异步任务队列、Ozon 类目属性字典校验层。
---
## 3. 整体架构
```
浏览器
├─ Chrome 扩展(瘦客户端,只做采集)
│ ├─ Content Script 识别商品页 → 提取 {标题, 参数, 卖点, 图片URL[], 价格, 详情图文}
│ ├─ Side Panel 当前文件夹 ▾ / 本页抓到什么 / 「收集」按钮 / 最近素材
│ └─ Service Worker 唯一出网口:带 token 调后端;图片取不到时兜底抓字节
│ │ HTTPS
└─ 发布管理系统(普通 Web 应用,新标签页打开)
├─ 文件夹列表页 进度状态 / 素材数 / 创建时间
└─ 发布页 左素材 · 右表单 · 底对话框
后端服务(Next.js
├─ /api/folder 文件夹 CRUD、列表
├─ /api/material 写入素材(接受 URL 或二进制)+ 排队预下载图片
├─ /api/draft 草稿字段读写、字段版本历史、补丁接受/丢弃
├─ /api/chat 对话 → 调用可配置 LLM → 返回字段补丁
├─ /api/image/op 白底 / 图内翻译 / 生图(异步任务,返回 jobId)
├─ /api/job/:id 任务状态与进度(轮询或 SSE)
├─ /api/ozon/category 类目推荐 + 属性字典拉取与缓存
├─ /api/ozon/publish 属性字典校验 → 图片上传 → 建草稿
├─ 任务队列
└─ 凭证保管(各模型 key、Ozon Client-Id / Api-Key,加密存储)
├─ Python 图片微服务 OCR / inpaint / 抠图白底 / 图生图编排
├─ 对象存储 原图 + 各衍生版本
└─ 数据库 文件夹、素材、草稿、任务、Ozon 字典缓存
Ozon Seller API
```
**设计原则**:插件不持有任何密钥、不直接访问 Ozon 与模型服务;所有算力与凭证集中在后端。
---
## 4. 插件端设计
### 4.1 职责边界
插件**只做四件事**:识别页面、提取素材、归入文件夹、去重。不做生成、不做图片处理、不碰 Ozon。
预计代码量很小(几百行),好处是迭代频率低、无需频繁重新发布扩展;重逻辑全在后端和 Web 端,正常部署即可更新。
### 4.2 侧边栏(Side Panel
用 Chrome Side PanelChrome 114+)而非 popup,浏览时可常驻不消失。
```
┌ Seller Helper ──────────────┐
│ 当前文件夹:儿童保温杯 ▾ [+新建] │
│ ─────────────────────────── │
│ 本页识别到: │
│ 标题 儿童316不锈钢保温杯… │
│ 参数 12 项 │
│ 卖点 3 段 │
│ 图片 9 张 [预览] │
│ ─────────────────────────── │
│ [ 全部收集 ] [ 选择性收集 ] │
│ ─────────────────────────── │
│ 该文件夹已收集:3 个来源 · 12 图 │
│ [ 打开发布页 ↗ ] │
└─────────────────────────────┘
```
**「当前文件夹」是载荷概念**:多页收集必须先明确归属,否则容易串。支持在侧边栏直接新建。
### 4.3 与后端通信
- **必须走 Service Worker 转发**。MV3 下 Content Script 发出的跨域请求受页面 CORS 约束;Service Worker 只要在 `host_permissions` 声明了后端域名即可直连。
- **鉴权**:自用阶段用后端签发的长期 token,插件 options 页填一次存入 `chrome.storage.local`。后续如需多用户再换 OAuth。
### 4.4 图片获取的两条路
| 路径 | 场景 | 说明 |
|---|---|---|
| 优先:只传 URL | 1688 主图 CDN`cbu01.alicdn.com`)等公开可取 | 后端直接下载,插件负担最小 |
| 兜底:传二进制 | 需要 referer / 登录态才能取的图 | 插件在页面上下文 `fetch` 成 blob 后上传 |
因此 `/api/material` 接口需**同时接受 URL 列表与二进制上传**两种输入。
### 4.5 去重
多个来源页大概率有重复图。两级去重:
1. **URL 归一化去重**(去掉尺寸后缀等 query 参数)——插件侧即可完成。
2. **感知哈希去重**pHash/dHash)——后端下载后计算,相似度超阈值的标记为疑似重复,发布页折叠展示。
### 4.6 预热
素材写入后端后**立即排队预下载图片**,并可选预跑一遍白底/OCR。用户还在浏览其他页面时后台就处理完了,进发布页时图片即时可用,不用干等。
---
## 5. 数据模型
```
Folder 文件夹
id, name, status(collecting|editing|published), ozonCategoryId, createdAt
└─ Material 素材
id, folderId, type(text|image), sourceUrl, sourcePlatform, capturedAt
── type=text : textKind(title|params|selling_point|desc|price), content
── type=image : originalUrl, storageKey, width, height, phash, dupOfId
└─ Variant 图片衍生版本
id, materialId, kind(original|whitebg|translated|aigen|upscaled)
storageKey, params(JSON), jobId, createdAt
└─ Draft 发布草稿(每个文件夹一份)
id, folderId, fields(JSON), selectedVariantIds[], heroVariantId
price, currency, ozonCategoryId, updatedAt
└─ FieldVersion 字段版本历史
id, draftId, field, value(JSON), source(ai|manual), messageId, createdAt
└─ Message 对话记录
id, draftId, role(user|assistant), content
attachedMaterialIds[], attachedVariantIds[]
modelUsed, resultPatch(JSON), patchStatus(pending|accepted|discarded)
└─ Job 异步任务
id, folderId, type(download|whitebg|translate|aigen|ozon_upload)
status(queued|running|done|failed), progress, input(JSON), output(JSON), error
```
要点:
- **一张图 = 一个 Material + 多个 Variant**。右侧挑图时是从所有 Variant 里挑,原图和白底图、翻译图、AI 图平级可选。
- **FieldVersion 独立成表**,支撑逐字段回退。
- **Message 记录 resultPatch 与其接受状态**,可追溯每个字段值是哪一轮对话产生的。
---
## 6. 发布页交互设计
### 6.1 布局
```
┌──────────────────────────────────────────────────────────────────────┐
│ 文件夹:儿童保温杯 · 3个来源 · 12张图 Ozon类目:保温杯 ▾ [发布] │
├────────────────────────────┬─────────────────────────────────────────┤
│ 左:收集的素材 │ 右:生成结果(= Ozon 字段结构化表单) │
│ ┌ 文本 ─────────────────┐ │ 标题(ru) v3 ⟲历史 │
│ │ ☑ 标题 · 1688 │ │ ────────────────────────────────── │
│ │ ☐ 参数表 · 1688 │ │ 简介/描述(ru) 待生成 │
│ │ ☐ 卖点 · 淘宝 │ │ ────────────────────────────────── │
│ │ ☐ 详情文案 · 拼多多 │ │ 关键词标签 v1 │
│ └───────────────────────┘ │ ────────────────────────────────── │
│ ┌ 图片 ─────────────────┐ │ 规格属性(按类目字典渲染) │
│ │ [□][□][□][□] │ │ 颜色▾ 材质▾ 容量▾ 尺寸 重量 … │
│ │ [□][□][□] … │ │ ────────────────────────────────── │
│ │ 选中 → [白底][翻译] │ │ 图片 [头图][2][3][4] 可拖拽排序 │
│ │ [加入对话] │ │ ────────────────────────────────── │
│ └───────────────────────┘ │ 价格 [____] ₽ │
├────────────────────────────┴─────────────────────────────────────────┤
@标题·1688 @参数表 @img_03 模型: Claude Sonnet 4.5 ▾ │
│ 整理成符合 Ozon SEO 的俄文标题和描述… [发送] │
└──────────────────────────────────────────────────────────────────────┘
```
左侧按「文本在上、图片在下」排列,均可多选并「加入对话」,在对话框上方以 chip 形式展示引用(类似 Cursor 的 `@` 上下文引用)。
### 6.2 右侧是结构化表单,不是聊天输出区
**这决定了接口契约**:LLM 不返回自由文本,而返回**字段补丁**。
```json
{
"patches": [
{ "field": "title_ru", "value": "Детский термос из стали 316...", "reason": "含核心关键词,58字符符合Ozon标题建议长度" },
{ "field": "tags", "value": ["термос детский", "поилка", "316 сталь"] },
{ "field": "attributes.color", "value": "Синий", "dictValueId": 61234 },
{ "field": "attributes.material", "value": "Сталь", "dictValueId": 58901 },
{ "field": "attributes.weight_g", "value": 320 }
],
"notes": "参数表里未给出杯口直径,规格中该必填项仍需补充"
}
```
右侧对涉及字段展示**新旧对比 + 逐字段「接受 / 丢弃」**。
> **为什么必须这样**:如果 AI 每次返回一整份内容整体覆盖右侧,用户手改过的标题会在下一轮对话被抹掉。补丁 + 逐字段接受是保护手工编辑的必要设计。
配套 **字段级版本历史**:每个字段保留若干版本(含 `source=ai|manual`),随时回退。
### 6.3 Ozon 类目先行
**进入发布页的第一步是确认类目**,因为右侧「规格属性」区的字段构成完全由类目字典决定——哪些必填、哪些是枚举、枚举有哪些合法值。
流程:
1. 后端根据文件夹内已收集的标题/参数,让 LLM 推荐 3–5 个候选 Ozon 类目。
2. 用户确认一个(可手动搜索改选)。
3. 拉取该类目的属性字典(`/v2/category/attribute`,结果缓存)。
4. 右侧按字典渲染表单:枚举项渲染为下拉、必填项标红。
5. 之后 LLM 生成规格时,**候选值被约束在字典内**(见 §7.3),而不是自由生成完再去匹配。
### 6.4 图片:两类操作分开
| 类型 | 操作 | 交互方式 | 原因 |
|---|---|---|---|
| 确定性管线 | 抠图白底、图内中文→俄文、放大、裁剪 | **选中图片 → 点按钮 → 出新 Variant** | 参数化即可,无需自然语言 |
| 开放式生成 | AI 生图 / 改图("换成户外草地背景") | **加入对话框 → 写要求 → 发送** | 需求无法枚举,必须自然语言 |
两类操作产出统一落为 Variant,右侧挑图时平级可选。处理中的 Variant 显示占位与进度(来自 Job)。
### 6.5 对话框
- 上方 chip 区展示已引用的文本素材与图片素材,可逐个移除。
- 右侧下拉可**临时切换本次调用的模型**。
- 发送后流式返回,先出 `notes` 说明,再出 patches 落到右侧待接受状态。
- 图片素材送入视觉模型前**先降采样**,控制 token 成本。
---
## 7. 各模块技术方案
### 7.1 采集(数据入口)
沿用 V1 决策:**浏览器插件**,借用户真人登录态与真实环境,最不易被封。MVP 只支持 1688。
官方 API(1688 开放平台等)对个人几乎不开放;Playwright 无头浏览器最易触发风控。插件方案同时天然契合"多网站补充信息"场景。
### 7.2 文案生成(俄文标题/描述/标签)
引用的中文素材 → LLM → 俄文字段补丁,并按 Ozon 习惯做本地化 SEO。
- 用 **structured output / tool calling** 约束返回为补丁 JSON schema,不用自由文本再解析。
- 标题长度、关键词密度等 Ozon 规则写进 system prompt 与校验层双重保障。
### 7.3 规格属性映射(最容易翻车的一环)
难点:LLM 生成的颜色/材质/容量等值必须落到 Ozon 字典的合法枚举 id 上。
三步兜底:
1. **召回**:属性字典可能有上千个枚举值,先按关键词/向量召回 Top-N 候选塞进 prompt。
2. **约束选择**:让 LLM 从候选中选 `dictValueId`,而非自由生成字符串。
3. **人工兜底**:匹配不到或置信度低时,右侧该字段标记为"需人工选择",提供搜索下拉。
发布前做一次**必填项与字典合法性全量校验**,不通过则阻止提交并高亮问题字段。
### 7.4 图片处理
| 能力 | 方案 | 难度 |
|---|---|---|
| 抠图白底 | 抠图模型(如 RMBG / SAM 系)+ 合成白底 | 🟢 低 |
| 图内中文→俄文 · 路线A | OCR 定位(PaddleOCR)→ inpaint 抹除 → 按原版式重排俄文 | 🟡 中,版式还原需调试 |
| 图内中文→俄文 · 路线B | 多模态图像编辑模型直改 | 🟡 中,自然但版式可能偏移 |
| AI 生图 / 改图 | 图生图,对话驱动 | 🟡 中,需控成本 |
沿用 V1 决策:**A/B 两条路线都接**,各产出一个 Variant,发布页对比挑选。
### 7.5 Ozon 上传
走 Seller API 商品导入流程(`/v2/product/import`、图片上传、类目属性)。上传为草稿,用户再去 Ozon 后台正式发布。
顺序:图片先上传拿到 Ozon 侧 URL → 组装商品 JSON(含校验通过的属性)→ import → 轮询 import 任务状态 → 回写结果到 Draft。
### 7.6 视频(三期)
- 硬字幕:逐帧 OCR + 抹除 + 重排,效果不稳定。
- 配音:STT → 翻译 → TTS 重配,相对可控。
- 一期不做。
---
## 8. 多模型配置
模型不是一类,**至少三个槽位**,各自独立配置 provider / model / key
| 槽位 | 用途 | 候选 |
|---|---|---|
| 文本 LLM | 生成俄文文案、规格映射、类目推荐 | Claude / GPT / DeepSeek / Qwen 等 |
| 视觉 LLM | 读图理解、从图里补参数、辅助 OCR 校对 | Claude / GPT-4o / Qwen-VL 等 |
| 图像生成/编辑 | 生图、改图、白底、图内改字(路线B) | 按需可插拔 |
要求:
- 全局默认 + 发布页对话框内**临时切换**。
- 密钥加密存储在后端,插件与前端均不接触。
- 抽象一层统一调用接口,避免绑死单一 provider。技术上倾向 **Vercel AI SDK** 之类的多 provider 统一层。
> **关于 Pi SDKV1 §6 的待决策)**:V2 下编辑循环的输出被收敛为"结构化字段补丁",本质是 structured output + 工具调用,不是开放式 agent 任务;加上多模型可配置的需求,多 provider 统一层比 agent 框架更贴合。**结论:一期不引入 Pi**,用统一 SDK 自行实现对话循环;未来若确实需要 session 树 fork / 多方案分支,再评估引入。
---
## 9. 技术栈
```
Chrome 扩展 WXT(或 Plasmo+ React + TailwindCSSManifest V3 + Side Panel
后端 / Web Next.js(前后端一体,App Router
数据库 PostgreSQL + Prisma
对象存储 S3 兼容(本地开发用 MinIO)
任务队列 MVP 用数据库任务表 + worker 轮询;并发上来再换 BullMQ + Redis
图片微服务 PythonFastAPI):OCR / inpaint / 抠图 / 图生图编排
模型接入 统一多 provider SDK
进度推送 MVP 轮询 /api/job/:id;发布页体验优化时换 SSE
环境 Node 22 + Python 3.14(本机已就绪)
```
**队列选型说明**:一期刻意不上 Redis,用数据库任务表 + 单 worker 轮询即可满足单人使用的并发量,少一个部署组件。
---
## 10. 分阶段路线
### 一期 MVP
**主链路**:1688 多页收集到同一文件夹 → 发布页对话生成俄文文案 → 白底处理 → 挑图填价 → 推 Ozon 草稿。
落地顺序(每步可独立验证):
1. **脚手架**Next.js + Prisma + 数据模型建表 + MinIO 本地对象存储。
2. **插件采集**:WXT 脚手架 + 1688 页面识别 + 文件夹选择 + 收集到后端,打通原始数据。*(无需任何密钥即可验证)*
3. **文件夹列表页 + 发布页骨架**:左素材 / 右表单 / 底对话框三栏布局,素材可引用。
4. **对话生成文案**:对话 → LLM → 字段补丁 → 右侧逐字段接受 + 版本历史。
5. **Ozon 类目层**:类目推荐 → 拉属性字典 → 右侧规格表单按字典渲染 → 字典约束的规格映射。
6. **Ozon 提交**:图片上传 + 商品 import + 状态回写。**先把纯文案(原图直搬)商品推成功。**
7. **图片白底**:抠图管线 + Variant 机制 + 异步任务与进度。
### 二期
图内中文翻译双路线(A/B 对比)、AI 生图改图、多平台采集(淘宝/拼多多)、感知哈希去重、SSE 进度、类目属性智能映射优化。
### 三期
视频处理。
---
## 11. 关键风险与坑
| 风险 | 级别 | 应对 |
|---|---|---|
| 1688/淘宝/拼多多反爬 | 🔴 高 | 插件借真人登录态,已是最稳路线;仍需容忍页面改版导致选择器失效,做好降级提示 |
| Ozon 类目属性字典匹配 | 🔴 高 | 召回 + 约束选择 + 人工兜底三层;提交前全量校验 |
| 右侧手工编辑被 AI 覆盖 | 🟡 中 | 字段补丁 + 逐字段接受 + 版本历史(§6.2) |
| 图片 Variant 存储膨胀 | 🟡 中 | 定期清理未被选中的 Variant;原图按需保留 |
| 视觉模型调用成本 | 🟡 中 | 图片送模型前降采样;对话上下文限制引用图片数量 |
| 页面 DOM 提取不可信输入 | 🟡 中 | 采集内容视为不可信,进 LLM 前做清洗;后端不给模型任何文件/命令执行能力 |
| 图内翻译版式还原 | 🟡 中 | A/B 双路线并存,人工挑选 |
---
## 12. 已确认决策 / 待办
### 已确认
- 采集方式:**浏览器插件**,只做采集,先支持 1688。
- 采集单位:**文件夹**,多页面多次收集汇入同一文件夹。
- 发布页宿主:**后端托管的发布管理系统**(Web 应用),不打包进插件。
- 发布页布局:**左素材(文本上 / 图片下)· 右结构化表单 · 底对话框**。
- 右侧形态:**Ozon 字段结构化表单**,AI 返回字段补丁,逐字段接受,带版本历史。
- 图片操作:**确定性操作按钮化,AI 生图走对话**;结果统一为 Variant。
- 图内文字翻译:**A/B 两条路线都接**,发布页挑选。
- 模型:**多模型可配置**,文本 / 视觉 / 图像三类槽位,密钥仅存后端。
- 编辑循环:**不引入 Pi SDK**,用多 provider 统一 SDK 自行实现。
- Ozon 交互:**插件不直接访问 Ozon**,全部经后端。
### 待用户提供(不阻塞前 4 步)
- **Ozon Seller API 的 Client-Id / Api-Key**(沙箱或正式)——用于第 56 步。
- **模型 API Key**(文本 / 视觉 / 图像各一)——用于第 4 步及图片处理。
- **富文本描述模板**(哪怕草稿版)——用于描述字段的结构设计。
- **图像编辑模型偏好**(无偏好则做成可插拔,白底先用开源抠图模型跑通)。
### 待决策
- 文件夹与 SKU 的关系:一个文件夹固定产出一个商品,还是允许拆成多个变体商品(多颜色/多规格)?
- 素材是否需要跨文件夹复用(如通用尾图、品牌图)?
- 是否需要发布历史与"再次编辑已发布商品"的能力。
+213
View File
@@ -0,0 +1,213 @@
# Seller Helper 方案设计
> 面向 Ozon 跨境电商的 AI 选品搬运工具
> 文档状态:方案探讨阶段(未开始编码)
> 最后更新:2026-08-05
---
## 1. 背景与目标
在 Ozon 做跨境电商,货源来自 1688 / 淘宝 / 拼多多。当前痛点:
- 单个门店的商品图片、信息往往不完善,需要**跨多个网站抓取**补齐。
- **图片最麻烦**:图里的中文需要转成俄文,甚至需要 AI 美化重做。
- 信息要**一条条手动填进 Ozon 商品编辑页**,耗时。
- 部分商品带**视频**,视频里的中文也可能需要替换成俄文。
### 目标效果
粘贴一个或多个卖家网站 URL → 程序自动:
1. 抓取商品信息、图片、包装信息等资源;
2. 生成**俄文标题、标签、简介、富文本**(富文本用固定模板,图文内容由程序生成);
3. 抓取合适的图片并**翻译中文 / AI 美化**;
4. 提供**预览页面**,可点选某区域,通过**与 AI 对话**修改选中内容(文本或图片);
5. 满意后提交,调用 **Ozon Seller API** 上传到后台(用户再去 Ozon 后台正式发布)。
Ozon Seller API 文档:https://docs.ozon.ru/api/seller/zh/
---
## 2. 可行性总览
**结论:能实现,大部分模块是成熟技术。** 全流程真正的难点只有两个:
- 🔴 **从 1688/淘宝/拼多多稳定抓取**(反爬)
- 🔴 **视频里的中文替换**(工程量大、效果不稳定)
其余模块可靠可控。
| 模块 | 难度 | 说明 |
|---|---|---|
| ① 抓取商品信息/图片 | 🔴 高(反爬) | 三个平台都有强反爬,最脆弱的一环 |
| ② 生成俄文标题/标签/简介 | 🟢 低 | LLM 直接做,质量高,可顺带做 Ozon SEO |
| ③ 图片中文→俄文 | 🟡 中 | OCR 定位 + 抹字 + 重排,或图像编辑模型直改 |
| ④ 图片 AI 美化 | 🟡 中 | 图生图,效果好但要控成本 |
| ⑤ 富文本内容生成(模板+图文) | 🟢 低 | 模板注入 + LLM 填内容 |
| ⑥ 预览 + 点选对话式编辑 | 🟡 中 | 标准 Web 应用 + AI 编辑循环,工程量在交互 |
| ⑦ 上传 Ozon | 🟢 低-中 | API 清晰,难在**类目属性字典**要匹配对 |
| ⑧ 视频中文替换 | 🔴 高 | 建议放到二期/三期,单独立项评估 |
---
## 3. 各模块技术方案
### ① 抓取(数据入口)
官方 API(1688 开放平台、淘宝开放平台、多多进宝)对个人几乎不开放。三条可选路线,从稳到脆:
1. **浏览器插件方案(✅ 已选定)**:Chrome 扩展,用户正常登录浏览时点「抓取」,插件读取当前页面已渲染的 DOM/接口数据发给后端。**借用用户真人登录态与真实环境,最不易被封**,且多网站补充信息的场景天然契合——在哪个页面就抓哪个。
2. 第三方"商品详情"数据 API:按次收费,省心但有费用、字段可能不全、依赖第三方稳定性。
3. Playwright 后端无头浏览器:灵活但最易触发风控,维护成本高。
> **决策:MVP 采用浏览器插件抓取,先只支持 1688。**
### ② 文案生成(俄文标题/标签/简介)
用 Claude 把抓取的中文信息 → 生成俄文标题/关键词标签/卖点简介,并按 Ozon 习惯做本地化 SEO。质量最有保证,是核心价值区。
### ③ 图片文字翻译(中文→俄文)
两条路线,**已决定都接,预览页让用户对比挑选**:
- **路线 A · 传统管线(版式高度还原)**OCR 定位中文(如 PaddleOCR)→ inpaint 抹除 → 按原版式重排俄文。可控、可批量,适合规格参数图,排版还原需调试。
- **路线 B · 图像编辑模型直改(效果自然美观)**:用多模态图像编辑模型直接"把图里中文换成俄文/美化"。上手快、出图自然,但排版可能与原图有差异,需控成本与一致性。
### ④ 图片 AI 美化
图生图,效果好但要控成本。与路线 B 共用图像编辑模型能力。
### ⑤ 富文本内容生成
用户提供固定模板(含占位符),程序把生成好的图文填进模板。
### ⑥ 预览 + 点选对话式编辑
Web 页面渲染最终商品卡;每个可编辑区域(某段文字、某张图)可点选 → 弹出对话框 → 用户下指令 → 局部重生成。标准的"AI 编辑循环",工程量在交互设计。(Pi SDK 的适用性见第 6 节。)
### ⑦ Ozon 上传
Ozon Seller API 有完整的商品导入流程(`/v2/product/import`、图片上传、类目属性)。**核心坑是类目属性字典**:每个类目有强制属性,值必须来自 Ozon 字典(`/v2/category/attribute` 拉取),不能随便填。需做"属性映射 + 字典校验"层。上传后用户在后台正式发布。
### ⑧ 视频中文替换(二期/三期)
- 硬字幕(烧进画面的中文):逐帧 OCR + 抹除 + 重排,效果不稳定。
- 配音:STT → 翻译 → TTS 重配,相对可控。
- **建议一期先不做,或只做"音频重配"子集,单独立项评估。**
---
## 4. 推荐架构 / 技术栈
```
┌─ Chrome 扩展(抓取,借用户登录态)
│ │ { 标题, 参数, 图片URL[], 价格, 详情图文 }
Next.js 后端(前后端一体)
├─ /extract 规整原始数据
├─ /generate Claude → 俄文标题/标签/简介 + 富文本(模板占位)
├─ /image 队列任务:路线A(OCR+抹字+重排) / 路线B(图像编辑模型) 两版都出
├─ 图片服务 Python 微服务:OCR/inpaint + 图像编辑模型
├─ 任务队列 图片/视频异步处理(BullMQ)
└─ /ozon 类目属性字典校验 + 上传草稿
对象存储(图片/视频)
前端预览页(React):点选区域 + 对话式编辑;图片 A/B 两版切换
```
- **主栈 Next.js**(前后端一体)。
- **图像/OCR 用 Python 微服务**(生态最好)。
- 长任务用队列(BullMQ)。
- 环境:Node 22 + Python 3.14(本机均已就绪)。
---
## 5. 分阶段路线
### 一期 MVP(已选:文案为主链路)
**主链路目标**:1688 商品页点插件「抓取」→ 后端生成俄文文案+富文本 → 预览页可对话改文案 → 一键推 Ozon 草稿。图片一期先"原样搬运 + 可选翻译/美化",两条路线并存供挑选。
落地顺序(每步可独立验证):
1. **脚手架**Next.js 项目 + 目录结构 + 环境变量(Claude key、Ozon key、图片模型 key)。
2. **Chrome 扩展**:先只做 1688,抓取当前页 → POST 到本地后端,打通原始 JSON。
3. **文案生成**:Claude 中文数据 → 俄文标题/标签/简介 + 富文本(占位符注入)。
4. **预览页 + 对话式改文案**:渲染商品卡,点选文字区域 → 对话局部重生成。
5. **Ozon 适配层**:拉类目属性字典 → 校验 → 上传草稿。**先把纯文案(无图)商品推成功。**
6. **图片双路线**:接 OCR 抹字重排(A)+ 图像编辑模型(B),预览页出两版供选。
> 步骤 1、2 无需任何密钥即可先跑起来看到效果。
### 二期
多平台抓取(淘宝/拼多多)、图片美化、点选对话式改图、类目属性智能映射。
### 三期
视频处理。
---
## 6. Pi SDK 适用性评估
**Pi**Earendil 出品,MIT 开源,`@earendil-works/pi-coding-agent`)是可嵌入的 **AI 编码 Agent 框架**TS/JS)。核心:Session + 事件流、自定义工具 `defineTool()`、内置工具 `read/bash/edit/write/grep/find/ls`、消息队列 `steer()`/`followUp()`、Session 树 fork/clone、子 agent、可切换模型(能接 Claude)。文档:https://pi.dev/docs/latest/sdk
### 判断:外科手术式使用——只用在一个地方
**✅ 强契合:预览页「对话式编辑」循环**
该交互本质是带工具的 agent 会话,Pi 能力几乎量身定做:
| 需求 | Pi 对应能力 |
|---|---|
| 点选区域后对话改内容 | `AgentSession` + 自定义工具 `editText`/`regenText`/`editImage`/`swapImageVariant` |
| 改到一半想换方向 | `steer()` 打断当前回合 |
| 改完这段再改那段 | `followUp()` 排队 |
| 回退 / 多方案对比 | **Session 树 fork/clone**(天然 undo + A/B 分支) |
| 前端实时看 AI 在改什么 | 事件流喂 UI |
| 长对话不爆上下文 | 内置 compaction |
自己用 Anthropic SDK 手撸需实现打断、排队、分支、压缩——Pi 白送。
**❌ 不建议:抓取→文案→图片→上传 主管线**
这是确定性 ETL,非开放式 agent 任务。用 agent 框架包会引入不必要的非确定性,**上传 Ozon 那步尤其不能让 agent 自由发挥**。用普通代码 + 直接 Claude API 更可控、好测。
> 原则:**流程固定的用管线代码;开放式、要来回对话的用 Pi。** 只有编辑循环属于后者。
### 两个坑
1. **默认内置工具含 `bash/edit/write`,服务端必须关掉。** 抓取来的网页内容是不可信输入(提示注入风险),若 agent 带 bash/写文件能力,可能被诱导在服务器执行命令。**用 Pi 时禁用全部内置工具,只暴露自定义业务工具,并做沙箱。**
2. **依赖成熟度**:Earendil 较新,把产品核心交互绑上去有第三方风险。好在能接 Claude,LLM 层不锁定;真不行可退回自己用 Anthropic SDK 撸编辑循环。
### 待定决策
编辑循环实现方式:
- **A) 用 Pi**:省事,白送打断/分支/压缩。
- **B) 用 Anthropic SDK 自撸**:少一个第三方依赖,需自己实现打断/分支。
**倾向建议**:一期先用 Anthropic SDK 把编辑循环跑通(简单版),Pi 作为二期需要 undo/多方案分支时的增强再引入,避免一上来被新框架卡住。**(未最终拍板)**
---
## 7. 已确认决策 / 待办
### 已确认
- 抓取方式:**浏览器插件**(先支持 1688)。
- 一期 MVP:**文案为主链路**。
- 图片文字翻译:**A/B 两条路线都接,预览页挑选**。
### 待用户提供(不阻塞脚手架)
- **Ozon Seller API 的 Client-Id / Api-Key**(沙箱或正式)——用于步骤 5。
- **富文本模板**(哪怕草稿版)——用于步骤 3 占位符设计。
- **图像编辑模型偏好**(无偏好则做成可插拔,A 路线先用开源 OCR 跑通)。
### 待决策
- 编辑循环:用 PiA)还是 Anthropic SDK 自撸(B)。