网页界面提供了一个基于 Flask 的 Web 应用程序,作为 g4f 系统的主要图形用户界面。它包括前端的静态文件服务以及用于聊天功能、文件管理和系统配置的全面 REST API 后端。
有关 FastAPI 服务器端点的信息,请参阅FastAPI 端点。有关媒体处理和文件处理的详细信息,请参阅媒体处理。
该网页界面围绕两个主要的 Flask 应用程序组件构建,它们协同工作以提供静态内容交付和动态 API 功能。
Flask 应用程序结构
Backend_Api 类扩展了基础 Api 类,并与 Flask 集成,提供 Web 特定功能。Website 类处理静态内容交付和前端路由。
来源:g4f/gui/server/backend_api.py47-84 g4f/gui/server/website.py36-68 g4f/gui/server/api.py24-39
该网页界面使用服务器发送事件(SSE)实现了实时对话流式传输,以提供响应式聊天功能。
流式响应处理
对话系统通过多个阶段处理传入请求
_prepare_conversation_kwargs() 方法从请求中提取模型、提供者、消息和其他参数_create_response_stream() 协调对话生成过程处理的主要响应类型
| 响应类型 | 描述 | 源类 |
|---|---|---|
内容 | 来自 AI 响应的文本内容 | str, MediaResponse |
提供者 | 提供者信息和模型详情 | ProviderInfo |
对话 | 对话状态和元数据 | JsonConversation |
错误 | 错误消息和异常处理 | 异常 |
推理 | 推理步骤和思考过程 | 推理 |
完成 | 完成状态和完成原因 | FinishReason |
用量 | 令牌用量和计费信息 | 用途 |
来源:g4f/gui/server/backend_api.py98-138 g4f/gui/server/api.py149-233 g4f/gui/server/api.py247-257
网页界面提供了全面的文件管理功能,包括上传、处理和基于存储桶的组织。
文件处理管道
文件管理系统支持多种文件类型和处理方法
支持的文件操作
| 操作 | 端点 | 方法 | 描述 |
|---|---|---|---|
| 上传文件 | /backend-api/v2/files/<bucket_id> | POST | 上传多个文件到存储桶 |
| 获取存储桶内容 | /backend-api/v2/files/<bucket_id> | GET | 流式传输存储桶内容和元数据 |
| 删除存储桶 | /backend-api/v2/files/<bucket_id> | DELETE | 删除整个存储桶及其内容 |
| 提供媒体 | /files/<bucket_id>/media/<filename> | GET | 从存储桶提供媒体文件 |
来源:g4f/gui/server/backend_api.py302-382 g4f/gui/server/backend_api.py383-393 g4f/tools/files.py
该网页界面通过专门的 API 端点公开了有关可用模型和提供者的全面信息。
模型信息结构
每个模型条目包含以下信息
| 字段 | 类型 | 描述 |
|---|---|---|
名称 | 字符串 | 模型标识符 |
图像 | 布尔值 | 支持图像生成 |
视觉 | 布尔值 | 支持图像输入/视觉 |
音频 | 布尔值 | 支持音频处理 |
视频 | 布尔值 | 支持视频处理 |
提供者 | 数组 | 兼容的提供者名称列表 |
提供者信息结构
提供者信息包括功能和身份验证要求
| 字段 | 类型 | 描述 |
|---|---|---|
名称 | 字符串 | 提供者类名 |
标签 | 字符串 | 人类可读的提供者名称 |
认证 | 布尔值 | 需要身份验证 |
login_url | 字符串 | 如果可用,提供身份验证 URL |
图像 | 数字 | 支持的图像模型数量 |
音频 | 数字 | 支持的音频模型数量 |
视频 | 数字 | 支持的视频模型数量 |
视觉 | 布尔值 | 支持视觉/图像输入 |
nodriver | 布尔值 | 使用浏览器自动化 |
来源:g4f/gui/server/api.py25-39 g4f/gui/server/api.py77-98 g4f/gui/server/backend_api.py68-81 g4f/gui/server/backend_api.py83-96
该网页界面提供用于管理身份验证凭据和系统配置的端点。
身份验证功能
该网页界面支持多种身份验证机制
.json 或 .har 文件配置管理
| 功能 | 端点 | 描述 |
|---|---|---|
| Cookie 上传 | /backend-api/v2/upload_cookies | 上传身份验证文件 |
| 内存管理 | /backend-api/v2/memory/<user_id> | 添加/检索对话记忆 |
| 聊天共享 | /backend-api/v2/chat/<share_id> | 共享和检索聊天会话 |
| 用量日志记录 | /backend-api/v2/usage | 记录用量统计数据 |
| 错误日志记录 | /backend-api/v2/log | 记录错误信息 |
来源:g4f/gui/server/backend_api.py425-436 g4f/gui/server/backend_api.py159-189 g4f/gui/server/backend_api.py438-466 g4f/gui/server/backend_api.py140-157
该网页界面实现了一个复杂的缓存系统,用于静态内容交付和性能优化。
缓存策略
静态内容系统实现了多个缓存层
DIST_DIR 在本地存在,则直接提供文件缓存键生成
缓存文件是使用包含以下内容的复合键生成的
YYYY-MM-DD 格式).html)来源:g4f/gui/server/website.py16-34 g4f/gui/server/website.py70-81 g4f/gui/server/website.py83-84