Discourse AI + Data Explorer؟

كان ذلك فشلاً ذريعاً. :fire:

استخدام Discourse AI - AI Bot

الموجه (Prompt)

أنشئ صورة لهذا الاستعلام SQL

```
WITH pairs AS (
SELECT p.user_id liked, pa.user_id liker
FROM post_actions pa
LEFT JOIN posts p ON p.id = pa.post_id
WHERE post_action_type_id = 2
)
SELECT liker liker_user_id, liked liked_user_id, count(*)
FROM pairs
GROUP BY liked, liker
ORDER BY count DESC
LIMIT :limit
```

الإكمال (Completion)

3 إعجابات

للعلم فقط

بالأمس بدافع الفضول أجريت بحثًا على جوجل مشابهًا لهذا البحث:

SQL تم إنشاؤه بواسطة الذكاء الاصطناعي من اللغة الإنجليزية

للعثور على معلومات ذات صلة حول إنشاء SQL باستخدام الذكاء الاصطناعي من أسئلة باللغة الإنجليزية. كنت آمل في قائمة بأوراق بحثية مدرجة في القائمة، لكن القائمة كانت في الغالب قائمة بتطبيقات. أحد الأنماط التي رأيتها بسرعة للعديد من التطبيقات المدرجة، ولكن ليس كلها، بعد النظر إلى عدد قليل من العروض التوضيحية على هذه المواقع، كان أنها كانت تأخذ أداتها الحالية التي تسمح للمستخدم بتحديد الجداول والحقول لإنشاء عبارة SQL مشابهة للطريقة التي عمل بها مُنشئ SQL الرسومي في Microsoft Access كنقطة انطلاق، بمعنى آخر، لم يبدأ المرء بسؤال باللغة الإنجليزية ولكن كان عليه تحديد الجداول وأحيانًا الحقول أولاً قبل إدخال السؤال باللغة الإنجليزية. في حين أنني لن أعتبر ذلك غشًا، إلا أنه يعني أنه لاستخدام هذا الذكاء الاصطناعي، يجب أن يكون لدى المستخدم بعض المعرفة بـ SQL، وتحديدًا معنى الجدول والحقل لكي تعمل الأداة.

إعجابَين (2)

@simon

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

ومع ذلك، أعتقد أنها تحتاج إلى المزيد. ورقة بحثية حديثة قرأتها، مرة أخرى ليست رسمية، ولكنها تتعمق أكثر في هذا الاتجاه هي:

“ChatLogo: واجهة لغة برمجة طبيعية هجينة مدفوعة بنموذج لغوي كبير للنمذجة والبرمجة القائمة على الوكيل” بقلم جون تشين وأوري ويلنسكي (pdf)

بعض النقاط الرئيسية التي استخلصتها كانت:

  1. دعم المبرمجين المبتدئين لـ “التحدث إلى أجهزة الكمبيوتر” بمزيج من لغات البرمجة واللغات الطبيعية.
  2. توفير واجهة أكثر ودية للمتعلمين الذين ليس لديهم خلفية في علوم الكمبيوتر أو لديهم القليل منها للتعبير عن أنفسهم بشكل إبداعي عن طريق برمجة أجهزة الكمبيوتر.
  3. بدلاً من كتابة التعليمات البرمجية وتقديم التعليمات على الفور، يحاول ChatLogo توضيح احتياجات المتعلم ونواياه.
  4. بدلاً من إرسال أجزاء كبيرة من التعليمات البرمجية مباشرة إلى المتعلم، فإنه يحاول تطوير تعليمات NetLogo البرمجية بشكل مشترك. المتعلم حر في تعديل التعليمات البرمجية: إما في NetLogo، أو باللغات الطبيعية من خلال ميزة “Ask”.
  5. بدلاً من المبالغة في صحة التعليمات البرمجية، فإنه يعترف بإمكانية ارتكاب الأخطاء، ويعمل بشكل مشترك مع المتعلم لمعالجة المشكلات المحتملة.

لم أتمكن من العثور على أي شفرة مصدر أو مزيد من التفاصيل حول كيفية بناء Chat فوق NetLogo أو التفاعل معه، ولكن الأفكار وحدها ذات قيمة.

هذا يذكرني مرة أخرى بكيفية عمل الطيار الآلي في الطائرات والكتاب الذي أشرت إليه سابقًا. (ref) عندما أشير إلى الطيار الآلي، لا تفكر في مفتاح تشغيل/إيقاف ثنائي، فكر في جميع المقابض والمفاتيح التي توفر معلومات للطيار الآلي وتخبره بما يجب فعله وما لا يجب فعله.

بينما يبدو أن العديد من الأدوات الأخرى مثل هذه تحب استخدام كلمة copilot، على سبيل المثال، بحث Google llm copilot source code، فإنني أميل إلى الاختلاف مع هذا القياس ولكن سأضطر إلى التعايش معه لأنه بهذه الطريقة يتم العثور على الأفكار ذات الصلة.

