Discourse AI + Data Explorer؟

قررت أنني أريد استعلامًا محددًا اليوم. وبما أنني لم أرغب في إزعاج مهندسي (كثيرًا)، قررت أن أطلب من ChatGPT كتابة استعلام مستكشف بيانات لي بناءً على ما كنت أعرفه، وما كنت أعرفه وأردته. لقد انبهرت حقًا لأنه حصل على كل شيء بشكل صحيح (باستثناء إضافة فاصلة منقوطة في النهاية لم يكن ينبغي لها ذلك).

إليك الاستعلام الذي بناه لي عندما أعطيته بعض المعلمات وطلبت منه بناء استعلام يمنحني إجماليًا تراكميًا لجميع المستخدمين حسب الشهر:

SELECT 
    timeframe "Month, Year",
    user_count as "Users Joined This Month",
    SUM(user_count) OVER (ORDER BY TO_DATE(timeframe, 'Month, YYYY'))::integer as "Users (Running Total)"
FROM (
    SELECT 
        TO_CHAR(u.created_at, 'Month, YYYY') as "timeframe",
        count(u.id) as "user_count"
    FROM 
        users u
    GROUP BY 
        timeframe
    ORDER BY
        timeframe
) subquery
ORDER BY 
    TO_DATE(timeframe, 'Month, YYYY')

هل تم النظر في دمج الذكاء الاصطناعي في منطقة مستكشف البيانات؟ :slight_smile:

12 إعجابًا

تم تقسيم منشور إلى موضوع جديد: هل يمكننا إعادة فتح الموضوع لمشاركة استعلامات المستكشف؟

هل يمكنك مشاركة الموجه، وإصدار ChatGPT، والنموذج المستخدم مع ChatGPT. :slightly_smiling_face:

على سبيل المثال


إصدار ChatGPT أغسطس 3
النموذج: GPT-3.5
الموجه

ما هو مستكشف بيانات Discourse؟

الإكمال

حتى آخر تحديث لي في سبتمبر 2021، لا توجد أداة أو منتج محدد يسمى “مستكشف بيانات Discourse” على حد علمي. ومع ذلك، يمكنني تقديم شرح عام بناءً على المعلومات المتاحة حتى تلك النقطة.

Discourse هو برنامج منتديات حديث مفتوح المصدر يسمح للمجتمعات عبر الإنترنت بإجراء المناقشات والتفاعلات. يُستخدم على نطاق واسع لاستضافة المناقشات، ومنتديات الأسئلة والأجوبة، ومجتمعات الدعم. يوفر Discourse مجموعة غنية من الميزات لإدارة المناقشات، وتفاعل المستخدمين، والإشراف.

يشير “مستكشف البيانات” عادةً إلى أداة أو ميزة تسمح للمستخدمين بالاستعلام عن البيانات واستكشافها داخل نظام أو منصة. غالبًا ما يُستخدم في سياق قواعد البيانات أو منصات تحليل البيانات.

بالنظر إلى المكونين، يمكن أن يكون “مستكشف بيانات Discourse” أداة افتراضية أو مكونًا إضافيًا يوفر للمستخدمين القدرة على استكشاف البيانات والاستعلام عنها داخل منتدى Discourse. قد يكون هذا مفيدًا لمسؤولي المجتمع أو محللي البيانات الذين يرغبون في الحصول على رؤى حول سلوك المستخدم، واتجاهات المحتوى، أو المقاييس الأخرى المتعلقة بالمناقشات التي تجري في المنتدى.

من المهم ملاحظة أن معلوماتي قد تكون قديمة، وقد تكون هناك تطورات جديدة قد حدثت بعد آخر تحديث لي. إذا كان “مستكشف بيانات Discourse” منتجًا أو ميزة حقيقية، فإنني أوصي بالبحث عن أحدث المعلومات للحصول على تفاصيل دقيقة حول قدراته واستخدامه.


السبب في السؤال هو أن لديك فكرة ممتازة وكان من الجيد رؤيتها مشتركة، ولكن في المستقبل قد يحاول الآخرون طرح موجه آخر، ويجب مشاركة الموجه والإكمال وتفاصيل ChatGPT إذا كانت هناك حاجة للمساعدة في فهم أي مشاكل.

ملاحظة: أنا مشرف فئة في منتدى OpenAI Discourse لذا لدي خبرة كبيرة مع أولئك الذين يسعون للمساعدة في موجهات ChatGPT. (مرجع)


