Discourse AI + Data Explorer؟

مع ChatGPT 3.5، أحصل على نتائج غير متوقعة عند تقديم المخطط الكامل. على سبيل المثال، يحاول باستمرار العثور على مؤلف الموضوع في جدول topic_users.

أحصل على نتائج ناجحة من خلال تقييد المعلومات في المطالبة بالجدول والأعمدة المطلوبة فقط لكتابة الاستعلام. أيضًا، من خلال إضافة بعض المعلومات الإضافية حول كيفية استخدام الأعمدة. على سبيل المثال:

# اسم الجدول: user_actions
#
#  id              :integer          not null, primary key
#  action_type     :integer          not null (:like=>1,:was_liked=>2,:new_topic=>4,:reply=>5,:response=>6,:mention=>7,:quote=>9,:edit=>11,:new_private_message=>12,:got_private_message=>13,:solved=>15,:assigned=>16)
#  user_id         :integer          not null (المستخدم الذي سيتم نسب الإجراء إليه)
#  target_topic_id :integer
#  acting_user_id  :integer (المستخدم الذي نفذ الإجراء، على سبيل المثال، يمكن لمستخدم من الطاقم تنفيذ إجراء نيابة عن مستخدم عادي)
#  created_at      :datetime         not null

طريقة أخرى للنظر في جعل هذا يعمل مع إضافة Data Explorer هي جعل المستخدمين ملء نموذج يُنشأ ديناميكيًا يسرد البيانات التي يبحثون عنها، والشروط التي يريدون تطبيقها على البيانات. يمكن إنشاء المطالبة برمجياً بواسطة Discourse، ثم إرسالها إلى نموذج اللغة الكبير (LLM) لكتابة الاستعلام.

تعديل: @jordan-violet، قد تكون هذه نقطة انطلاق مفيدة. إليك مخطط جزئي مُعلق يعمل معي. يعمل بشكل جيد طالما أنني أقيد استعلاماتي بحيث يمكن الإجابة عليها من خلال المخطط المقدم. لقد أضفت تفاصيل إضافية إلى المخطط لتوضيح النقاط التي تبدو أنها تربك ChatGPT. العيب الواضح في هذا النهج هو أن المخطط المعلق بالكامل سيتجاوز حد الرموز (tokens) الخاص بـ ChatGPT 3.5. لقد قمت بتضمين بعض المعلومات في المخطط يمكن حذفها لتقليل عدد الرموز المستخدمة.

