Skip to content

zhangrr/image-route

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ImgRouter

ไธ‰ๅˆไธ€ๅ›พๅƒ็”Ÿๆˆ API ไธญ่ฝฌๆœๅŠก - ไธ€ไธชๆŽฅๅฃ๏ผŒๅคšๆธ ้“ๅ›พๅƒ็”Ÿๆˆ

Deno Docker License

ๅฟซ้€Ÿๅผ€ๅง‹

# 1. ๅคๅˆถ้…็ฝฎๆ–‡ไปถๆจกๆฟ
cp config.example.json config.json

# 2. ็ผ–่พ‘้…็ฝฎๆ–‡ไปถ๏ผŒๅกซๅ…ฅไฝ ็š„ API Keys
# ไฟฎๆ”น config.json ไธญ็š„ไปฅไธ‹ๅญ—ๆฎต๏ผš
# - server.url: ไฝ ็š„ๆœๅŠกๅ™จ่ฎฟ้—ฎๅœฐๅ€๏ผˆๅฆ‚ http://10.8.2.26:8080๏ผ‰
# - apiKeys.volcengine: ็ซๅฑฑๅผ•ๆ“Ž API Key
# - apiKeys.gitee: Gitee AI API Key
# - apiKeys.modelscope: ModelScope API Key

# 3. ๅฏๅŠจๆœๅŠก
deno task start

# 4. ่ฎฟ้—ฎ Web ็•Œ้ข
ๆต่งˆๅ™จๆ‰“ๅผ€้…็ฝฎๆ–‡ไปถไธญ็š„ server.url ๅœฐๅ€

็ปŸไธ€็ซฏๅฃ๏ผš

  • ๐ŸŒ 8080 - Web ็•Œ้ข + API ๆŽฅๅฃ๏ผˆ็ปŸไธ€็ซฏๅฃ๏ผ‰

่ฏฆ็ป†ๅฏๅŠจๆŒ‡ๅ—่ฏทๆŸฅ็œ‹ QUICKSTART.md

็‰นๆ€ง

  • ๆ™บ่ƒฝ่ทฏ็”ฑ - ๆ นๆฎๆจกๅž‹ๅ็งฐ่‡ชๅŠจ่ฏ†ๅˆซๅนถๅˆ†ๅ‘ๅˆฐๅฏนๅบ”ๆธ ้“
  • ไธ‰ๆธ ้“ๆ”ฏๆŒ - ็ซๅฑฑๅผ•ๆ“Žใ€Gitee (ๆจกๅŠ›ๆ–น่ˆŸ)ใ€ModelScope (้ญ”ๅก”)
  • JSON ้…็ฝฎ - ไฝฟ็”จ config.json ็ปŸไธ€็ฎก็†ๆ‰€ๆœ‰้…็ฝฎๅ’Œ API Keys
  • OpenAI ๅ…ผๅฎน - ๅฎŒๅ…จๅ…ผๅฎน /v1/chat/completions ๆŽฅๅฃๆ ผๅผ
  • ๆตๅผๅ“ๅบ” - ๆ”ฏๆŒ SSE ๆตๅผ่พ“ๅ‡บ
  • ๅ›พ็‰‡ๅ‚่€ƒ - ๆ”ฏๆŒไธŠไผ ๅ‚่€ƒๅ›พ็‰‡่ฟ›่กŒๅ›พ็”Ÿๅ›พ
  • Docker ้ƒจ็ฝฒ - ๅผ€็ฎฑๅณ็”จ็š„ๅฎนๅ™จๅŒ–้ƒจ็ฝฒๆ–นๆกˆ
  • ่ฏฆ็ป†ๆ—ฅๅฟ— - ๅฎŒๆ•ด็š„่ฏทๆฑ‚/ๅ“ๅบ”ๆ—ฅๅฟ—่ฎฐๅฝ•

ๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      ๅฎขๆˆท็ซฏ่ฏทๆฑ‚                             โ”‚
โ”‚              POST /v1/chat/completions                      โ”‚
โ”‚              Authorization: Bearer <ACCESS_TOKEN>           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   ๆจกๅž‹ๅ็งฐ่ทฏ็”ฑๅ™จ                            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ doubao-seedream  โ”‚ z-image-turbo    โ”‚ Tongyi-MAI/...  โ”‚  โ”‚
โ”‚  โ”‚ โ†’ VolcEngine     โ”‚ โ†’ Gitee/HF       โ”‚ โ†’ ModelScope    โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
           โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
           โ–ผ           โ–ผ           โ–ผ           โ–ผ
     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
     โ”‚VolcEngineโ”‚ โ”‚  Gitee   โ”‚ โ”‚ModelScopeโ”‚ โ”‚HuggingFacโ”‚
     โ”‚ (็ซๅฑฑ)   โ”‚ โ”‚(ๆจกๅŠ›ๆ–น่ˆŸ)โ”‚ โ”‚  (้ญ”ๅก”)  โ”‚ โ”‚ (ๆŠฑ่„ธ)   โ”‚
     โ”‚ API Key  โ”‚ โ”‚ API Key  โ”‚ โ”‚ API Key  โ”‚ โ”‚ API Key  โ”‚
     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅฟซ้€Ÿๅผ€ๅง‹

