Spaces:
Paused
Paused
| title: OpenSite | |
| emoji: 🐳 | |
| colorFrom: blue | |
| colorTo: blue | |
| sdk: docker | |
| pinned: true | |
| app_port: 7860 | |
| license: mit | |
| short_description: 一个强大的AI驱动的前端开发助手 | |
| # DeepSite | |
| 一个强大的AI驱动的前端开发助手,帮助你快速创建和优化网页。 | |
| ## 特性 | |
| - 🎨 智能UI生成 | |
| - 🔧 代码优化建议 | |
| - 🚀 实时预览 | |
| - 🔄 自定义模型支持 | |
| - 🌐 多语言支持 | |
| ## 获取 Hugging Face 凭据 | |
| 1. 访问 https://huggingface.co/settings/connected-applications | |
| 2. 创建新的 OAuth 应用: | |
| - 点击 "Create App" | |
| - 填写应用信息 | |
| - 设置回调URL为您的 REDIRECT_URI | |
| 3. 获取 Client ID 和 Client Secret | |
| 4. 创建 Access Token 作为 DEFAULT_HF_TOKEN(可选) | |
| ## 环境变量配置 | |
| 在项目根目录创建 `.env` 文件,参考 `.env.example` 添加以下配置: | |
| ```env | |
| # OAuth配置 | |
| OAUTH_CLIENT_ID= # Hugging Face OAuth客户端ID | |
| OAUTH_CLIENT_SECRET= # Hugging Face OAuth客户端密钥 | |
| APP_PORT=7860 # 应用程序端口号 | |
| REDIRECT_URI= # OAuth重定向URI | |
| DEFAULT_HF_TOKEN= # 默认的Hugging Face Token | |
| DEFAULT_MODEL_ID= # 默认模型ID | |
| # OpenAI 兼容配置(可选) | |
| OPENAI_COMPATIBLE_ENDPOINT= # OpenAI兼容的API端点 | |
| OPENAI_COMPATIBLE_API_KEY= # API密钥 | |
| OPENAI_COMPATIBLE_MODEL_ID= # 模型ID | |
| OPENAI_COMPATIBLE_MAX_TOKENS= # 最大token数(默认2048) | |
| OPENAI_COMPATIBLE_SYSTEM_PROMPT= # 系统提示词 | |
| ``` | |
| ## OpenAI 兼容模型配置 | |
| DeepSite 支持两种配置 OpenAI 兼容模型的方式: | |
| ### 1. 通过环境变量配置(推荐) | |
| 在 `.env` 文件中设置以下变量: | |
| ```env | |
| OPENAI_COMPATIBLE_ENDPOINT=http://your-api-endpoint | |
| OPENAI_COMPATIBLE_API_KEY=your-api-key | |
| OPENAI_COMPATIBLE_MODEL_ID=your-model-id | |
| OPENAI_COMPATIBLE_MAX_TOKENS=2048 | |
| OPENAI_COMPATIBLE_SYSTEM_PROMPT=你是一个专业的前端开发助手 | |
| ``` | |
| ### 2. 通过API动态配置 | |
| 发送 POST 请求到 `/api/custom-model` 端点: | |
| ```json | |
| { | |
| "endpoint": "http://your-api-endpoint", | |
| "apiKey": "your-api-key", | |
| "model_id": "your-model-id", | |
| "apiType": "openai", | |
| "max_tokens": 2048, | |
| "name": "自定义模型名称", | |
| "systemPrompt": "自定义系统提示词" | |
| } | |
| ``` | |
| ### 支持的模型示例 | |
| 1. ChatGLM API | |
| ```env | |
| OPENAI_COMPATIBLE_ENDPOINT=http://localhost:8000/v1 | |
| OPENAI_COMPATIBLE_MODEL_ID=chatglm3-6b | |
| ``` | |
| 2. FastChat API | |
| ```env | |
| OPENAI_COMPATIBLE_ENDPOINT=http://localhost:8000/v1 | |
| OPENAI_COMPATIBLE_MODEL_ID=vicuna-7b-v1.5 | |
| ``` | |
| 3. 其他兼容 OpenAI API 的模型服务都可以通过类似方式配置 | |
| ## 用户限制说明 | |
| ### 未登录用户 | |
| - 每个IP地址最多允许4次请求 | |
| - 使用系统默认的 Hugging Face Token | |
| - 受到提供商的token限制 | |
| ### 登录用户 | |
| - 使用个人 Hugging Face Token | |
| - Token限制说明: | |
| - 限制类型:单次请求的token限制(不是每月或总量限制) | |
| - Token计算:TOKENS_USED = prompt长度 + 历史提示长度 + HTML内容长度 | |
| - 不同提供商的单次请求限制: | |
| - Fireworks AI: 最大 131,000 tokens | |
| - Nebius AI Studio: 最大 131,000 tokens | |
| - SambaNova: 最大 8,000 tokens | |
| - NovitaAI(默认): 最大 16,000 tokens | |
| - 自定义模型: 根据配置设置 | |
| ### 超出限制处理 | |
| 1. 系统会返回400错误并提示切换提供商 | |
| 2. 用户可以: | |
| - 减少输入内容长度 | |
| - 切换到有更高token限制的提供商 | |
| - 使用"auto"模式让系统自动选择合适的提供商 | |
| - 配置自定义模型 | |
| ### 自动模式(Auto) | |
| - 默认使用 NovitaAI(16,000 tokens限制) | |
| - 系统会自动处理token限制,选择合适的提供商 | |
| - 建议:如果不确定使用哪个提供商,建议使用自动模式 | |
| ## 自定义模型配置 | |
| DeepSite 支持两种类型的自定义模型接入: | |
| ### 1. HuggingFace 格式 | |
| 使用 HuggingFace Inference API 格式的模型: | |
| ```json | |
| { | |
| "endpoint": "https://your-model-endpoint", | |
| "apiKey": "your-api-key", | |
| "model_id": "your-model-id", | |
| "apiType": "hf", | |
| "max_tokens": 2048, | |
| "name": "自定义模型名称", | |
| "systemPrompt": "自定义系统提示词" | |
| } | |
| ``` | |
| ### 2. OpenAI 兼容格式 | |
| 使用 OpenAI API 兼容格式的模型(如 ChatGLM、FastChat 等): | |
| ```json | |
| { | |
| "endpoint": "http://your-api-endpoint", | |
| "apiKey": "your-api-key", | |
| "model_id": "your-model-id", | |
| "apiType": "openai", | |
| "max_tokens": 2048, | |
| "name": "自定义模型名称", | |
| "systemPrompt": "自定义系统提示词" | |
| } | |
| ``` | |
| ## 如何配置环境变量 | |
| 1. 在项目根目录创建 `.env` 文件 | |
| 2. 复制 `.env.example` 的内容到 `.env` | |
| 3. 填入相应的值: | |
| - 从 Hugging Face 获取 OAuth 凭据 | |
| - 设置应用程序端口(默认7860) | |
| - 配置重定向URI | |
| - 设置默认的 Hugging Face Token | |
| - 配置默认模型ID(可选) | |
| 注意:`.env` 文件包含敏感信息,已在 `.gitignore` 中配置,不会被提交到版本控制系统。 | |
| ## 最佳实践建议 | |
| 1. 对于大型项目: | |
| - 使用 Fireworks AI 或 Nebius AI Studio(131k tokens限制) | |
| - 适合生成完整的网站或复杂应用 | |
| - 或配置自定义大模型 | |
| 2. 对于中小型项目: | |
| - 使用 NovitaAI(16k tokens限制) | |
| - 适合生成单个页面或简单组件 | |
| 3. 对于快速原型: | |
| - 使用 SambaNova(8k tokens限制) | |
| - 适合生成简单的UI组件或快速测试 | |
| 4. 对于特殊需求: | |
| - 配置自定义模型 | |
| - 可以使用自己部署的模型或其他API服务 | |
| - 灵活设置token限制和系统提示词 | |
| 5. 通用建议: | |
| - 开始时使用自动模式 | |
| - 根据项目需求和生成内容大小选择合适的提供商 | |
| - 如遇到token限制,可以分步骤生成,然后组合内容 | |
| - 对于特殊需求,考虑配置自定义模型 | |
| Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference | |
| ## 开发 | |
| 1. 安装依赖: | |
| ```bash | |
| npm install | |
| ``` | |
| 2. 启动开发服务器: | |
| ```bash | |
| npm run dev | |
| ``` | |
| 3. 构建生产版本: | |
| ```bash | |
| npm run build | |
| ``` | |
| ## 部署 | |
| 项目可以部署到任何支持 Node.js 的平台。推荐使用: | |
| - Vercel | |
| - Netlify | |
| - Hugging Face Spaces | |
| ## 贡献 | |
| 欢迎提交 Pull Request 或创建 Issue! | |
| ## 许可 | |
| MIT License | |