cgu2022 / cs-278-extension

Flarum 的 CS-278 扩展

安装: 26

依赖项: 0

建议: 0

安全性: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:flarum-extension

v2.0.2 2024-06-08 03:14 UTC

This package is auto-updated.

Last update: 2024-09-09 08:40:05 UTC


README

这是一个用于我的 CS 278 项目(2024 年春季)的 Flarum 扩展。

本扩展的所有相关文件都在第二部分中进行了说明,并且每个文件都包含有洞察力的注释。

  1. 安装说明
  2. CS 278 UniForum 扩展描述
  3. 安装 CS 278 扩展说明
  4. 开发 CS 278 扩展说明

安装说明

安装 OpenAI 社区的 PHP API 访问库

要安装必要的依赖项,请运行以下命令

composer require openai-php/client guzzlehttp/guzzle

注意:请确保您的系统已配置 PHP 版本 8.1 或更高版本,以便此操作能正常工作。

下载和配置 CA 证书*

*注意:如果您正在进行本地开发或没有合适的 SSL 签名,则需要执行此步骤。此步骤对于向 OpenAI 的 API 发送请求是必要的。

  1. 下载 CA 证书:
  1. 配置 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。

  1. 准备环境:

    • 在您的Flarum实例的根目录下创建一个名为"packages"的文件夹。
    • 运行以下命令以设置Composer仓库并在开发模式下引入扩展
    composer config repositories.0 path "packages/*"
    composer require cgu2022/cs-278-extension *@dev
  2. 安装JavaScript依赖:

    • 导航到js文件夹并运行以下命令
    npm install
    npm run dev
  3. 开发过程中:

    • 每次您进行更改时:
      • 重启Web服务器。
      • 如有必要,运行composer installnpm install
      • 通过再次运行npm run dev重新启动Node.js开发环境。
      • 在Flarum管理员面板中禁用并重新启用此扩展以应用更改。
  4. 检查依赖项:

    • 确保composer.json文件包含开发环境所需的所有依赖项和配置。
  5. 贡献:

    • 如果您对扩展有任何改进或错误修复,请随时提交拉取请求。欢迎贡献!

有用链接