允许在工件中存储持久JSON数据的设置

我恳请实现一个 rails console 设置,允许管理员启用 AI 工件存储持久数据到单个 JSON 文件的功能。当然,这可能会像启用永久删除主题的设置一样,无意中引入一些问题/风险——:warning: 因此,通过 rails console 启用它。

AI 工件非常有用,并且极大地提高了讨论质量,但是,如果它们能够永久存储简单数据并以简单的方式操作这些数据,它们的效用可以增加三倍👀

我的个人用例

我的 Discourse 实例用作 LMS(用于英语教育)以及用于我的 AI 科学研究实验的虚拟实验室。我的每个客户/学生都有自己的私有类别(通过他们的私有组授予访问权限),我们在此保存和跟踪所有内容(学习材料等)。我的研究的一小部分是弄清楚如何设计一个系统,该系统可以在给定学习者的“学习者传记”(如下面的屏幕截图所示)和某种知识图谱的情况下,成功且自主地为学习者创建教育内容(其余部分我暂时保密)。

我的意图是使用 Discourse API 从主题内容中获取该 JSON 数据(来自工件的学习者传记)(可能需要一些繁重的正则表达式),然后将其提供给我的认知架构,该架构是用 FastAPI 构建的,并且与反向代理运行在同一台服务器上。认知架构会发挥其魔力,然后为该学习者创建新内容,然后在该学习者的私有类别中创建一个包含该内容的新主题。

这是我所说的内容的快速而粗略的可视化:

    flowchart TD
    A[Discourse Instance<br/>LMS + AI Research Lab] --> B[Student Private Categories<br/>with Group Access Control]
    
    B --> C[Learner Biography<br/>stored in Topic Content<br/>JSON format]
    
    C --> D[Discourse API<br/>Fetch Topic Content]
    
    D --> E[Regular Expression<br/>Extract JSON Data]
    
    E --> F[Learner Biography<br/>Extracted Data]
    
    F --> G[FastAPI Cognitive Architecture<br/>Same Server + Reverse Proxy]
    
    H[Knowledge Graph<br/>Confidential Research Data] --> G
    
    G --> I[AI Content Generation<br/>Magic Happens Here ✨]
    
    I --> J[New Educational Content<br/>Personalized for Learner]
    
    J --> K[Create New Topic<br/>via Discourse API]
    
    K --> L[Content Posted to<br/>Student's Private Category]
    
    L --> M[Learning Materials<br/>Tracked & Saved]
    
    M --> N[Continuous Learning<br/>& Research Loop]
    
    N -.-> C
    
    style A fill:#e1f5fe
    style G fill:#f3e5f5
    style I fill:#fff3e0
    style L fill:#e8f5e8


技术上,所有这些都可以通过允许工件中的 http 来实现(而且更优雅),但我怀疑这比存储数据更危险。

:heart: 一旦我将这项技术全部调试好并经过彻底测试,我完全打算将其开源。


这个学习者传记工件工作得完美无缺,只是输入的数据在刷新页面后会消失🙈

数据字段在工件中的样子

3 个赞

我已经开始考虑这个超级强大的功能,在一个站点设置背后,我希望允许存储绑定到当前用户的键值对的工件。

这开启了大量的用例,包括这个。

6 个赞

哦,亲爱的萨姆先生,那真是天赐良机!

在您的实现中,“绑定到当前”用户是否意味着只有一个用户可以编辑/查看保存的数据?我之所以这样问,是因为根据您的做法,我可能需要改变我的方法。在我的用例中,我希望数据可以由我和学生共同编辑。没有其他用户能够编辑,甚至无法查看,因为该成果本身会在那个学生的私人类别中。

1 个赞

我目前正在研究JS API,但无论如何你始终可以通过数据探索器访问数据,因为它将以表格形式存在。(用户ID、工件ID、工件版本、键、值、公共(布尔))

让我稍作考虑,因为我脑海中有一大堆问题需要回答。

  • 匿名的公共空间?是或否?限制是什么
  • 管理员对所有内容的访问通过工件实现?
  • 公共与私人信息(例如:投票)

将在这里扩展答案形式。

3 个赞

在某种程度上扩展了关于工件中持久化数据的这个概念……如果我们能够通过对每个工件进行一些小的 JSON 数据修改来“重用”工件(或手动注册新工件),那就太好了。例如:

如前所述,我的每个学生都有自己的私人类别,这意味着他们有自己的材料和测验。今天我测试了创建一个测验工件。

制作测验的当前方法

(主题被创建为维基主题,以便学生可以实际选择他们的答案复选框。)

工件版本

之所以有用,是因为我们可以有一个运行良好的“测验引擎”(实际的小程序),然后仅通过使用不同的 JSON 对象来替换短语动词(或其他任何数据)。这样数据就会改变,但代码不会改变,如果这说得通的话。

1 个赞