# cross_border_ai.py — 跨境AI电商全链路脚本 v1.0
# 依赖: pip install openai deepl requests replicate
# 环境变量: OPENAI_API_KEY, DEEPL_API_KEY, REPLICATE_API_TOKEN
import json, os, sys, argparse
from openai import OpenAI
import deepl
import requests
# ═══════ Config ═══════
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
translator = deepl.Translator(os.environ["DEEPL_API_KEY"])
# ═══════ Step 1: Generate Listing ═══════
def generate_listing(product: dict, lang="en") -> dict:
prompt = f"""你是Amazon电商listing专家。根据产品信息生成英文listing。
产品: {json.dumps(product, ensure_ascii=False)}
输出JSON: {{"title","bullets":[5条],"description","keywords":[10个]}}
标题50-200字符,bullets每条≤500字符。"""
resp = client.chat.completions.create(
model="gpt-4o", messages=[{"role":"user","content":prompt}],
response_format={"type":"json_object"})
return json.loads(resp.choices[0].message.content)
# ═══════ Step 2: Translate ═══════
LANG_MAP = {"US":"EN-US","DE":"DE","JP":"JA","FR":"FR","ES":"ES"}
def translate_listing(listing: dict, target_markets: list) -> dict:
result = {}
for market in target_markets:
dl_lang = LANG_MAP.get(market, "EN-US")
result[market] = {
"title": translator.translate_text(listing["title"], target_lang=dl_lang).text,
"bullets": [translator.translate_text(b, target_lang=dl_lang).text for b in listing["bullets"]],
"description": translator.translate_text(listing["description"], target_lang=dl_lang).text,
}
return result
# ═══════ Step 3: Generate Images ═══════
def generate_scene_image(product_image_url: str, market: str) -> str:
prompt = f"ecommerce product photo, lifestyle, {market} style, 4k"
output = replicate.run("stability-ai/sdxl", input={
"image": open(product_image_url,"rb"), "prompt": prompt})
return output[0] # 返回生成的图片URL
# ═══════ Main Pipeline ═══════
def run_pipeline(product_file: str, markets: list, upload=False):
product = json.load(open(product_file))
print(f"🔄 处理产品: {product['name']}")
listing_en = generate_listing(product)
print(f"✅ 英文listing生成完成")
listings = translate_listing(listing_en, markets)
for m, l in listings.items():
print(f"✅ {m} 翻译完成: {l['title'][:50]}...")
if upload:
# Step 5: 调用平台API上架(见独立模块)
from uploaders import amazon_upload
for m in markets:
asin = amazon_upload(listings[m], product, m)
print(f"📤 {m} 上架成功: ASIN={asin}")
return listings
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--product", required=True)
parser.add_argument("--markets", default="US")
parser.add_argument("--upload", action="store_true")
args = parser.parse_args()
run_pipeline(args.product, args.markets.split(","), args.upload)