يمكن العثور على إصدار ChatGPT في الجزء السفلي الأيمن أسفل المكان الذي يتم فيه إدخال الموجه

يمكن العثور على النموذج بالقرب من أعلى الصفحة في المنتصف

image

إعجاب واحد (1)

أنا… لا أحب هذا الروبوت.

إعجاب واحد (1)

تمديدًا لهذه الفكرة قليلاً، فإن السماح للمستخدمين بالتفاعل مع التطبيقات باستخدام اللغة الطبيعية هو تقريبًا حلمي فيما يتعلق بالذكاء الاصطناعي. مع Discourse ومكون Data Explorer الإضافي، قد يكون من الممكن الحصول على نتائج من مطالبات مثل “إرجاع قائمة بالمستخدمين الذين أبدوا اهتمامًا بالإشراف”. أو حتى أفضل، “إرسال دعوة إلى مجموعة community_moderation لجميع المستخدمين الذين أبدوا اهتمامًا بالإشراف”.

بالعودة إلى ما هو ممكن الآن:

من خلال الاختبار مع ChatGPT 3.0 و 3.5، حصلت على نتائج جيدة عند مطالبتها بإرجاع استعلام PostgreSQL ونسخ بنية الجداول التي أهتم بها في المطالبة. على سبيل المثال:

ملخص

أنا: قم بإرجاع استعلام postgresql يسرد جميع أسماء المستخدمين للمستخدمين الموجودين في مجموعة “community_moderators” لهيكل قاعدة البيانات التالي:

# == معلومات المخطط ==
#
# اسم الجدول: groups
#
#  id                                 :integer          not null, primary key
#  name                               :string           not null

# == معلومات المخطط ==
#
# اسم الجدول: group_users
#
#  id                 :integer          not null, primary key
#  group_id           :integer          not null

# == معلومات المخطط ==
#
# اسم الجدول: users
#
#  id                        :integer          not null, primary key
#  username                  :string(60)       not null

ChatGPT 3.5: بالتأكيد، إليك استعلام PostgreSQL يسرد جميع أسماء المستخدمين للمستخدمين الموجودين في مجموعة “community_moderators” بناءً على بنية قاعدة البيانات المقدمة:

SELECT u.username
FROM users u
JOIN group_users gu ON u.id = gu.user_id
JOIN groups g ON gu.group_id = g.id
WHERE g.name = 'community_moderators';

يسترجع هذا الاستعلام أسماء المستخدمين من جدول users عن طريق ربطه بجدول group_users بمعرف المستخدم ثم ربطه بجدول groups بمعرف المجموعة. يقوم بتصفية النتائج لتشمل فقط أسماء المستخدمين للمستخدمين الموجودين في مجموعة “community_moderators”.

أنا: إليك بنية جداول المواضيع والمنشورات في التطبيق:

# == معلومات المخطط ==
#
# اسم الجدول: topics
#
#  id                        :integer          not null, primary key
#  title                     :string           not null

# == معلومات المخطط ==
#
# اسم الجدول: posts
#
#  id                      :integer          not null, primary key
#  user_id                 :integer
#  topic_id                :integer          not null
#  post_number             :integer          not null
#  raw                     :text             not null

قم بإرجاع استعلام يسرد جميع معرفات المواضيع، ومعرفات المنشورات، وأسماء المستخدمين لجميع المنشورات التي أنشأها أعضاء مجموعة “community_moderators” والتي تشير إلى اهتمام الناشر بكيفية الإشراف على المناقشات المستقطبة.

ChatGPT 3.5: لتحقيق ذلك، ستحتاج إلى ربط جداول posts و topics و users و group_users بناءً على المخطط المقدم. إليك استعلام PostgreSQL يسترجع المعلومات المطلوبة:

SELECT t.id AS topic_id, p.id AS post_id, u.username
FROM posts p
JOIN topics t ON p.topic_id = t.id
JOIN users u ON p.user_id = u.id
JOIN group_users gu ON u.id = gu.user_id
JOIN groups g ON gu.group_id = g.id
WHERE g.name = 'community_moderators'
  AND (p.raw ILIKE '%moderate%' OR p.raw ILIKE '%polarizing%' OR p.raw ILIKE '%discussion%');

