StructForge ๆฏไธไธชๅ จๅ่ฝ็AIๅทฅไฝๆต็ผๆๅนณๅฐ๏ผๆฏๆๅค็งAIๅคงๆจกๅ๏ผๅผๆบใ่ชๅปบใๅ ฌๅ ฑAPI๏ผๅๅ็งๅทฅไฝ่็น๏ผๆไพๅฏ่งๅ็ๆต็จ่ฎพ่ฎก็้ขใ็ฑปไผผn8n๏ผไฝไธๆณจไบAIๅทฅไฝๆตๅบๆฏใ
- ๐ค ๅคAIๆจกๅๆฏๆ: ๆฏๆOpenAIใGeminiใOllama็ญๅ็ฑปAIๆจกๅ
- ๐ง ไธฐๅฏ็ๅทฅไฝ่็น: ่งฆๅใAIใๆฐๆฎๅค็ใ้ๆใๆงๅถใๅทฅๅ ท็ญ่็น
- ๐จ ๅฏ่งๅ็ผ่พๅจ: ๆๆฝๅผๅทฅไฝๆต่ฎพ่ฎก๏ผ็ด่งๆ็จ
- โก ้ซๆง่ฝๆง่ก: ๆฏๆๅๆญฅ/ๅผๆญฅๆง่ก๏ผ้ๅๅ็งๅบๆฏ
- ๐ ๅฎๅ จๅฏ้ : ๅฎๅ็่ฎค่ฏๆๆใๆฐๆฎๅ ๅฏใๅค็งๆท้็ฆป
- ๐ ๆไบๆฉๅฑ: ๆไปถๅๆถๆ๏ผๆฏๆ่ชๅฎไน่็นๅๆจกๅ
- ๆกๆถ: Vue 3.x + TypeScript
- ๆๅปบๅทฅๅ ท: Vite
- ็ถๆ็ฎก็: Pinia
- UI็ปไปถ: Element Plus
- ๅทฅไฝๆต็ผ่พๅจ: Vue Flow
- ๆกๆถ: Go + Kratosๅพฎๆๅกๆกๆถ
- ๅ่ฎฎ: gRPC + HTTP Gateway
- ๆฐๆฎๅบ: PostgreSQL + Redis
- ๆถๆฏ้ๅ: RabbitMQ๏ผๅฏ้๏ผ
- ๅฎนๅจๅ: Docker + Docker Compose
- ๅนณๅฐๆฏๆ: WindowsใLinux
StructForge/
โโโ frontend/ # ๅ็ซฏ้กน็ฎ๏ผVue3๏ผ
โ โโโ src/
โ โ โโโ api/ # APIๆฅๅฃๅฎไน
โ โ โโโ components/ # ็ปไปถ
โ โ โโโ views/ # ้กต้ข่งๅพ
โ โ โโโ stores/ # Pinia็ถๆ็ฎก็
โ โ โโโ utils/ # ๅทฅๅ
ทๅฝๆฐ
โ โโโ package.json
โ
โโโ backend/ # ๅ็ซฏ้กน็ฎ๏ผGo + Kratos๏ผ
โ โโโ api/ # APIๅฎไน๏ผProtobuf๏ผ
โ โ โโโ user/
โ โ โ โโโ v1/
โ โ โ โโโ user.proto
โ โ โโโ workflow/
โ โ โ โโโ v1/
โ โ โ โโโ workflow.proto
โ โ โโโ ai/
โ โ โ โโโ v1/
โ โ โ โโโ ai.proto
โ โ โโโ node/
โ โ โ โโโ v1/
โ โ โ โโโ node.proto
โ โ โโโ gateway/
โ โ โ โโโ v1/
โ โ โ โโโ gateway.proto
โ โ โโโ common/
โ โ โโโ v1/
โ โ โโโ common.proto
โ โ
โ โโโ apps/ # ๅพฎๆๅกๅบ็จ
โ โ โโโ gateway/ # API Gatewayๆๅก
โ โ โ โโโ cmd/
โ โ โ โ โโโ gateway/
โ โ โ โ โโโ main.go
โ โ โ โ โโโ wire.go
โ โ โ โโโ internal/
โ โ โ โโโ conf/ # ้
็ฝฎ
โ โ โ โโโ handler/ # HTTPๅค็ๅจ
โ โ โ โโโ data/ # ๆฐๆฎ่ฎฟ้ฎ๏ผgRPCๅฎขๆท็ซฏ๏ผ
โ โ โ โโโ server/ # ๆๅกๅจ้
็ฝฎ
โ โ โ
โ โ โโโ user/ # ็จๆทๆๅก
โ โ โ โโโ cmd/
โ โ โ โ โโโ user/
โ โ โ โ โโโ main.go
โ โ โ โ โโโ wire.go
โ โ โ โโโ internal/
โ โ โ โโโ biz/ # ไธๅก้ป่พๅฑ
โ โ โ โโโ data/ # ๆฐๆฎ่ฎฟ้ฎๅฑ
โ โ โ โโโ service/ # gRPCๆๅกๅฑ
โ โ โ โโโ server/ # ๆๅกๅจ้
็ฝฎ
โ โ โ โโโ conf/ # ้
็ฝฎ
โ โ โ
โ โ โโโ workflow/ # ๅทฅไฝๆตๆๅก
โ โ โ โโโ cmd/
โ โ โ โ โโโ workflow/
โ โ โ โ โโโ main.go
โ โ โ โ โโโ wire.go
โ โ โ โโโ internal/
โ โ โ โโโ biz/ # ไธๅก้ป่พๅฑ๏ผๆง่กๅผๆ๏ผ
โ โ โ โโโ data/ # ๆฐๆฎ่ฎฟ้ฎๅฑ
โ โ โ โโโ service/ # gRPCๆๅกๅฑ
โ โ โ โโโ server/ # ๆๅกๅจ้
็ฝฎ
โ โ โ โโโ conf/ # ้
็ฝฎ
โ โ โ
โ โ โโโ ai/ # AIๆจกๅๆๅก
โ โ โ โโโ cmd/
โ โ โ โ โโโ ai/
โ โ โ โ โโโ main.go
โ โ โ โ โโโ wire.go
โ โ โ โโโ internal/
โ โ โ โโโ biz/ # ไธๅก้ป่พๅฑ
โ โ โ โโโ adapters/ # AIๆจกๅ้้
ๅจ
โ โ โ โ โโโ openai/
โ โ โ โ โโโ gemini/
โ โ โ โ โโโ ollama/
โ โ โ โโโ data/ # ๆฐๆฎ่ฎฟ้ฎๅฑ
โ โ โ โโโ service/ # gRPCๆๅกๅฑ
โ โ โ โโโ conf/ # ้
็ฝฎ
โ โ โ
โ โ โโโ node/ # ่็นๆๅก
โ โ โ โโโ cmd/
โ โ โ โ โโโ node/
โ โ โ โ โโโ main.go
โ โ โ โ โโโ wire.go
โ โ โ โโโ internal/
โ โ โ โโโ biz/ # ไธๅก้ป่พๅฑ
โ โ โ โโโ nodes/ # ่็นๅฎ็ฐ
โ โ โ โ โโโ trigger/
โ โ โ โ โโโ ai/
โ โ โ โ โโโ data/
โ โ โ โ โโโ control/
โ โ โ โโโ data/ # ๆฐๆฎ่ฎฟ้ฎๅฑ
โ โ โ โโโ service/ # gRPCๆๅกๅฑ
โ โ โ โโโ conf/ # ้
็ฝฎ
โ โ โ
โ โ โโโ tool/ # ๅทฅๅ
ทๆๅก
โ โ โโโ scheduler/ # ่ฐๅบฆๆๅก
โ โ โโโ log/ # ๆฅๅฟๆๅก
โ โ
โ โโโ common/ # ๅ
ฌๅ
ฑไปฃ็
โ โ โโโ middleware/ # ไธญ้ดไปถ
โ โ โ โโโ auth/ # ่ฎค่ฏไธญ้ดไปถ
โ โ โ โโโ cors/ # CORSไธญ้ดไปถ
โ โ โ โโโ logger/ # ๆฅๅฟไธญ้ดไปถ
โ โ โ โโโ ratelimit/ # ้ๆตไธญ้ดไปถ
โ โ โโโ data/ # ๆฐๆฎ่ฎฟ้ฎๅ
ฌๅ
ฑไปฃ็
โ โ โ โโโ database/ # ๆฐๆฎๅบ่ฟๆฅ
โ โ โ โโโ redis/ # Redis่ฟๆฅ
โ โ โโโ utils/ # ๅทฅๅ
ทๅฝๆฐ
โ โ โ โโโ crypto.go # ๅ ๅฏๅทฅๅ
ท
โ โ โ โโโ response.go # ๅๅบๅทฅๅ
ท
โ โ โ โโโ validator.go # ้ช่ฏๅทฅๅ
ท
โ โ โโโ log/ # ๆฅๅฟๅทฅๅ
ท
โ โ
โ โโโ configs/ # ้
็ฝฎๆไปถ
โ โ โโโ local/ # ๆฌๅฐ็ฏๅข้
็ฝฎ
โ โ โ โโโ gateway.yaml
โ โ โ โโโ user.yaml
โ โ โ โโโ workflow.yaml
โ โ โ โโโ ...
โ โ โโโ test/ # ๆต่ฏ็ฏๅข้
็ฝฎ
โ โ
โ โโโ deploy/ # ้จ็ฝฒ็ธๅ
ณ
โ โ โโโ configs/ # ้จ็ฝฒ้
็ฝฎ
โ โ โโโ scripts/ # ้จ็ฝฒ่ๆฌ
โ โ
โ โโโ script/ # ๅผๅ่ๆฌ
โ โ โโโ proto.sh # ็ๆprotoไปฃ็
โ โ โโโ wire.sh # ็ๆwireไปฃ็
โ โ โโโ build.sh # ๆๅปบ่ๆฌ
โ โ
โ โโโ third_party/ # ็ฌฌไธๆนไพ่ต
โ โ โโโ google/ # Google API
โ โ โโโ validate/ # ้ช่ฏ่งๅ
โ โ
โ โโโ go.mod # Goๆจกๅๅฎไน
โ โโโ Makefile # Makeๅฝไปค
โ
โโโ docs/ # ้กน็ฎๆๆกฃ
โโโ docker/ # Docker้
็ฝฎ
โโโ docker-compose.yml # Docker Compose้
็ฝฎ
โโโ README.md # ้กน็ฎ่ฏดๆ
- ๆถๆ่ฎพ่ฎกๆๆกฃ - ๆดไฝๆถๆ่ฎพ่ฎกๅๆๆฏ้ๅ
- ้กน็ฎ็ปๆๆๆกฃ - ่ฏฆ็ป็็ฎๅฝ็ปๆ่ฏดๆ
- ่ฎพ่ฎกๅๆๆๆกฃ - ๆ ธๅฟๆจกๅ่ฎพ่ฎกๅๅฎ็ฐๅๆ
- ๆๆกฃ็ณป็ป่ฎพ่ฎก - APIๆๆกฃๅ่็น/ๅทฅไฝๆตไฝฟ็จ่ฏดๆ็ณป็ป่ฎพ่ฎก
- Docker Desktop
- Node.js 18+
- Go 1.21+
# 1. ๅฏๅจๅบ็ก่ฎพๆฝ
docker-compose up -d postgres redis
# 2. ็ๆprotoไปฃ็ ๅwireไปฃ็
cd backend
make proto
make wire
# 3. ๅฏๅจๅ็ซฏๆๅก
# ๆนๅผ1: ไฝฟ็จMakefileๅฏๅจๆๆๆๅก
make run
# ๆนๅผ2: ๅ็ฌๅฏๅจๆไธชๆๅก
cd apps/gateway && go run cmd/gateway/main.go
cd apps/user && go run cmd/user/main.go
# ... ๅ
ถไปๆๅก็ฑปไผผ
# 4. ๅฏๅจๅ็ซฏ
cd frontend
npm install
npm run dev- gateway: API Gateway๏ผ็ปไธๅ
ฅๅฃ๏ผ้ป่ฎค็ซฏๅฃ
8000 - user: ็จๆทๆๅก๏ผgRPC็ซฏๅฃ
9001 - workflow: ๅทฅไฝๆตๆๅก๏ผgRPC็ซฏๅฃ
9002 - ai: AIๆจกๅๆๅก๏ผgRPC็ซฏๅฃ
9003 - node: ่็นๆๅก๏ผgRPC็ซฏๅฃ
9004 - tool: ๅทฅๅ
ทๆๅก๏ผgRPC็ซฏๅฃ
9005 - scheduler: ่ฐๅบฆๆๅก๏ผgRPC็ซฏๅฃ
9006 - log: ๆฅๅฟๆๅก๏ผgRPC็ซฏๅฃ
9007
API Gateway๏ผๆไพ็ปไธ็HTTPๅ ฅๅฃ๏ผ่ด่ดฃ่ทฏ็ฑใ่ฎค่ฏใ้ๆต็ญๅ่ฝใ
่ด่ดฃ็จๆท่ฎค่ฏใๆๆใ็จๆทไฟกๆฏ็ฎก็็ญๅ่ฝใ
ๅทฅไฝๆตๅฎไนใ็ๆฌ็ฎก็ใๆง่กๅผๆๆ ธๅฟๆๅกใ
็ปไธๆฅๅ ฅๅ็งAIๆจกๅ๏ผๆไพ็ปไธ็่ฐ็จๆฅๅฃใ
ๅฎ็ฐๅ็งๅทฅไฝๆต่็น๏ผๅ ๆฌ่งฆๅใAIใๆฐๆฎๅค็็ญ่็นใ
ๆไพไปฃ็ ๆง่กใๆไปถๅค็็ญๅทฅๅ ท่ฝๅใ
ๅฎๆถไปปๅก่ฐๅบฆ๏ผๆฏๆCron่กจ่พพๅผใ
ๅทฅไฝๆตๆง่กๆฅๅฟๆถ้ใๆฅ่ฏขๅๅๆใ
- ๆๆฏ: OpenAPI 3.0 + Swagger UI
- ไฝ็ฝฎ: ้ๆๅฐAPI Gateway
- ่ฎฟ้ฎ:
http://localhost:8000/api/docs
- ๅญๅจ: PostgreSQLๆฐๆฎๅบ
- API: ่็นๆๅกๆไพ (
/api/v1/nodes/docs) - ๅฑ็คบ: ๅ็ซฏๆๆกฃ้กต้ข
- ็น็น: ๅจๆๆดๆฐใ็ๆฌ็ฎก็ใๆฏๆๅค่ฏญ่จ
- ๅญๅจ: Markdownๆไปถ
- API: ๅทฅไฝๆตๆๅกๆไพ (
/api/v1/workflows/docs) - ๅฑ็คบ: ๅ็ซฏๆๆกฃ้กต้ข
- ๅ ๅฎน: ๅฟซ้ๅผๅงใ่ฎพ่ฎกๆๅใ็คบไพใๆ ้ๆๆฅ
่ฏฆ็ป่ฎพ่ฎก่ฏทๅ่ ๆๆกฃ็ณป็ป่ฎพ่ฎกๆๆกฃ
- ้กน็ฎๅๅงๅ
- ๅบ็กๆกๆถๆญๅปบ
- ็จๆทๆๅกๅฎ็ฐ
- ๅทฅไฝๆตๆๅกๅฎ็ฐ
- AIๆจกๅๆๅกๅฎ็ฐ
- ่็นๆๅกๅฎ็ฐ
- ๅ็ซฏ็ผ่พๅจๅฎ็ฐ
- ๆต่ฏๅไผๅ
ๅพ ๅฎ
ๆฌข่ฟๆไบคIssueๅPull Request๏ผ