إعجابَين (2)

لقد حذفته لأنني اعتقدت أنني وجدت طريقة أفضل للتعامل مع المشكلة - لماذا أكتب كل هذه الجداول عندما يمكن ببساطة أن يُطلب من ChatGPT تحليل ملف مستضاف على الإنترنت يحتوي على معلومات مفصلة حول قاعدة البيانات بأكملها؟ اتضح أن هناك مشاكل تقنية مع هذا النهج. لذا عدت إلى ما اقترحته في المنشور المحذوف. على أي حال، سيتعين إنشاء أوصاف للجداول، واستعلامات مثال، وما إلى ذلك. إنها مجرد مسألة كيفية نقل هذه المعلومات إلى LLM. إليك الوضع الحالي مع GPT-4:

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

إليك تفصيل للخطوات:

  1. تفسير السؤال: يطرح المستخدم سؤالاً باللغة الطبيعية، والذي أقوم بتفسيره لفهم المعلومات المطلوبة.
  2. تحديد الجدول: بناءً على السؤال وقائمة بجميع الجداول في قاعدة بيانات Discourse، أحدد الجداول الأكثر احتمالاً لأن تكون ذات صلة بالاستعلام.
  3. معلومات مفصلة عن الجدول: ترسل لي Discourse أوصافًا مفصلة للجداول ذات الصلة، بما في ذلك جميع الأعمدة واستعلامات المثال.
  4. إنشاء الاستعلام: باستخدام معلومات الجدول التفصيلية، أقوم بإنشاء استعلام SQL يجيب على سؤال المستخدم.

يستفيد هذا النهج من قدرتي على فهم اللغة الطبيعية وربطها باستعلامات البيانات المنظمة. كما أنه يستفيد بشكل جيد من معلومات الجدول التفصيلية التي توفرها Discourse.

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

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

بالنسبة للنهج البديلة المقترحة في الفقرتين الأخيرتين، أتجاهل الأول، ولكن إذا لم يؤد ما أحاوله إلى نتائج موثوقة، فقد يكون شيئًا يمكن لفريق Discourse النظر فيه.

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

لذا عدت إلى كتابة أوصاف لجميع الجداول في قاعدة بيانات Discourse. أنا أعرف الآن الغرض من جدول allowed_pm_users. جدول ar_internal_metadata محير بعض الشيء، ولكني أعتقد أنه يمكن تجاهله في الوقت الحالي.

إعجابَين (2)

هذا هو خياري المفضل حتى الآن، على الرغم من صعوبة تنفيذه. وبالتالي، فقد خمنت، ورقة أخرى. مرة أخرى، هذه ليست ورقة موثوقة حيث توجد العديد من الأساليب المماثلة.

“DiagGPT: روبوت محادثة يعتمد على LLM مع إدارة مواضيع تلقائية للحوار الموجه نحو المهام” بقلم لانغ كاو (pdf)

فقط استبدل المعلومات الطبية بمعلومات PostgreSQL حسب الحاجة. الجزء الجميل هو أن الورقة تقدم المطالبات وتقترح الأداة التي يجب استخدامها مع الوكلاء.

النزول في جحر الأرنب. (انقر على المثلث للدخول)

بما أن “الحوار الموجه نحو المهام” هو ما يبدو أنه مطلوب.
بحث جوجل: حوار موجه نحو المهام
نتيجة البحث تشمل: أوراق برمجية - أنظمة الحوار الموجه نحو المهام
إدخال لوحة المتصدرين هو T5-3b(UnifiedSKG) والذي يتضمن رابطًا للورقة
“UnifiedSKG: توحيد وتعدد المهام لربط المعرفة المنظمة بنماذج اللغة من نص إلى نص” بقلم تيانباو شي، تشين هنري وو، بنغ شي، روي تشي تشونغ، تورستن شولاك، ميتشيهيرو ياسوناغا، تشين شيانغ وو، مينغ تشونغ، بنغ تشنغ ين، سيدا آي. وانغ، فيكتور تشونغ، بايلين وانغ، تشينغ تشو لي، كونور بويل، أنسونغ ني، زي يو ياو، دراغومير راديف، كايمينغ شيونغ، لينغ بينغ كونغ، روي تشانغ، نواه إيه. سميث، لوك زيتيموير، وتاو يو (pdf)

لاحظ هذا
image

:slightly_smiling_face:


تعديل

من https://python.langchain.com/

إنشاء وكيل SQL من LLM وأدوات. (مرجع)

يسرد القليل في أسفل الصفحة، يجب النظر في هذا

حالة الاستخدام

غالبًا ما يتم تخزين بيانات المؤسسة في قواعد بيانات SQL.

تجعل نماذج اللغة الكبيرة من الممكن التفاعل مع قواعد بيانات SQL باستخدام اللغة الطبيعية.