يسترجع هذا الاستعلام topic_id و post_id و username لجميع المنشورات التي أنشأها أعضاء مجموعة “community_moderators” والتي تحتوي على كلمات مفتاحية معينة تشير إلى اهتمام بالإشراف على المناقشات المستقطبة. يتم استخدام عامل التشغيل ILIKE لمطابقة الأنماط غير الحساسة لحالة الأحرف في عمود raw في جدول posts.

يرجى ملاحظة أن هذا الاستعلام يفترض أن الكلمات المفتاحية التي قدمتها تشير إلى المنشورات المطلوبة. قد تحتاج إلى تعديل أو توسيع الكلمات المفتاحية بناءً على معاييرك المحددة.

أنا: اكتب استعلامًا يُرجع عدد المنشورات التي تم إنشاؤها في كل فترة أسبوعية منذ سبتمبر 2022، والتي أنشأها أعضاء مجموعة community_moderators والتي تشير إلى اهتمام بكيفية الإشراف على المناقشات المستقطبة.

ChatGPT 3.5: لتحقيق ذلك، يمكنك استخدام استعلام PostgreSQL التالي لإرجاع عدد المنشورات التي تم إنشاؤها في كل فترة أسبوعية منذ سبتمبر 2022، والتي أنشأها أعضاء مجموعة “community_moderators” والتي تشير إلى اهتمام بكيفية الإشراف على المناقشات المستقطبة:

SELECT
    DATE_TRUNC('week', p.created_at) AS week_start,
    COUNT(p.id) AS post_count
FROM
    posts p
JOIN
    users u ON p.user_id = u.id
JOIN
    group_users gu ON u.id = gu.user_id
JOIN
    groups g ON gu.group_id = g.id
WHERE
    g.name = 'community_moderators'
    AND (p.raw ILIKE '%moderate%'
         OR p.raw ILIKE '%polarizing%'
         OR p.raw ILIKE '%political%'
         OR p.raw ILIKE '%contentious%'
         OR p.raw ILIKE '%debate%'
         OR p.raw ILIKE '%controversial%'
         OR p.raw ILIKE '%discussion%')
    AND p.created_at >= '2022-09-01' -- تاريخ البدء: سبتمبر 2022
GROUP BY
    week_start
ORDER BY
    week_start;

يقوم هذا الاستعلام بحساب عدد المنشورات التي أنشأها أعضاء مجموعة “community_moderators” والتي تحتوي على الكلمات المفتاحية المحددة في كل فترة أسبوعية منذ سبتمبر 2022. يقوم بتجميع النتائج حسب الأسبوع وترتيبها زمنيًا. يرجى التأكد من تعديل أسماء الأعمدة وعلاقات الجداول بناءً على مخطط قاعدة البيانات الفعلي الخاص بك.


تبدو النتائج جيدة بالنسبة لي وتمثل أنواع الاستعلامات التي استغرقت مني وقتًا طويلاً لكتابتها في الماضي. أفترض أنه سيكون من الممكن تدريب نموذج على بنية قاعدة بيانات Discourse بحيث يمكن ترك التفاصيل حول البنية خارج المطالبات.

4 إعجابات

أوه هذا رائع، لقد كانت لدي نتائج متباينة مع استعلامات مستكشف بيانات ChatGPT SQL ولكن القيام بذلك بهذه الطريقة منطقي للغاية. لم أفكر حتى في تقديم بنية الجدول وطلب استعلامات PostgreSQL. :woman_facepalming:t2: شكراً على النصيحة @simon :slight_smile:

إعجاب واحد (1)

هل هناك أي مكان يمكنني فيه رؤية مخطط كامل لقواعد بيانات discourse؟

إعجاب واحد (1)

مرحباً @so-jordan-violet، أنا فقط أستخدم أداة الجدول القابل للطي (لا أعرف ما اسمها! هههه) على الجانب الأيمن في واجهة تحرير استعلام مستكشف البيانات:

إعجابَين (2)

إذا تمكنا من الحصول على مستند نصي (خاصة إذا كان بتنسيق sql create table) يمكننا تقديمه كتعليمات والحصول على نتائج موثوقة للغاية على الأرجح.

إعجاب واحد (1)

نعم، لدينا هذا البند في قائمة مهام فريق الذكاء الاصطناعي منذ أوائل هذا العام. الفكرة هي استيعاب مخطط Discourse بالكامل (أو الجزء المهم منه) في المطالبة للسماح له بإنشاء أي استعلامات.