ملخص
# == Schema Information
#
# Table name: application_requests
#
#  id       :integer          not null, primary key
#  date     :date             not null
#  req_type :integer          not null ("http_total"=>0,"http_2xx"=>1,"http_background"=>2,"http_3xx"=>3,"http_4xx"=>4,"http_5xx"=>5,"page_view_crawler"=>6,"page_view_logged_in"=>7,"page_view_anon"=>8,"page_view_logged_in_mobile"=>9,"page_view_anon_mobile"=>10,"api"=>11,"user_api"=>12)
#  count    :integer          default(0), not null
#
# Table name: users
#
#  id                        :integer          not null, primary key
#  username                  :string(60)       not null
#  created_at                :datetime         not null
#  updated_at                :datetime         not null
#  name                      :string           (الاسم الحقيقي للمستخدم)
#  last_posted_at            :datetime
#  active                    :boolean          default(FALSE), not null
#  username_lower            :string(60)       not null
#  last_seen_at              :datetime
#  admin                     :boolean          default(FALSE), not null
#  trust_level               :integer          not null
#  approved                  :boolean          default(FALSE), not null
#  approved_by_id            :integer
#  approved_at               :datetime
#  previous_visit_at         :datetime
#  suspended_at              :datetime
#  suspended_till            :datetime
#  date_of_birth             :date
#  ip_address                :inet
#  moderator                 :boolean          default(FALSE)
#  title                     :string
#  locale                    :string(10)
#  primary_group_id          :integer
#  registration_ip_address   :inet
#  staged                    :boolean          default(FALSE), not null
#  first_seen_at             :datetime
#  silenced_till             :datetime
#
# Table name: topics
#
#  id                        :integer          not null, primary key
#  title                     :string           not null
#  last_posted_at            :datetime
#  created_at                :datetime         not null
#  updated_at                :datetime         not null
#  views                     :integer          default(0), not null
#  posts_count               :integer          default(0), not null
#  user_id                   :integer          (معرف المستخدم الذي أنشأ الموضوع)
#  last_post_user_id         :integer          not null (معرف المستخدم الذي أنشأ آخر منشور في الموضوع)
#  reply_count               :integer          default(0), not null
#  deleted_at                :datetime
#  highest_post_number       :integer          default(0), not null
#  like_count                :integer          default(0), not null
#  category_id               :integer
#  visible                   :boolean          default(TRUE), not null
#  moderator_posts_count     :integer          default(0), not null
#  closed                    :boolean          default(FALSE), not null
#  archived                  :boolean          default(FALSE), not null
#  bumped_at                 :datetime         not null
#  archetype                 :string           default("regular"), not null (يمكن تعيينه إما إلى "regular" أو "private_message")
#  slug                      :string
#  deleted_by_id             :integer          (معرف المستخدم الذي حذف الموضوع)
#  participant_count         :integer          default(1)
#  word_count                :integer
#  excerpt                   :string
#  highest_staff_post_number :integer          default(0), not null
#
# Table name: posts
#
#  id                      :integer          not null, primary key
#  user_id                 :integer          (معرف المستخدم الذي أنشأ المنشور)
#  topic_id                :integer          not null
#  post_number             :integer          not null (يحدد ترتيب المنشور داخل موضوعه)
#  raw                     :text             not null (محتوى المنشور)
#  created_at              :datetime         not null
#  updated_at              :datetime         not null
#  reply_to_post_number    :integer          (رقم المنشور الذي يُعد هذا المنشور ردًا عليه)
#  reply_count             :integer          default(0), not null
#  deleted_at              :datetime
#  like_count              :integer          default(0), not null
#  bookmark_count          :integer          default(0), not null
#  reads                   :integer          default(0), not null (عدد مرات قراءة المنشور)
#  post_type               :integer          default(1), not null (:regular=>1, :moderator_action=>2, :small_action=>3, :whisper=>4)
#  last_editor_id          :integer          (معرف المستخدم الذي قام بتحرير المنشور آخر مرة)
#  hidden                  :boolean          default(FALSE), not null
#  hidden_reason_id        :integer          (:flag_threshold_reached=>1,:flag_threshold_reached_again=>2,:new_user_spam_threshold_reached=>3,:flagged_by_tl3_user=>4,:email_spam_header_found=>5,:flagged_by_tl4_user=>6,:email_authentication_result_header=>7,:imported_as_unlisted=>8)
#  edit_reason             :string
#  word_count              :integer
#  wiki                    :boolean          default(FALSE), not null
#
# Table name: categories
#
#  id                                        :integer          not null, primary key
#  name                                      :string(50)       not null
#  topic_id                                  :integer          (معرف الموضوع المستخدم لوصف الفئة)
#  topic_count                               :integer          default(0), not null
#  created_at                                :datetime         not null
#  updated_at                                :datetime         not null
#  user_id                                   :integer          not null (معرف المستخدم الذي أنشأ الموضوع)
#  topics_year                               :integer          default(0)
#  topics_month                              :integer          default(0)
#  topics_week                               :integer          default(0)
#  slug                                      :string           not null
#  description                               :text
#  text_color                                :string(6)        default("FFFFFF"), not null
#  read_restricted                           :boolean          default(FALSE), not null
#  auto_close_hours                          :float
#  post_count                                :integer          default(0), not null
#  latest_post_id                            :integer
#  latest_topic_id                           :integer
#  position                                  :integer
#  parent_category_id                        :integer
#  posts_year                                :integer          default(0)
#  posts_month                               :integer          default(0)
#  posts_week                                :integer          default(0)
#  topics_day                                :integer          default(0)
#  posts_day                                 :integer          default(0)
#
# Table name: groups
#
#  id                                 :integer          not null, primary key
#  name                               :string           not null
#  created_at                         :datetime         not null
#  automatic                          :boolean          default(FALSE), not null
#  user_count                         :integer          default(0), not null
#  title                              :string
#  bio_raw                            :text             (وصف المجموعة)
#  allow_membership_requests          :boolean          default(FALSE), not null
#  full_name                          :string
#  visibility_level                   :integer          default(0), not null (من يمكنه رؤية المجموعة :public=>0, :logged_on_users=>1, :members=>2, :staff=>3, :owners=>4)
#  messageable_level                  :integer          default(0) (من يمكنه مراسلة المجموعة :public=>0, :logged_on_users=>1, :members=>2, :staff=>3, :owners=>4)
#  mentionable_level                  :integer          default(0) (من يمكنه ذكر المجموعة :public=>0, :logged_on_users=>1, :members=>2, :staff=>3, :owners=>4)
#  members_visibility_level           :integer          default(0), not null (من يمكنه رؤية أعضاء المجموعة :public=>0, :logged_on_users=>1, :members=>2, :staff=>3, :owners=>4)
#
# Table name: group_users
#
#  id                 :integer          not null, primary key
#  group_id           :integer          not null
#  user_id            :integer          not null
#  created_at         :datetime         not null
#
# Table name: user_actions
#
#  id              :integer          not null, primary key
#  action_type     :integer          not null (:like=>1,:was_liked=>2,:new_topic=>4,:reply=>5,:response=>6,:mention=>7,:quote=>9,:edit=>11,:new_private_message=>12,:got_private_message=>13,:solved=>15,:assigned=>16)
#  user_id         :integer          not null (المستخدم الذي سيتم نسب الإجراء إليه)
#  target_topic_id :integer
#  target_post_id  :integer
#  target_user_id  :integer          (على سبيل المثال، معرف المستخدم الذي تم الإعجاب بمنشوره)
#  acting_user_id  :integer          (المستخدم الذي نفذ الإجراء، على سبيل المثال، يمكن لمستخدم من الطاقم تنفيذ إجراء نيابة عن مستخدم عادي)
#  created_at      :datetime         not null
#  updated_at      :datetime         not null
#
# Table name: topic_views
#
#  topic_id   :integer          not null
#  viewed_at  :date             not null
#  user_id    :integer         (سيتم تعيينه إذا تم عرض الموضوع بواسطة مستخدم مسجل الدخول)
#  ip_address :inet            (سيتم تعيينه إذا تم عرض الموضوع بواسطة مستخدم مجهول)
#
# Table name: user_visits
#
#  id         :integer          not null, primary key
#  user_id    :integer          not null
#  visited_at :date             not null
#  posts_read :integer          default(0)
#  mobile     :boolean          default(FALSE) (سيتم تعيينه إلى TRUE إذا قام المستخدم بزيارة عبر جهاز محمول)
#  time_read  :integer          default(0), not null (القيمة المعادة هي عدد ثوانٍ الزيارة)

إليك رابطًا لجلسة دردشة جربت فيها ذلك: ChatGPT

إذا كنت ترغب في تجربة توسيع هذه القائمة، فإن أسهل طريقة للقيام بذلك هي نسخ المخطط من أسفل النموذج الذي تهتم به، مباشرةً من كود Discourse: discourse/app/models at main · discourse/discourse · GitHub.

3 إعجابات