يعد مستشار العقد الذكي Salidity أداة متطورة مصممة لتوسيع قدرات نماذج اللغة التقليدية في فهم العقود الذكية للصلابة والتقديم المشورة. في جوهره ، يدمج المشروع نماذج لغة Openai من خلال مستودع واسع من العقود الذكية التي تم التحقق منها ووثائق الصلابة الشاملة ، مما يخلق نظامًا متخصصًا وعيًا مدركًا للسياق قادر على تقديم رؤى خبراء في مجال تطوير العقود الذكية.
يمثل هذا المشروع خطوة كبيرة في سد الفجوة بين نماذج اللغة للأغراض العامة والمتطلبات الدقيقة المتخصصة لتطوير blockchain. من خلال التدريب على أكثر من 5000 عقود ذكية تم التحقق منها ووثائق الصلابة الواسعة ، لا يقدم المستشار فقط الإجابات النظرية ، ولكن نصيحة عملية واقعية ترتكز على الكود والتوثيق.
تم قياس النجاح من خلال قدرة النظام على تحليل بدقة وفهم وتقديم نصيحة ذات صلة بالسياق بشأن استعلامات الصلابة المعقدة. تم تحقيق ذلك من خلال مزيج متطور من التقنيات ، يلعب كل منها دورًا مهمًا في تعزيز فعالية النظام.


باستخدام Etherscan.py ، تم تنزيل 5000 عقود ذكية معروفة ومتحقق منها من Etherscan API. هذا يشكل العمود الفقري لتحليلنا ، مما يوفر رمز العقد الذكي في العالم الحقيقي للتضمين والتحليل.
إلى جانب العقود الذكية ، الوثائق المستخرجة كملفات HTML من موقع وثائق الصلابة ، مما يضمن وجود قاعدة شاملة لنموذج اللغة.
يعالج نموذج Langchain Retrievalqa الذي تم بناؤه خصيصًا البيانات أعلاه. لقد قمت بإنشاء قطع تضمين بحجم 1000 مع تداخل قدره 1000 ، مما أدى إلى حوالي 200000 قطعة للتحليل التفصيلي.
بالنسبة للعقود الذكية ، يقوم المحلل المحدد بالصلابة بتحويل العقود إلى أجزاء يمكن التحكم فيها. بالنسبة لمحتوى HTML (الوثائق الرسمية للصلابة) ، أستخدم فاصل نص قياسي. ثم يتم دمج هذه القطع المحلية لمزيد من المعالجة.
في هذا المشروع ، تلعب قاعدة بيانات متجه Weaviate ، المجهزة بوحدة Text2Vec-Contextionary ، دورًا محوريًا في إدارة البيانات المتجهة المستمدة من العقود والوثائق الذكية. تم تصميم قواعد بيانات المتجهات مثل Weaviate للتعامل مع البيانات المتجهة-بشكل أساسي ، نقاط البيانات الممثلة في الفضاء متعدد الأبعاد. هذا مفيد بشكل خاص في مجال التعلم الآلي ومعالجة اللغة الطبيعية ، حيث يمكن أن تكون البيانات المعقدة متجهًا لتحليل فعال وذات مغزى.
يستخدم Weaviate نماذج التعلم الآلي لتحويل البيانات النصية إلى هذه المتجهات ، مما يتيح عمليات البحث عالية السرعة وذات صلة بشكل دلالي. في سياق مستشار التعاقد الذكي للوحدة ، يدير المتاجر ويدير التضمينات (تمثيلات المتجهات) لعقود وتوثيق الصلابة. تلتقط هذه التضمينات المعاني والسياقات الدقيقة للنص ، مما يتيح النظام من توفير استجابات دقيقة ومدرجة للسياق لاستعلامات المستخدم.
تعد وحدة SEDS2VEC-Contextionary على وجه التحديد أمرًا ضروريًا لفهم السياق النصي. يسمح للنظام بتفسير المعنى وراء الكلمات والعبارات في سياق الصلابة ، وتعزيز أهمية ودقة نتائج البحث والاستجابات.
دور Weaviate في هذا المشروع متعدد الأوجه:
لمزيد من المعلومات حول Weaviate وقدراتها ، يمكنك زيارة موقعها الرسمي ووثائقها الرسمي:
يضمن استخدام Weaviate في هذا المشروع أن مستشار العقد الذكي للوحدة ليس قويًا في قدراته التحليلية فحسب ، بل أيضًا فعالًا وقابل للتطوير ، مما يجعله أداة حديثة لتحليل العقد الذكي والمشورة.

