opensite / README.md
luoluoluo22's picture
解决合并冲突:更新配置文件
eaf85b2
---
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