Docker Compose (ๆŽจ่)

git clone https://github.com/lianwusuoai/img-router.git
cd img-router

# ้…็ฝฎ็Žฏๅขƒๅ˜้‡
cat > .env <<EOF
ACCESS_TOKEN=your-secret-token-here
VOLCENGINE_API_KEY=your-volcengine-api-key
GITEE_API_KEY=your-gitee-api-key
MODELSCOPE_API_KEY=your-modelscope-api-key
EOF

docker-compose up -d

Docker ็›ดๆŽฅ่ฟ่กŒ

docker build -t img-router .
docker run -d --name img-router -p 8080:8080 img-router

ๆœฌๅœฐๅผ€ๅ‘

# ๅฎ‰่ฃ… Deno
# Windows: irm https://deno.land/install.ps1 | iex
# macOS/Linux: curl -fsSL https://deno.land/install.sh | sh

# ้…็ฝฎ็Žฏๅขƒๅ˜้‡
export ACCESS_TOKEN=your-secret-token-here
export VOLCENGINE_API_KEY=your-volcengine-api-key
export GITEE_API_KEY=your-gitee-api-key
export MODELSCOPE_API_KEY=your-modelscope-api-key

# ๅผ€ๅ‘ๆจกๅผ
deno task dev

# ็”Ÿไบงๆจกๅผ
deno task start

ไฝฟ็”จๆ–นๆณ•

ๆณจๆ„๏ผšๅฎขๆˆท็ซฏๆ— ้œ€ๆไพ›ๅ„ๆธ ้“็š„็œŸๅฎž API Keyใ€‚็ณป็ปŸไผšๆ นๆฎ model ๅ‚ๆ•ฐ่‡ชๅŠจ้€‰ๆ‹ฉๅฏนๅบ”ๆธ ้“ใ€‚

ๅŸบๆœฌ่ฏทๆฑ‚

curl -X POST http://localhost:10001/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedream-4-0-250828",
    "messages": [{"role": "user", "content": "ไธ€ๅชๅฏ็ˆฑ็š„็Œซๅ’ช"}],
    "size": "1024x1024"
  }'

ๅธฆๅ‚่€ƒๅ›พ็‰‡

curl -X POST http://localhost:10001/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedream-4-0-250828",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "่ฝฌๆขไธบๆฐดๅฝฉ็”ป้ฃŽๆ ผ"},
        {"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
      ]
    }]
  }'

ๆตๅผๅ“ๅบ”

curl -X POST http://localhost:10001/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedream-4-0-250828",
    "messages": [{"role": "user", "content": "็พŽไธฝ็š„้ฃŽๆ™ฏ"}],
    "stream": true
  }'

ๆ”ฏๆŒ็š„ๆจกๅž‹

ๆธ ้“ ๆจกๅž‹ๅ็งฐ ่ฏดๆ˜Ž
็ซๅฑฑๅผ•ๆ“Ž doubao-seedream-4-0-250828 ่ฑ†ๅŒ…็”Ÿๅ›พ 4.0๏ผˆ้ป˜่ฎค๏ผ‰
็ซๅฑฑๅผ•ๆ“Ž doubao-seedream-4-5-251128 ่ฑ†ๅŒ…็”Ÿๅ›พ 4.5
Gitee z-image-turbo Z-Image Turbo
ModelScope Tongyi-MAI/Z-Image-Turbo ้€šไน‰ไธ‡็›ธ

็ณป็ปŸๆ นๆฎ model ๅ‚ๆ•ฐ่‡ชๅŠจ่ทฏ็”ฑๅˆฐๅฏนๅบ”ๆธ ้“ใ€‚ๅฆ‚ๆžœไธๆŒ‡ๅฎš model ๆˆ–ๆŒ‡ๅฎšไบ†ๆœช็Ÿฅๆจกๅž‹๏ผŒ้ป˜่ฎคไฝฟ็”จGiteeๅผ•ๆ“Žใ€‚

Web ๆต‹่ฏ•็•Œ้ข

ImgRouter ๅ†…็ฝฎไบ†ไธ€ไธช็ฑป ChatGPT ้ฃŽๆ ผ็š„ Web ็•Œ้ข๏ผŒๅฏๅŠจๆœๅŠกๅŽๅฏ็›ดๆŽฅ่ฎฟ้—ฎใ€‚

่ฎฟ้—ฎ Web ็•Œ้ข

ๅฏๅŠจๆœๅŠกๅŽ๏ผŒWeb ็•Œ้ขไผš่‡ชๅŠจๅœจ 8080 ็ซฏๅฃๅฏๅŠจ๏ผš

# ๅฏๅŠจๆœๅŠก
deno task start

# ่ฎฟ้—ฎ Web ็•Œ้ข
ๆต่งˆๅ™จ่ฎฟ้—ฎ: http://localhost:8080

ไธคไธช็ซฏๅฃ่ฏดๆ˜Ž๏ผš

  • 8080 ็ซฏๅฃ - Web ็•Œ้ข+APIๆœๅŠก๏ผˆไพ›ๆต่งˆๅ™จ+็จ‹ๅบ่ฎฟ้—ฎ๏ผ‰