لقد كنا نبني GitHub - discourse/data-explorer-examples: Examples for Discourse Data Explorer للمساعدة في تقديم أمثلة للنموذج، حتى يتمكن من أن يكون أفضل تأصيلاً.

7 إعجابات

أتمنى لو كان لدي المزيد من الوقت لتصفح قاعدة التعليمات البرمجية، ولكن هل لديك لغة الاستعلامات المهيكلة (SQL) مخزنة في مكان ما (بشكل عام) لمخططات جدول crest؟

أنا أقوم ببعض أعمال نماذج اللغة الكبيرة (LLM) مع منتجي/شركتي الخاصة الآن وأود أن ألعب بهذا.

إعجاب واحد (1)

أوه هذا رائع. شكراً على الرابط يا فالكو! :slight_smile:

3 إعجابات

أنا فقط أقوم بإنشاء هذا مباشرة من المخطط

شيء مثل هذا يجب أن يبدأك:


لقد كنت أستكشف جميع أنواع الأساليب لتشغيل هذا. مشكلة واحدة مع ذلك هي أن GPT 3.5 قابل للتوجيه لدرجة أنه يربك.

إعطاؤه المخطط يساعد بالتأكيد، ولكني أجد أنني بحاجة إلى أن أكون استراتيجيًا للغاية مع الأمثلة.

مجرد إخباره بقصة حول “كيفية حساب المواضيع المؤرشفة لمستخدم” يؤدي إلى توجيه استعلام مثل “كم عدد المشاركات التي كان لدى المستخدم” نحو المواضيع المؤرشفة.

كنت أفكر:

graph TD
A[إضافة معلومات عامة مفيدة] --> B[إنشاء تضمينات للسؤال]
B --> C[إجراء بحث تشابه عبر الأمثلة]
C --> D[إضافة 3 أمثلة إلى المطالبة]
D --> E[إضافة المخطط إلى المطالبة]
E --> F[طرح السؤال]
F --> G[الحصول على SQL]

لكن اتضح أنه ما لم تكن الأمثلة رائعة ولم تقم بتضمين أي أمثلة مضادة … تصبح الأمور سيئة.

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

5 إعجابات

هل لديك مخطط كامل يوضح أنواع البيانات؟

لست متأكدًا مما إذا كان يناسب ميزانية الرموز، سأحاول

With ChatCPT 3.5 I’m getting unexpected results when I provide the full schema. For example, it keeps trying to find the topic author in the topic_users table.

I get successful results by limiting the information in the prompt to the tables and columns that are required to write the query. Also by adding some additional information about how the columns are used. For example:

# 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 (the user who is to be credited with the action)
#  target_topic_id :integer
#  acting_user_id  :integer (the user who performed the action, for example, a staff user can perform an action on behalf of a regular user)
#  created_at      :datetime         not null

Another way to look at getting this to work with the Data Explorer plugin would be to have users fill out a dynamically generate form that lists the data they are looking for, and what conditions they want to apply to the data. The prompt could be generated programmatically by Discourse, then sent to the LLM to have the query written.

Edit: @jordan-violet, this might be a useful starting point. Here’s an annotated partial schema that’s working for me. It works well as long as I limit my queries so that they can be answered by the provided schema. I’ve added additional details to the schema to clarify details that seem to confuse ChatGPT. The obvious downside of this approach is that a fully annotated schema will exceed ChatGPT 3.5’s token limit. I’ve included some information in the schema that could be omitted to reduce the number of tokens that are used.

