File size: 3,252 Bytes
17e4281
 
 
 
 
 
 
 
 
 
 
 
03e6f63
bdb404e
03e6f63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---
title: Doc Research
emoji: 🔬
colorFrom: yellow
colorTo: green
sdk: gradio
sdk_version: 5.39.0
app_file: app.py
pinned: false
---


# Gradio研究工作流应用

这是一个基于Gradio的研究工作流应用,支持文件上传和URL输入的智能研究分析。

## 功能特性

- 📝 **用户提示输入**:支持中英文输入研究问题或任务描述
- 📁 **文件上传功能**:支持多文件上传,默认支持PDF格式
- 🔗 **URLs输入功能**:支持多个URL输入,每行一个
- 🚀 **一键运行**:点击按钮即可开始研究工作流
- 📊 **结果显示**:实时显示执行结果和工作目录
- 🗂️ **临时工作目录**:每次运行创建新的工作目录
- 🌐 **多语言支持**:支持中文和英文界面
- 👥 **多用户并发**:支持多用户同时使用,默认最大并发数为8
- 🔒 **用户隔离**:每个用户拥有独立的工作空间和会话数据
- ⏱️ **任务超时控制**:自动清理超时任务,默认超时时间15分钟
- 📈 **实时状态监控**:显示系统并发状态和用户任务状态

## 安装和运行

1. 安装依赖:
```bash
pip install -r requirements.txt
```

2. 配置环境变量:
```bash
cp .env.example .env
# 编辑 .env 文件,填入你的API配置
```

3. 运行应用:
```bash
python app.py
```

4. 打开浏览器访问:http://localhost:7860

## 环境变量配置

- `OPENAI_API_KEY`: OpenAI API密钥
- `OPENAI_BASE_URL`: OpenAI API基础URL
- `OPENAI_MODEL_ID`: 使用的模型ID
- `GRADIO_DEFAULT_CONCURRENCY_LIMIT`: Gradio默认并发限制(默认:8)
- `LOCAL_MODE`: 本地模式开关(默认:true)

## 使用说明

1. **用户提示**:在文本框中输入您的研究目标或问题
2. **文件上传**:选择需要分析的文件(支持多选)
3. **URLs输入**:输入相关的网页链接,每行一个URL
4. **开始研究**:点击运行按钮开始执行工作流
5. **查看结果**:在右侧区域查看执行结果和工作目录路径

## 工作目录结构

每次运行都会在 `temp_workspace` 目录下创建新的工作目录:
```
temp_workspace/
├── task_20231201_143022_a1b2c3d4/
├── task_20231201_143156_e5f6g7h8/
└── ...
```

## 并发控制说明

### 并发限制
- 系统默认支持最大8个用户同时执行研究任务
- 可通过环境变量 `GRADIO_DEFAULT_CONCURRENCY_LIMIT` 调整并发数
- 超出并发限制的用户会收到系统繁忙提示

### 任务管理
- 每个用户同时只能执行一个研究任务
- 超时任务会被自动清理,释放系统资源

### 状态监控
- 实时显示系统并发状态:活跃任务数/最大并发数
- 显示用户任务状态:运行中、已完成、失败等
- 提供系统状态刷新功能

### 用户隔离
- 每个用户拥有独立的工作目录和会话数据
- 本地模式下使用时间戳区分不同会话
- 远程模式下基于用户ID进行隔离

## 注意事项

- 确保有足够的磁盘空间用于临时文件存储
- 定期清理工作空间以释放存储空间
- 确保网络连接正常以访问外部URLs
- 在高并发场景下,建议适当增加服务器资源配置
- 长时间运行的任务可能会被超时机制清理