CodeWiz:AI 全栈应用构建平台

不用写一行代码,用日常语言描述需求,AI 自动生成完整可运行项目。支持 14 种开发工具,覆盖从代码编写到启动预览的全流程。


一、项目简介

在日常开发中,重复性的代码工作占据了大量时间——CRUD 页面、API 对接、配置文件,这些工作模式固定但耗时。

CodeWiz 正是为解决这个痛点而生:用户只需要用自然语言描述需求,AI 就能自动分析、生成、运行完整的项目代码

比如,输入"帮我写一个待办事项应用,要求支持添加、完成、删除操作,数据保存在本地",AI 会:

  1. 创建完整的项目结构
  2. 生成所有代码文件
  3. 自动启动开发服务器
  4. 返回一个可访问的预览链接

整个过程,用户只需要说一句话。
在这里插入图片描述
在这里插入图片描述
此项目前端根据 https://github.com/freestyle-sh/Adorable 的前端界面,后端使用go+python重构。同时通过学习 https://github.com/shareAI-lab/learn-claude-code 来构建coding-agent harness。感谢大佬们开源。本项目作者遵守开源协议,仅用于学习与交流。


二、核心功能

2.1 自然语言对话生成

用户在对话界面输入需求描述,AI 自动解析并生成代码。前端使用 Vercel AI SDK 与后端通信,支持流式响应(逐字展示 AI 的思考过程)。

2.2 实时预览

代码生成后自动启动开发服务器,用户可以立即看到运行效果。预览 URL 实时返回,无需手动刷新。

2.3 14 种开发工具

Agent 在生成代码的过程中,会自主调用多种工具完成实际工作:

工具类型 具体能力
文件读写 读取文件、写入/覆盖文件、替换文件中指定文本
目录操作 列出目录内容、搜索文件内容、创建目录、移动/重命名、删除
终端命令 执行 bash/shell 命令
开发服务器 启动 dev server、获取预览 URL、检查应用状态、读取运行日志
Git 操作 自动 commit 代码更改

2.4 安全沙箱隔离

每个项目运行在独立的沙箱进程中,通过确定性哈希算法将项目 ID 映射到固定端口,重启后端口保持一致,避免冲突。


在这里插入图片描述

三、技术架构

3.1 三语言微服务架构

项目同时使用 TypeScript、Go、Python 三种语言,每种语言负责最适合的场景:

语言 职责 框架/工具
TypeScript 前端界面,紧跟 React 生态 Next.js 16 + Tailwind CSS 4 + AI SDK
Go 高并发 API 请求处理 Gin + GORM + JWT
Python AI/ML 逻辑,异步 LLM 调用 FastAPI + LangChain

3.2 系统架构图

┌─────────────────────────────────────────────────────────────────────┐
│                        Nginx (反向代理/SSL)                           │
│                         端口: 80 / 443                                │
└─────────────────────────────┬───────────────────────────────────────┘
                              │
         ┌────────────────────┼────────────────────┐
         │                    │                    │
         ▼                    ▼                    ▼
┌─────────────────┐   ┌─────────────────┐   ┌─────────────────┐
│   Frontend      │   │    Backend      │   │   AI Service    │
│  Next.js 16     │   │   Go + Gin      │   │    FastAPI      │
│   端口 3000     │   │   端口 8080     │   │   端口 8000     │
│                 │   │                 │   │                 │
│ • App Router   │   │ • JWT 认证      │   │ • LLM 流式调用  │
│ • AI SDK       │   │ • REST API     │   │ • Agent 执行循环│
│ • 实时预览      │   │ • GORM ORM     │   │ • 工具系统      │
│ • Tailwind 4   │   │ • PostgreSQL   │   │ • 沙箱管理      │
└─────────────────┘   └────────┬────────┘   └────────┬────────┘
                              │                    │
                              └─────────┬──────────┘
                                        ▼
                              ┌─────────────────────┐
                              │      PostgreSQL     │
                              │        端口 5432     │
                              └─────────────────────┘
                                        │
                              ┌─────────┴─────────┐
                              ▼                   ▼
                     ┌──────────────┐    ┌──────────────┐
                     │  项目A 沙箱   │    │  项目B 沙箱   │
                     │   :31000     │    │   :31001     │
                     └──────────────┘    └──────────────┘

3.3 技术选型理由

服务 技术 选型原因
前端 Next.js 16 App Router + Server Actions,减少客户端 JS 体积,SSR 对 SEO 友好
后端 Go + Gin goroutine 处理高并发请求,中间件设计简洁,GORM 操作数据库很方便
AI 服务 FastAPI 原生异步支持,与 Python AI 生态无缝集成,流式响应性能优秀
数据库 PostgreSQL JSONB 字段存储工具调用记录,兼顾结构化查询和灵活扩展
LLM 硅基流动 国产优质 API,支持多种模型,按 token 计费
网关 Nginx 成熟的反向代理方案,支持 SSL 终结和负载均衡

四、核心模块详解

4.1 前端(Next.js)

frontend/
├── app/
│   ├── assistant.tsx           # AI 对话核心组件
│   ├── layout.tsx              # 根布局
│   ├── page.tsx                # 首页
│   ├── auth/login/             # 登录页
│   ├── auth/register/          # 注册页
│   └── [repoId]/               # 动态路由(项目工作区)
│       └── [conversationId]/    # 会话详情
├── components/
│   └── assistant-ui/            # 对话 UI 组件库
└── lib/
    ├── auth-context.tsx        # 认证上下文
    └── repos-context.tsx       # 项目上下文