لقد قمت بتكييف واجهة المستخدم وتعديلها بشكل ملحوظ من Whuang214 تشبه هذه الواجهة القائمة على ReactJs والمواد المستندة إلى TypeScript نموذج تفاعل ChatGPT ، مصممًا لحالة الاستخدام المحددة لدينا.
تعمل واجهة برمجة تطبيقات Fython المستندة إلى Python كجسر حاسم بين استعلامات المستخدم والواجهة الخلفية القوية. إنه يتعامل مع التفاعلات بكفاءة مع ناقلات Weaviate ويستفيد من نموذج GPT-4-0613 من Openai لتوليد الاستجابات. يعد اختيار GPT-4-0613 استراتيجيًا ، نظرًا لطبيعته الأقل تقييدًا ، وهو مفيد بشكل خاص لتوفير المزيد من الإجابات المباشرة وغير المسلحة حول الموضوعات الحساسة ، مثل إعادة إدخال العقود الذكية.
للراغبين في استكشاف نماذج لغة Openai الأخرى ، يمكن العثور على قائمة شاملة في نظرة عامة على نموذج Openai.
بالإضافة إلى ذلك ، يدمج Flask API Langchain ، وهو إطار مصمم لتعزيز قدرات نماذج اللغة من خلال الوكلاء والهندسة الفوري. تتيح بنية Langchain المعيارية للتكامل السهل على نماذج اللغة المختلفة ، مما يجعل النظام قابلاً للتكيف وقابل للتمديد. مع نفس الواجهة ، يمكن دمج العديد من نماذج اللغة الأخرى بسلاسة ، مما يوفر المرونة ونطاق التحسينات المستقبلية في إمكانيات الاستجابة.
يوفر مزيج من القارورة ، و Weaviate ، و Langchain بنية تحتية قوية وقابلة للتطوير ومتعددة الاستخدامات ، قادرة على التعامل مع الاستعلامات المعقدة بدقة وتقديم الاستجابات ذات الصلة بالسياق في مجال العقود الذكية للحلقة.

