アーティファクトに永続的なJSONデータを保存できる設定

AIアーティファクトが単一のJSONファイルに永続データを保存できるようにするRailsコンソール設定の実装を謹んで提案します。もちろん、これはトピックの永久削除を有効にする設定と同様に、意図せず問題やリスクを導入する可能性があります⚠️そのため、Railsコンソール経由で有効にします。

AIアーティファクトは非常に有用で、議論の質を大いに向上させますが、単純なデータを永続的に保存し、単純な方法でそのデータを操作できれば、その有用性は3倍になる可能性があります👀

私個人のユースケース

私の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

私はすでにこの非常に強力な機能について考えています。サイト設定の背後に、現在のユーザーにバインドされたキーと値のペアのアーティファクトストレージを許可したいと考えています。

これにより、これを含む膨大なユースケースが解放されます。

「いいね!」 5

ああ、親愛なるサムさん、それはまさに救いの手ですね!

あなたの実装では、「現在にバインドされた」ユーザーは、保存されたデータを編集・閲覧できるのが一人だけという意味でしょうか?私はその点について尋ねています。なぜなら、あなたのやり方によっては、私のアプローチを変更しなければならないかもしれないからです。私のユースケースでは、そのデータは私と学生の両方が編集できるようにしたいのです。他のユーザーはそれを編集できないだけでなく、見ることさえできません。なぜなら、そのアーティファクトはその学生のプライベートカテゴリにあるからです。

「いいね!」 1

私は現在JS APIについて検討しているところですが、いずれにしてもデータエクスプローラーでデータにアクセスできるようになります。そこには表があり、内容は(ユーザーID、アーティファクトID、アーティファクトバージョン、キー、値、公開(bool))です。

この件についてしばらく考えさせてください。頭の中でいくつか大きな質問に答えようとしています。

  • 匿名のための公開スペース?はいまたはいいえ?制限は何ですか
  • アーティファクト経由でのすべてへの管理者アクセス?
  • 公開情報と非公開情報(例:投票)

ここに回答フォームとして展開します。

「いいね!」 3

永続的なデータとアーティファクトという考え方を少し拡張すると、各アーティファクトのJSONデータをわずかに変更するだけで、アーティファクトを「再利用」したり、新しく手動で登録したりできると素晴らしいでしょう。例えば:

すでに述べたように、私の生徒はそれぞれ独自のプライベートカテゴリを持っており、それは彼らが独自の教材とクイズを持っていることを意味します。今日、クイズアーティファクトを作成してみました。

クイズ作成の現在の方法

(トピックはウィキトピックとして作成されるため、生徒は実際に回答のチェックボックスを選択できます。)

アーティファクトのバージョン

これが役立つ理由は、うまく機能する1つの「クイズエンジン」(実際のミニプログラム)を用意し、別のJSONオブジェクトを使用することで、句動詞(または他のデータ)を置き換えることができるからです。つまり、コードは変更せずにデータが変更されるということです。ご理解いただければ幸いです。

「いいね!」 1