前端使用 @assistant-ui/react 构建对话界面,通过 Vercel AI SDK 的 useChat hook 处理 SSE 流式响应,Zustand 做轻量状态管理。

4.2 后端(Go + Gin)

backend/
├── cmd/server/main.go           # 程序入口
├── internal/
│   ├── config/config.go         # 配置管理(环境变量映射)
│   ├── router/router.go         # Gin 路由注册
│   ├── middleware/auth.go        # JWT 鉴权中间件
│   ├── handlers/                # HTTP 处理器
│   │   ├── auth_handler.go      # 登录/注册/登出
│   │   ├── project_handler.go   # 项目 CRUD
│   │   └── conversation_handler.go
│   ├── services/                # 业务逻辑层
│   └── repositories/            # 数据访问层(GORM)
└── pkg/response/response.go     # 统一 API 响应格式

采用分层架构:Handler → Service → Repository → Database。GORM AutoMigrate 负责数据库迁移,启动时自动创建/更新表结构。

4.3 AI 服务(FastAPI)

ai-service/
├── app/
│   ├── main.py                 # FastAPI 应用入口
│   ├── api/
│   │   ├── chat.py             # 流式对话 API(SSE)
│   │   ├── conversation.py      # 会话管理
│   │   ├── auth.py             # 用户认证
│   │   └── sandbox.py           # 沙箱管理
│   ├── harness/
│   │   ├── agent.py            # LangChain Agent 执行循环
│   │   ├── tools.py            # 14 个工具定义
│   │   └── sandbox_manager.py  # 项目沙箱管理器
│   └── llm/
│       └── silicon_flow.py     # 硅基流动 LLM 客户端
└── requirements.txt

Agent 执行循环的核心逻辑:

llm = llm.bind_tools(tools)  # 绑定 14 个工具

while iteration < max_iterations:
    response = await llm.ainvoke(messages)
    if response.tool_calls:  # LLM 决定调用工具
        for tool_call in response.tool_calls:
            result = dispatch_tool(tool_call.name, tool_call.args)
            messages.append(ToolMessage(content=str(result), tool_call_id=tool_call.id))
    else:  # 无工具调用,输出最终结果
        yield StreamEvent(type="finish", content=response.content)
        return

五、技术亮点

5.1 JWT 跨服务认证

Go Backend 和 Python AI Service 都需要验证用户身份。为避免 JWT 库差异导致的问题,AI 服务验证 JWT 时回调 Go Backend 的接口,由后端统一处理。

用户登录 → Go Backend 生成 JWT(HS256, 7天有效期)
           ↓
前端存储 Token,每次请求携带 Bearer Token
           ↓
AI 服务需要验证时,回调 Backend 的 /auth/verify 接口

5.2 确定性沙箱端口映射

每个项目通过 FNV 哈希算法映射到固定端口,同一项目 ID 始终映射到相同端口,重启后不变:

def _project_id_hash_port(project_id: str) -> int:
    h = 2166136261
    for ch in project_id.encode():
        h ^= ch
        h = (h * 16777619) & 0xFFFFFFFF
    return SANDBOX_PORT_START + (h % SANDBOX_PORT_COUNT)

5.3 SSE 流式响应

LLM 响应通过 Server-Sent Events 实时推送,前端逐字展示:

async def chat(request: ChatRequest):
    async def generate():
        async for event in agent.run(messages):
            if event.type == "content":
                yield f"data: {json.dumps({'type': 'text', 'content': event.content})}\n\n"
    return StreamingResponse(generate(), media_type="text/event-stream")

六、Docker Compose 一键部署

项目通过 Docker Compose 实现容器化部署,所有服务一键启动:

# 1. 克隆项目
git clone https://github.com/codewiz/codewiz.git
cd CodeWiz

# 2. 配置环境变量
cp .env.example .env
# 编辑 .env 填入必要配置

# 3. 启动所有服务
docker-compose up -d --build

# 4. 验证服务状态
docker-compose ps

# 5. 访问应用
open http://localhost

环境变量说明

变量名 必填 说明
DATABASE_URL PostgreSQL 连接地址
JWT_SECRET JWT 签名密钥
SILICON_FLOW_API_KEY 硅基流动 API Key
LLM_MODEL 模型名称,默认 Qwen/Qwen2.5-7B-Instruct

七、项目成果

功能 状态
用户认证体系(注册/登录/JWT) ✅ 已完成
流式对话(SSE + Agent) ✅ 已完成
14 个开发工具 ✅ 已完成
Docker Compose 一键部署 ✅ 已完成
实时预览 ✅ 已完成
GitHub 仓库导入 ✅ 已完成

八、未来规划

  • 向量数据库 + RAG 知识增强
  • WebSocket 双向实时通信
  • 多租户隔离(企业版)
  • 支持更多 LLM 提供商(OpenAI、Anthropic 等)
  • 团队协作(多人实时编辑)
  • 项目模板市场

九、项目地址

https://github.com/codewiz/codewiz

如果你觉得这个项目有帮助,欢迎点个 ⭐ 支持一下。有问题或想法?欢迎提 Issue 和 PR,一起探索 AI 开发工具的更多可能性。


技术栈:Next.js 16 + Go + Gin + FastAPI + PostgreSQL + Docker
许可证:MIT

Logo

一站式 AI 云服务平台

更多推荐