Auto-héberger un pont Jimeng et l'utiliser comme skill d'image dans Trae IDE

  1. Déploiement du pont local

Le projet jimeng-api fait office de couche intermédiaire. Commencez par récupérer les sources.

git clone https://github.com/iptag/jimeng-api.git
cd jimeng-api

Plutôt que le port 5100 par défaut, exposez le service sur le port 8080 et nommez le conteneur de manière explicite.

docker build -t jimeng-bridge .

docker run -d \
  --name jimeng-bridge \
  -p 8080:5100 \
  --restart unless-stopped \
  jimeng-bridge

Si vous préférez Docker Compose, un fichier compose.yml minimal ressemble à ceci.

services:
  jimeng-bridge:
    build: .
    container_name: jimeng-bridge
    ports:
      - "8080:5100"
    restart: unless-stopped

Récupérer le jeton d’authentification

Connectez-vous au site Jimeng, ouvrez les outils de développement du navigateur, puis copiez la valeur du cookie sessionid. Conservez-la dans une variable d’environnement plutôt qu’en dur dans le code.

export JIMENG_SESSION="<votre_sessionid>"
  1. Créer le skill pour Trae

Trae charge les skills depuis ~/.trae/skills (global) ou .trae/skills (projet). Créez un dossier jimeng-skill et ajoutez-y un script Python.

mkdir -p ~/.trae/skills/jimeng-skill

cat > ~/.trae/skills/jimeng-skill/main.py << 'EOF'
import os
import sys
import base64
import pathlib
import requests
from io import BytesIO
from PIL import Image

SERVICE_URL = os.getenv("JIMENG_URL", "http://localhost:8080")
SESSION_ID = os.getenv("JIMENG_SESSION")

def draw(description: str, width: int = 1920, height: int = 1080) -> pathlib.Path:
    if not SESSION_ID:
        raise RuntimeError("Définissez JIMENG_SESSION avec votre sessionid Jimeng.")

    body = {
        "prompt": description,
        "width": width,
        "height": height,
        "sessionid": SESSION_ID,
    }

    resp = requests.post(f"{SERVICE_URL}/generate", json=body, timeout=120)
    resp.raise_for_status()

    raw = base64.b64decode(resp.json()["image_base64"])

    folder = pathlib.Path("generated")
    folder.mkdir(exist_ok=True)
    output = folder / "result.png"

    with Image.open(BytesIO(raw)) as img:
        img.save(output, format="PNG")

    return output

if __name__ == "__main__":
    draw(" ".join(sys.argv[1:]))
EOF

Installez ensuite les dépendances nécessaries.

pip install requests Pillow
  1. Utilisation dans Trae

Dans la fenêtre de chat de Trae, indiquez votre sessionid et la description de l’image souhaitée. Trae invoquera le skill.

Mon sessionid est abc123. Génère une image 2K d'une plage au coucher du soleil, style cinéma.

Le script enregistre l’image générée sous generated/result.png dans le projet.

Étiquettes: Trae IDE Jimeng AI Docker Python API wrapper

Publié le 27 juin à 04h51