يمثل Langchain نهجًا ثوريًا في استخدام نماذج اللغة ، حيث يلعب دورًا حيويًا في مشروع استشارات العقد الذكي. إنه إطار عمل مصمم خصيصًا لزيادة قدرات نماذج اللغة ، مثل تلك التي توفرها Openai ، من خلال استخدام الوكلاء والاستردادات المعززة.
في Langchain ، العوامل هي مكونات معيارية تمكن مجموعة متنوعة من التفاعلات مع نماذج اللغة. يمكن برمجتها لأداء مهام محددة ، مثل تحليل النص ، أو توليد استفسارات ، أو معالجة الاستجابات. يسمح هذا النهج المعياري بدرجة عالية من التخصيص والمرونة ، مما يتيح إنشاء سير عمل معقدة يمكنها معالجة واستعلامات المستخدم والاستجابة لها بدقة لا مثيل لها.
تتمثل إحدى الميزات الرئيسية لـ Langchain في قدرتها على إجراء استردادات معززة. يتضمن ذلك استخدام نماذج اللغة لتعزيز استرجاع المعلومات من قواعد البيانات أو المصادر الأخرى. في سياق هذا المشروع ، تتيح إمكانية استرجاع Langchain المعززة إجراء عمليات بحث أكثر تطوراً وذات صلة بالسياق داخل قاعدة بيانات متجه Weaviate. إنه يضمن أن المعلومات التي تم استردادها ليست ذات صلة فحسب ، بل مصممة أيضًا على الفروق الدقيقة في العقود الذكية للصلابة.
يضيف تكامل Langchain في API قارورة طبقة من الذكاء والقدرة على التكيف. إنه يمكّن النظام من التعامل مع الاستعلامات المعقدة متعددة الأوجه التي قد يعاني منها نموذج اللغة المستقلة. من خلال الاستفادة من كل من القوة الحسابية الخام لنماذج اللغة والهيكل الاستراتيجي الذي تقدمه Langchain ، يمكن للنظام توفير استجابات متعمقة ودقيقة وذات صلة للغاية بمجموعة واسعة من الاستعلامات المتعلقة بالعقود الذكية للصلابة.
يؤدي استخدام Langchain بشكل أساسي إلى تحويل المشروع إلى أداة أكثر ديناميكية وذكية وسريعة الاستجابة ، قادرة على تلبية الاحتياجات المعقدة والمتطورة لمطوري الصلابة والعشاق.
لمزيد من المعلومات والغوص الأعمق في Langchain وقدراتها ، تفضل بزيارة Langchain.
للتفاعل مع مستشار العقد الذكي ، يمكن للمستخدمين إدخال استعلاماتهم من خلال واجهة المستخدم. تم تصميم النظام للتعامل مع أسئلة محددة متعلقة بالصلابة ، مما يوفر إجابات مفصلة ودقيقة. على سبيل المثال ، سيؤدي السؤال عن إعادة الدخول إلى إجابات مباشرة وغنية بالمعلومات. أو حتى يمكنك طلب اختبار الكود الخاص بك. يناسب تماما مع الأسئلة المتعلقة الصلة. لدى واجهة المستخدم نفس القدرات تقريبًا لواجهة ChatGPT بما في ذلك التسجيل في تاريخ الدردشة. بصرف النظر عن هذا ، إذا قمت بفحص وحدة التحكم ، فستكتشف أن طراز LLM يعيد إلى أي متجهات من Weaviate. يمكن أن يكون اثنين من العقد الذكي تم التحقق منه أو حتى وثائق رسمية للصلابة. جميع مجتمعة ، تم فحصها ولديها استنتاج.

يتضمن إعداد مستشار العقد الذكي للوحدة عدة خطوات ، بما في ذلك تكوين قواعد البيانات ، ومتغيرات البيئة ، وتشغيل الخوادم لكل من الواجهة الخلفية والواجهة الأمامية. فيما يلي التعليمات التفصيلية:
بدء خدمات mongodb و weaviate :
docker-compose up -d
وضع متغيرات البيئة :
.env في الدليل الجذر لمشروع Python وتضمين ما يلي: OPENAI_KEY=your_openai_key
ETHERSCAN_KEY=your_etherscan_key
MONGODB_DSN=your_mongodb_dsn
تشغيل الواجهة الخلفية والعميل :
backend client . كل من هذه تحتاج إلى البدء بشكل منفصل.backend وتشغيله: npm i
npm run dev
client وقم بتشغيل نفس الأمر: npm i
npm run dev
تنزيل العقود الذكية :
contracts.csv ، والذي يمكن تنزيله من Etherscan.etherscan.py لتنزيل 5000 رموز مصدر العقد الذكي في مجلد downloaded_contracts : python etherscan.py

weaviate_ingest.py لتكوين البيانات وإدخالها في قاعدة بيانات متجه Weaviate: python weaviate_ingest.py