تقدم LangChain سلاسل ووكلاء SQL لبناء وتشغيل استعلامات SQL بناءً على مطالبات اللغة الطبيعية.

هذه متوافقة مع أي لهجة SQL مدعومة من SQLAlchemy (مثل MySQL، PostgreSQL، Oracle SQL، Databricks، SQLite).

تمكن حالات الاستخدام مثل:

  • إنشاء استعلامات سيتم تشغيلها بناءً على أسئلة اللغة الطبيعية
  • إنشاء روبوتات محادثة يمكنها الإجابة على الأسئلة بناءً على بيانات قاعدة البيانات
  • بناء لوحات معلومات مخصصة بناءً على الرؤى التي يرغب المستخدم في تحليلها

تعديل (2023/08/23)

Spider هو مجموعة بيانات واسعة النطاق معقدة ومتعددة المجالات للتحليل الدلالي والنص إلى SQL تم تعليقه من قبل 11 طالبًا في ييل. الهدف من تحدي Spider هو تطوير واجهات لغة طبيعية لقواعد بيانات متعددة المجالات. تتكون من 10181 سؤالًا و 5693 استعلام SQL معقدًا فريدًا على 200 قاعدة بيانات تحتوي على جداول متعددة تغطي 138 مجالًا مختلفًا. في Spider 1.0، تظهر استعلامات SQL معقدة وقواعد بيانات مختلفة في مجموعات التدريب والاختبار. للنجاح فيه، يجب على الأنظمة التعميم بشكل جيد ليس فقط على استعلامات SQL الجديدة ولكن أيضًا على مخططات قواعد البيانات الجديدة.


تعديل (2024/08/24)

Dataherald هو محرك من اللغة الطبيعية إلى SQL تم بناؤه للإجابة على الأسئلة على مستوى المؤسسة حول البيانات المنظمة. يسمح لك بإعداد واجهة برمجة تطبيقات من قاعدة بياناتك يمكنها الإجابة على الأسئلة باللغة الإنجليزية البسيطة.

كما أقول للآخرين غالبًا، بالنسبة لبعض الأشياء في الحياة، عليك فقط الانتظار وسيقوم شخص ما بالعمل نيابة عنك مجانًا.

إعجابَين (2)

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

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

لدينا الآن شخصية مساعد SQL كجزء من وحدة روبوت الذكاء الاصطناعي، وهي مصممة خصيصًا لهذا النوع من الطلبات ويمكن أن تكون مفيدة جدًا لإنشاء استعلامات مستكشف البيانات. :rocket:

(على الرغم من أنه من المفيد التحقق منها مرة أخرى :slight_smile:)

هل يوجد موضوع يمكن نشر أمثلة فيه لاستخدام روبوت الذكاء الاصطناعي SQL Helper؟

إذا لم يكن الأمر كذلك، فقد يكون من الجيد إنشاء مثل هذا الموضوع ثم إضافة رابط إليه هنا، حيث قد يبحث الآخرون عن أمثلة ويجدون هذا الموضوع أولاً.

أعتقد أنه إذا توصلت إلى شيء يستحق المشاركة مع المجتمع، فيمكنك وضعه في موضوع جديد في Data & reporting. هناك أيضًا زر جديد ‘مشاركة المحادثة’ قد يكون مفيدًا لهذا الغرض - Share Your AI Bot Conversations!

إنشاء استعلام لتحديد مؤلفي الإضافات AI

JammyDodger:

مرحباً بيرت :slight_smile:

هل يمكنك كتابة استعلام لي للعثور على جميع المستخدمين في مجموعة plugin_authors؟

gpt4_bot:

البحث في مخطط قاعدة البيانات

groups, group_users, users

الآن بعد أن أصبح لدينا مخطط للجداول ذات الصلة، يمكننا كتابة استعلام للعثور على جميع المستخدمين في مجموعة ‘plugin-authors’. بناءً على المخطط، سنحتاج إلى ربط جدول group_users بجدولي groups و users للحصول على أسماء المستخدمين لأعضاء مجموعة ‘plugin-authors’.

إليك الاستعلام للعثور على جميع المستخدمين في مجموعة ‘plugin-authors’:

SELECT u.id AS user_id, u.username
FROM users u
JOIN group_users gu ON gu.user_id = u.id
JOIN groups g ON g.id = gu.group_id
WHERE g.name = 'plugin_authors'

يقوم هذا الاستعلام بتحديد معرف المستخدم واسم المستخدم من جدول users عن طريق الربط بجدول group_users على user_id ثم الربط بجدول groups على group_id. يقوم بتصفية النتائج لتشمل فقط هؤلاء المستخدمين الذين هم جزء من المجموعة المسماة ‘plugin-authors’.

إعجابَين (2)

تم إغلاق هذا الموضوع تلقائيًا بعد 43 ساعة. لم يعد يُسمح بالردود الجديدة.