cgu2022 / cs-278-extension
Flarum 的 CS-278 扩展
v2.0.2
2024-06-08 03:14 UTC
Requires
- flarum/core: ^1.0
README
这是一个用于我的 CS 278 项目(2024 年春季)的 Flarum 扩展。
本扩展的所有相关文件都在第二部分中进行了说明,并且每个文件都包含有洞察力的注释。
- 安装说明
- CS 278 UniForum 扩展描述
- 安装 CS 278 扩展说明
- 开发 CS 278 扩展说明
安装说明
安装 OpenAI 社区的 PHP API 访问库
要安装必要的依赖项,请运行以下命令
composer require openai-php/client guzzlehttp/guzzle
注意:请确保您的系统已配置 PHP 版本 8.1 或更高版本,以便此操作能正常工作。
下载和配置 CA 证书*
*注意:如果您正在进行本地开发或没有合适的 SSL 签名,则需要执行此步骤。此步骤对于向 OpenAI 的 API 发送请求是必要的。
- 下载 CA 证书:
- 从此链接下载
cacert.pem
文件。
- 配置 PHP 以使用 CA 证书:
- 定位您的
php.ini
文件(您可以通过运行php --ini
来找到其位置)。 - 打开
php.ini
并添加或更新以下行,以便指向下载的cacert.pem
文件
curl.cainfo = "C:\path\to\your\cacert.pem"
- 保存
php.ini
文件并重新启动您的 web 服务器。
CS 278 UniForum 扩展描述
概述
UniForum 扩展:此扩展通过集成 OpenAI 的 GPT API 来增强 Flarum,生成讨论帖子的自动摘要。用户可以点击按钮请求会话摘要,然后将其显示出来,以通过提供对长篇讨论的简洁概述来改善用户体验。
文件结构
CS-278_EXTENSION
│ .gitignore
│ composer.json
│ extend.php
│ LICENSE
│ package-lock.json
│ README.md
│
├───js
│ ├───dist
│ │ admin.js
│ │ admin.js.map
│ │ forum.js
│ │ forum.js.map
│ │
│ └───src
│ ├───admin.js
│ └───forum.js
│
├───locale
│ en.yml
│
└───src
├───Api
│ ├───Serializer
│ │ SummarySerializer.php
│ │
│ ├───GenerateSummaryController.php
│ ├───api.php (empty)
│ └───extend.php (empty)
│
├───api.php
└───extend.php
文件摘要和文档
composer.json
描述:PHP 依赖项的 Composer 配置。
暴露:
- 定义扩展所需的 PHP 依赖项。
- 为
CGU2022\\CS278Extension
命名空间设置自动加载。
extend.php
描述:扩展 Flarum 功能的主要入口文件。
暴露:
- 注册由
GenerateSummaryController
处理的 POST 路由/generate-summary
。
api.php
描述:定义扩展的 API 端点。
暴露:
- 为 API 交互设置 POST 路由
/generate-summary
。
SummarySerializer.php
描述:序列化 GPT API 响应中的摘要数据。
暴露:
- 将摘要和完整的 GPT API 响应转换为 JSON API 格式。
GenerateSummaryController.php
描述:处理使用 GPT API 生成讨论摘要的请求。
暴露:
/generate-summary
端点的端点逻辑。- 收集讨论帖子并发送到 GPT API。
- 返回摘要和完整的响应。
js/src/admin.js
描述:注册扩展的管理员设置。
暴露:
- 在管理员面板中提供一个设置以输入 OpenAI API 密钥。
js/src/forum.js
描述:扩展讨论页面以添加“生成摘要”按钮。
暴露:
- 在讨论页面中添加一个按钮以触发摘要生成。
- 在生成摘要时显示加载指示器。
- 处理生成摘要的 API 请求。
安装 UniForum
要安装扩展,请运行以下命令
composer require cgu2022/cs-278-extension
当发布新版本时,更新扩展,请运行
composer update
注意:如果您正在使用 Docker 镜像部署您的 UniForum 实例,请不要直接使用上述命令。相反,将以下行添加到您的 docker_entrypoint.sh
文件中
extension require cgu2022/cs-278-extension
这确保了在Docker容器初始化过程中扩展被正确安装。
开发UniForum
一旦完成设置并熟悉了文件结构,您就可以开始开发UniForum。
-
准备环境:
- 在您的Flarum实例的根目录下创建一个名为"packages"的文件夹。
- 运行以下命令以设置Composer仓库并在开发模式下引入扩展
composer config repositories.0 path "packages/*" composer require cgu2022/cs-278-extension *@dev
-
安装JavaScript依赖:
- 导航到
js
文件夹并运行以下命令
npm install npm run dev
- 导航到
-
开发过程中:
- 每次您进行更改时:
- 重启Web服务器。
- 如有必要,运行
composer install
和npm install
。 - 通过再次运行
npm run dev
重新启动Node.js开发环境。 - 在Flarum管理员面板中禁用并重新启用此扩展以应用更改。
- 每次您进行更改时:
-
检查依赖项:
- 确保
composer.json
文件包含开发环境所需的所有依赖项和配置。
- 确保
-
贡献:
- 如果您对扩展有任何改进或错误修复,请随时提交拉取请求。欢迎贡献!