็•Œ้ขๅŠŸ่ƒฝ

  • ๐ŸŽจ ๆจกๅž‹้€‰ๆ‹ฉ - ้กถ้ƒจไธ‹ๆ‹‰ๆก†ๅˆ‡ๆขไธๅŒๆธ ้“็š„ๆจกๅž‹
  • ๐Ÿ’ฌ ๅฏน่ฏๅผไบคไบ’ - ็ฑปไผผ ChatGPT ็š„่Šๅคฉ็•Œ้ข
  • ๐Ÿ–ผ๏ธ ๅฎžๆ—ถ้ข„่งˆ - ็”Ÿๆˆ็š„ๅ›พ็‰‡็›ดๆŽฅๆ˜พ็คบๅœจๅฏน่ฏไธญ
  • โš™๏ธ ้…็ฝฎ็ฎก็† - ๅฏ่‡ชๅฎšไน‰ API ๅœฐๅ€ๅ’Œ่ฎฟ้—ฎไปค็‰Œ
  • ๐Ÿ“ฑ ๅ“ๅบ”ๅผ่ฎพ่ฎก - ๆ”ฏๆŒ็งปๅŠจ็ซฏๅ’ŒๆกŒ้ข็ซฏ

้ฆ–ๆฌกไฝฟ็”จ้…็ฝฎ

  1. ่ฎฟ้—ฎ http://localhost:8080
  2. ้€‰ๆ‹ฉๆจกๅž‹ๅนถ่พ“ๅ…ฅๆ็คบ่ฏๅผ€ๅง‹็”Ÿๆˆ

้…็ฝฎ

็Žฏๅขƒๅ˜้‡

ๅ˜้‡ ่ฏดๆ˜Ž ๅฟ…้œ€ ้ป˜่ฎคๅ€ผ
VOLCENGINE_API_KEY ็ซๅฑฑๅผ•ๆ“Ž API Key ๅฆ -
GITEE_API_KEY Gitee API Key ๅฆ -
MODELSCOPE_API_KEY ModelScope API Key ๅฆ -
PORT ็›‘ๅฌ็ซฏๅฃ ๅฆ 8080
LOG_LEVEL ๆ—ฅๅฟ—็บงๅˆซ (DEBUG/INFO/WARN/ERROR) ๅฆ INFO

่ฏดๆ˜Ž๏ผš

  • ๅ„ๆธ ้“ API Key ๆŒ‰้œ€้…็ฝฎ๏ผŒๅช้œ€้…็ฝฎไฝ ่ฆไฝฟ็”จ็š„ๆธ ้“
  • ๅฆ‚ๆžœๆŸไธชๆธ ้“็š„ API Key ๆœช้…็ฝฎ๏ผŒ่ฎฟ้—ฎ่ฏฅๆธ ้“ๆ—ถไผš่ฟ”ๅ›ž้”™่ฏฏ

้ป˜่ฎคๆจกๅž‹

ๆธ ้“ ้ป˜่ฎคๆจกๅž‹
็ซๅฑฑๅผ•ๆ“Ž doubao-seedream-4-0-250828
Gitee z-image-turbo
ModelScope Tongyi-MAI/Z-Image-Turbo

Docker ็Žฏๅขƒๅ˜้‡้…็ฝฎ

ๅœจ docker-compose.yml ไธญๆทปๅŠ ็Žฏๅขƒๅ˜้‡๏ผš

services:
  img-router:
    image: img-router:latest
    ports:
      - "8080:8080"
    environment:
      - VOLCENGINE_API_KEY=your-volcengine-api-key
      - GITEE_API_KEY=your-gitee-api-key
      - MODELSCOPE_API_KEY=your-modelscope-api-key
      - LOG_LEVEL=INFO

ๆˆ–ไฝฟ็”จ .env ๆ–‡ไปถ๏ผˆๆŽจ่๏ผ‰๏ผš

# .env
VOLCENGINE_API_KEY=your-volcengine-api-key
GITEE_API_KEY=your-gitee-api-key
MODELSCOPE_API_KEY=your-modelscope-api-key

ๅ“ๅบ”ๆ ผๅผ

ๆˆๅŠŸๅ“ๅบ”

{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "created": 1734323445,
  "model": "doubao-seedream-4-0-250828",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "![Generated Image](https://example.com/image.jpg)"
    },
    "finish_reason": "stop"
  }]
}

้”™่ฏฏๅ“ๅบ”

{
  "error": {
    "message": "API Error: ...",
    "type": "server_error",
    "provider": "VolcEngine"
  }
}

ๅผ€ๅ‘

deno fmt      # ๆ ผๅผๅŒ–ไปฃ็ 
deno lint     # ไปฃ็ ๆฃ€ๆŸฅ
deno check main.ts  # ็ฑปๅž‹ๆฃ€ๆŸฅ

่ฎธๅฏ่ฏ

MIT License

่ดก็Œฎ

ๆฌข่ฟŽๆไบค Issue ๅ’Œ Pull Request๏ผ

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors