g4f 的 GUI 组件提供了一个基于网络的界面,通过用户友好的聊天体验与各种 AI 提供商进行交互。它提供了会话管理、文件上传、媒体生成和提供商选择等功能。本文档涵盖了 GUI 系统的架构、组件和功能。
g4f GUI 由一个 Flask Web 应用程序和基于 JavaScript 的前端组成,该前端与后端 API 进行通信。该 GUI 允许用户:
来源:g4f/gui/__init__.py11-33 g4f/gui/run.py9-23 g4f/gui/server/api.py26-52
该 GUI 采用客户端-服务器架构,包含以下关键组件:
客户端由 HTML 模板、JavaScript 和 CSS 组成,它们提供了交互式用户界面。
来源:g4f/gui/client/index.html1-346 g4f/gui/client/static/js/chat.v1.js1-622 g4f/gui/client/static/css/style.css1-243
服务器端由一个 Flask 应用程序组成,该应用程序提供 HTML 模板和用于与客户端通信的 API 端点。
来源:g4f/gui/server/api.py26-262 g4f/gui/server/backend_api.py42-204
GUI 提供了一个用户友好的界面,用于通过聊天界面与 AI 模型进行交互。
主界面包括:
![GUI 界面布局]
聊天界面以对话格式显示用户与 AI 之间的消息。它支持:
该实现使用 JavaScript 处理用户输入,向后端 API 发送请求,并渲染响应。
来源:g4f/gui/client/static/js/chat.v1.js49-185 g4f/gui/client/static/js/chat.v1.js216-289
GUI 支持上传和显示各种类型的媒体:
| 媒体类型 | 支持的格式 |
|---|---|
| 图像 | PNG、JPEG、GIF、WebP |
| 文档 | PDF、DOCX、TXT 等 |
| 音频 | MP3、WAV、OGG、M4A |
| 视频 | MP4、WebM、MKV |
用户可以通过文件选择器或将文件拖放到聊天界面来上传文件。
来源:g4f/gui/client/static/js/chat.v1.js290-452 g4f/image/copy_images.py83-154
后端 API 将 GUI 连接到提供商系统,并处理各种操作,包括:
后端 API 为 GUI 提供了多个端点:
| 端点 | 方法 | 描述 |
|---|---|---|
/backend-api/v2/models | GET | 获取可用模型 |
/backend-api/v2/providers | GET | 获取可用提供商 |
/backend-api/v2/conversation | POST | 处理会话请求 |
/backend-api/v2/files/<bucket_id> | GET/POST/DELETE | 管理上传的文件 |
/backend-api/v2/synthesize/<provider> | GET | 将文本转换为语音 |
/backend-api/v2/create | GET/POST | 直接创建内容 |
/backend-api/v2/version | GET | 获取版本信息 |
来源:g4f/gui/server/backend_api.py80-230 g4f/gui/server/api.py26-52
后端 API 通过以下方式处理会话请求:
来源:g4f/gui/server/backend_api.py112-147 g4f/gui/server/api.py114-225
后端 API 通过以下方式处理上传的媒体:
来源:g4f/gui/server/backend_api.py282-332 g4f/image/copy_images.py83-154
GUI 可以通过命令行界面启动,并支持各种配置选项:
g4f gui [options]
| 选项 | 描述 |
|---|---|
--host | 绑定的主机名(默认:0.0.0.0) |
--port | 监听端口(默认:8080) |
--debug | 启用调试模式 |
--ignore-cookie-files | 不读取 .har 和 cookie 文件 |
--ignored-providers | 要忽略的提供商列表 |
--cookie-browsers | 要从中访问 cookie 的浏览器列表 |
来源:g4f/cli.py38-80 g4f/gui/gui_parser.py1-16
聊天界面提供与 AI 模型的实时对话体验。主要功能包括:
来源:g4f/gui/client/static/js/chat.v1.js65-146 g4f/gui/client/static/js/chat.v1.js573-622
用户可以根据自身需求从各种提供商和模型中进行选择:
GUI 会根据所选提供商动态更新可用模型。
来源:g4f/gui/client/static/js/chat.v1.js735-805 g4f/gui/server/api.py28-64
GUI 允许用户:
来源:g4f/gui/client/static/js/chat.v1.js491-502 g4f/gui/client/qrcode.html66-101
二维码功能允许用户通过以下方式分享会话:
来源:g4f/gui/client/qrcode.html31-152 g4f/gui/server/backend_api.py74-78
该 GUI 使用以下技术构建:
GUI 通过以下方式与提供商系统集成:
来源:g4f/gui/server/api.py114-214 g4f/Provider/OpenaiChat.py90-174 g4f/Provider/PollinationsAI.py33-64
g4f GUI 提供了一个灵活且用户友好的界面,用于与各种 AI 提供商进行交互。它提供了聊天、媒体处理、会话管理和提供商选择等功能。模块化架构便于扩展和定制,使其成为通过统一界面访问不同 AI 服务的通用工具。