تناول ملفات HTML :
weaviate_ingest_htmls.py بطريقة مماثلة: python weaviate_ingest_htmls.py
بديل عن Weaviate - باستخدام Pinecone :
pinecone_ingest.py : python pinecone_ingest.py
بعد الانتهاء من هذه الخطوات ، يجب أن يكون مستشار التعاقد الذكي في صلديتك قيد التشغيل ، وعلى استعداد لتقديم رؤى ونصائح حول العقود الذكية للصلابة.
جميع المساهمات موضع ترحيب :)
يعد مستشار العقد الذكي للوحدة ، كما هو ، أداة قوية ومبتكرة. ومع ذلك ، فإن عالم blockchain وتكنولوجيا العقود الذكية يتطور باستمرار ، حيث يقدم العديد من الفرص لتحسينات وتوسعات في هذا المشروع.
الغوص العميق في Yul - اللغة المتوسطة : مجال رئيسي للتنمية في المستقبل هو دمج Yul ، لغة Ethereum الوسيطة. من خلال فهم وتحليل YUL ، يمكن لمستشار العقد الذكي تقديم رؤى ليس فقط على مستوى الصلابة ، ولكن أيضًا على المستوى الأكثر تحبيراً من العقود المترجمة. هذا يفتح طرقًا جديدة لفهم كيفية ترجمة رمز الصلابة إلى عمليات منخفضة المستوى.
التحليل على مستوى الرمز وتحسين الغاز : أحد الجوانب الأكثر تحديا لتطوير العقود الذكية هو تحسين استهلاك الغاز. من خلال توسيع قدرات المستشار لتشمل تحليل مستوى الرمز البسيط ، يمكن للمطورين تلقي اقتراحات لأنماط التعليمات البرمجية الأكثر كفاءة وتحسينات الغاز المحتملة. هذا من شأنه أن يتضمن تعليم النظام لفهم التفاصيل الدقيقة لتكاليف تنفيذ الرمز البسيط وكيفية تراكمها في سيناريوهات العقد الذكي المختلفة.
الوصول المناسب إلى دعم LLM للترميز منخفض المستوى : تعزيز المستشار لتوفير دعم مناسب وسهل الاستخدام لممارسات الترميز منخفضة المستوى. يمكن أن يتضمن ذلك دمج المطالبات أو الوكلاء المتخصصة داخل Langchain التي هي مهارة في الفهم واقتراح التحسينات في YUL أو مباشرة في الرموز opcs. الهدف من ذلك هو جعل تحسين الغاز والترميز المنخفض المستوى أكثر سهولة للمطورين الذين يعملون في المقام الأول مع لغات عالية المستوى مثل الصلابة.
سد التنمية عالية المستوى والمنخفضة المستوى : من خلال سد الفجوة بين رمز الصلابة عالي المستوى و Yul أو Opcodes منخفضة المستوى ، يمكن للمستشار توفير رؤية شاملة لتطوير العقود الذكية. لا يشمل ذلك فقط كتابة رمز عالي المستوى فعال ولكن أيضًا فهم آثاره على مستوى تنفيذ blockchain.
تهدف هذه التحسينات المستقبلية في مجال تحسين Yul و OpCode إلى تزويد المطورين برؤى أعمق في الأعمال الداخلية لعقودهم الذكية. لن يساعد هذا فقط في كتابة رمز أكثر كفاءة وفعالية من حيث التكلفة ولكن أيضًا يساهم في فهم أفضل لبيئة تنفيذ Ethereum ، مما يؤدي في النهاية إلى تطوير عقود ذكية أكثر قوة ومحسّنة.
تهدف هذه التحسينات إلى ترسيخ مستشار العقد الذكي للصلابة كأداة متطورة ، لا غنى عنها للمطورين في مساحة blockchain. الهدف النهائي هو إنشاء نظام ديناميكي وذكي لا يستجيب فقط للاحتياجات الحالية ولكن أيضًا يتوقع ويتكيف مع الاتجاهات المستقبلية في تطوير العقود الذكية.
يتم إصدار هذا المشروع تحت رخصة معهد ماساتشوستس للتكنولوجيا.
دنيز UMUT DERELI