kit初版,模型引入,agent优化

This commit is contained in:
2026-04-13 00:41:23 +08:00
parent 9b053e302b
commit c435ab15cf
14097 changed files with 5032 additions and 2676248 deletions

View File

@@ -1,6 +1,6 @@
# Art Agent MVP
# EPEEKit
AI 美术资源生成助手 — 通过对话生成游戏美术资源。
AI 美术资源生成工具集 — 通过对话生成游戏美术资源。
## 快速开始
@@ -8,7 +8,7 @@ AI 美术资源生成助手 — 通过对话生成游戏美术资源。
你需要两个 API Key
- **OpenAI API Key**https://platform.openai.com/api-keys
- **OpenAI API Key**(或兼容 APIhttps://platform.openai.com/api-keys
- **Replicate API Token**https://replicate.com/account/api-tokens
### 2. 启动后端
@@ -26,10 +26,10 @@ pip install -r requirements.txt
# 配置环境变量
copy .env.example .env
# 编辑 .env填入你的 API Key
# 编辑 .env填入你的 API Key 和模型配置
# 启动
uvicorn app.main:app --reload --port 8000
# 启动--host 0.0.0.0 允许局域网/穿透访问)
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
### 3. 启动前端
@@ -53,6 +53,43 @@ npm run dev
- 生成的图片可以点击"保存"按钮下载
- 持续对话进行迭代修改
## 访问地址
| 场景 | 前端页面 | 后端 API | 后端文档 |
|------|---------|---------|---------|
| **本机** | http://localhost:3000 | http://localhost:8000 | http://localhost:8000/docs |
| **局域网**(同一 WiFi | `http://<你的IP>:3000` | `http://<你的IP>:8000` | `http://<你的IP>:8000/docs` |
| **外网**Cloudflare Tunnel | `https://xxx.trycloudflare.com`(每次启动不同) | `https://yyy.trycloudflare.com` | — |
查看本机局域网 IP
```powershell
# Windows
Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.InterfaceAlias -eq 'WLAN' }
# macOS / Linux
ifconfig | grep "inet " | grep -v 127.0.0.1
```
## 配置说明
所有可配置项都集中在 `backend/.env` 文件中,分为以下几组:
| 配置组 | 变量 | 说明 |
|--------|------|------|
| **LLM 对话** | `OPENAI_API_KEY` | API 密钥 |
| | `OPENAI_BASE_URL` | API 基地址,支持任何 OpenAI 兼容 API |
| | `LLM_MODEL` | 模型名称,如 `gpt-4o-mini``deepseek-chat` 等 |
| | `LLM_MAX_ITERATIONS` | Agent 单轮最大工具调用次数 |
| **图像生成** | `REPLICATE_API_TOKEN` | Replicate API Token |
| | `IMAGE_MODEL` | 图像生成模型,如 `black-forest-labs/flux-schnell` |
| | `IMAGE_ASPECT_RATIO` | 默认宽高比,如 `1:1` |
| | `IMAGE_OUTPUT_FORMAT` | 输出格式,如 `png` |
| **网络** | `HTTP_PROXY` / `HTTPS_PROXY` | 代理配置 |
| **服务** | `PORT` | 后端服务端口 |
切换 LLM 供应商只需修改 `OPENAI_BASE_URL` + `OPENAI_API_KEY` + `LLM_MODEL` 三个值。
## 项目结构
```
@@ -60,6 +97,7 @@ art-agent/
backend/ # Python FastAPI 后端
app/
main.py # 入口
config.py # 集中配置(读取 .env
api/chat.py # 对话 API
agent/ # Agent Loop 核心
services/ # AI 服务封装
@@ -71,8 +109,69 @@ art-agent/
docs/ # 文档
```
## 远程访问(外网穿透)
通过 Cloudflare Quick Tunnel 免费穿透内网,手机或朋友在任何网络下都能访问,无需买服务器。
### 安装 cloudflared
```powershell
# Windows任选一种
winget install Cloudflare.cloudflared
# 或手动下载
# https://github.com/cloudflare/cloudflared/releases/latest
# 下载 cloudflared-windows-amd64.exe放到项目目录下即可
```
```bash
# macOS
brew install cloudflared
# Linux
# https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
```
### 一键启动穿透
确保前后端服务已经在运行,然后在另一个终端执行:
```powershell
cd art-agent
.\start-tunnel.ps1
```
脚本会自动:
1. 为后端和前端各创建一条穿透隧道
2. 更新 `frontend/.env.local` 中的后端 API 地址为穿透地址
3. 打印手机可访问的公网 HTTPS 链接
4. 关闭脚本时Ctrl+C自动恢复 `.env.local` 为 localhost
> **重要**:穿透启动后需要**重启前端** (`npm run dev`) 才能读取新的 `.env.local`。
### 穿透管理
| 操作 | 方式 |
|------|------|
| **启动** | 运行 `.\start-tunnel.ps1`,等待打印出两条 `trycloudflare.com` 地址 |
| **停止** | 在脚本窗口按 `Ctrl+C`,或在任务管理器中结束 `cloudflared.exe` 进程 |
| **查看状态** | 检查日志:`Get-Content $env:TEMP\epeekit-tunnel-backend.log` |
| **重启** | 先停止再启动地址会变Quick Tunnel 每次分配随机域名) |
### 注意事项
- Quick Tunnel **免费无需账号**,但地址每次启动都会变化
- 如果 cloudflared 连接超时可能需要配置代理Clash 等),在运行脚本前设置:
```powershell
$env:HTTP_PROXY = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
.\start-tunnel.ps1
```
- 电脑关机、休眠或代理断开后隧道会自动失效
- 停止穿透后,`start-tunnel.ps1` 会自动将 `.env.local` 恢复为 `localhost`;如果手动杀进程,需要自行恢复
## 技术栈
- 前端Next.js + TypeScript + Tailwind CSS
- 后端Python FastAPI + SSE
- AIOpenAI GPT-4o-mini(对话+ Replicate Flux(图像生成
- AI可配置 LLM默认 GPT-4o-mini+ 可配置图像模型(默认 Replicate Flux