Summary
# == 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           (the user's real name)
#  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          (the id of the user who created the topic)
#  last_post_user_id         :integer          not null (the id of the user who created the last post in the topic)
#  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 (can be set to either "regular" or "private_message")
#  slug                      :string
#  deleted_by_id             :integer          (the id of the user who deleted the topic)
#  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          (the id of the user who created the post)
#  topic_id                :integer          not null
#  post_number             :integer          not null (indicates the post's order in its topic)
#  raw                     :text             not null (the post's content)
#  created_at              :datetime         not null
#  updated_at              :datetime         not null
#  reply_to_post_number    :integer          (the post_number that the post is a reply to)
#  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 (the number of times the post has been read)
#  post_type               :integer          default(1), not null (:regular=>1, :moderator_action=>2, :small_action=>3, :whisper=>4)
#  last_editor_id          :integer          (the id of the user who last edited the post)
#  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          (the id of the topic that is used for the category's description)
#  topic_count                               :integer          default(0), not null
#  created_at                                :datetime         not null
#  updated_at                                :datetime         not null
#  user_id                                   :integer          not null (the id of the user who created the topic)
#  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             (the group's description)
#  allow_membership_requests          :boolean          default(FALSE), not null
#  full_name                          :string
#  visibility_level                   :integer          default(0), not null (who can see the group :public=>0, :logged_on_users=>1, :members=>2, :staff=>3, :owners=>4)
#  messageable_level                  :integer          default(0) (who can message the group :public=>0, :logged_on_users=>1, :members=>2, :staff=>3, :owners=>4)
#  mentionable_level                  :integer          default(0) (who can mention the group :public=>0, :logged_on_users=>1, :members=>2, :staff=>3, :owners=>4)
#  members_visibility_level           :integer          default(0), not null (who see the group's members :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 (the user who is to be credited with the action)
#  target_topic_id :integer
#  target_post_id  :integer
#  target_user_id  :integer          (for example, the id of the user whose post was liked)
#  acting_user_id  :integer          (the user who performed the action, for example, a staff user can perform an action on behalf of a regular user)
#  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         (will be set if the topic was viewed by a logged in user)
#  ip_address :inet            (will be set if the topic was viewed by an anonymous user)
#
# 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) (will be set to TRUE if the user visited on a mobile device)
#  time_read  :integer          default(0), not null (the value returned is the number of seconds of the visit)

Here’s a link to a chat session where I tried it out: https://chat.openai.com/share/d108c104-3aa3-45d9-9161-6da21d5b3a77

If you want to try expanding on this list, the easiest way to do it is to copy the schema from the bottom of the model you’re interested in, directly from the Discourse code: discourse/app/models at main · discourse/discourse · GitHub.

3 إعجابات

سيكون من الرائع الحصول على هذا بالضبط، ولكن قائمة شاملة بكل جدول. من أين حصلت على هذا؟

تعديل: آه، أرى الرابط الخاص بك في الأسفل، آسف. ربما لن يكون لدي الوقت لتجميعها كلها. كنت آمل أن يكون هناك مخطط SQL رئيسي في مكان ما :confused:

المشكلة هي أن مجرد تقديم المخطط لا يوفر معلومات كافية لـ ChatGPT. تحتاج إلى تزويده بتفاصيل حول أشياء مثل:

  • ما الذي تمثله رموز الأعداد الصحيحة req_type في application_requests
  • ما هو الغرض من عمود user_id في topics
  • ما الذي تمثله رموز action_type في جدول user_actions وما هو الفرق بين أعمدة user_id و target_user_id و acting_user_id في هذا الجدول

مع هذه الأنواع من التفاصيل، يبدو أن GPT 3.5 يقوم بعمل جيد دون أي تدريب إضافي. تصبح المشكلة بعد ذلك أن تقديم هذا المستوى من التفاصيل حول قاعدة البيانات بأكملها سيؤدي إلى تجاوز الحد الأقصى لرموز ChatGPT (4096 رمزًا، بما في ذلك نص المطالبة والمخرجات التي تم إنشاؤها). إذا تم استخدام هذا النوع من النهج، فستكون هناك حاجة إلى طريقة لتحديد ما يتم إرساله في المطالبة بناءً على المعلومات التي أراد المستخدم الحصول عليها من استعلام مستكشف البيانات.

إعجاب واحد (1)

لم تكن هذه تجربتي على الإطلاق. لقد حظيت بتجربة ممتعة للغاية معها هذا المساء. سأشارك بعض النتائج لاحقًا.

إنها تمنحني شعورًا بالدور الكفء، ولكنه مستوى مبتدئ/مبتدئ جدًا. إنها تقرب الأمور، وأخبرها بما فعلته بشكل خاطئ، وتقوم بإصلاحه. كرر.

أنا أستمتع حقًا بما تقدمه لي، والوقت الذي توفره لي بناءً على استخدامي الليلة.

إعجاب واحد (1)

GPT 3.5 يقوم بـ 16 ألفًا بشكل جيد اليوم

تبدأ المشاكل في الظهور عندما تكون الطلبات معقدة، مع مراعاة الحالات الاستثنائية وما إلى ذلك

إعجاب واحد (1)