Solidity Smart-Contract Advisor เป็นเครื่องมือที่ทันสมัยที่ออกแบบมาเพื่อขยายขีดความสามารถของแบบจำลองภาษาแบบดั้งเดิมในการทำความเข้าใจและให้คำปรึกษาเกี่ยวกับสัญญาอัจฉริยะที่แข็งแกร่ง ที่สำคัญของมันโครงการรวมโมเดลภาษาของ OpenAI เข้ากับที่เก็บข้อมูลที่มีการตรวจสอบอย่างชาญฉลาดและเอกสารความแข็งแกร่งที่ครอบคลุมซึ่งสร้างระบบพิเศษที่ตระหนักถึงบริบทที่มีความสามารถในการส่งมอบข้อมูลเชิงลึกของผู้เชี่ยวชาญในขอบเขตของการพัฒนาสัญญาอัจฉริยะ
โครงการนี้แสดงให้เห็นถึงการก้าวย่างที่สำคัญในการลดช่องว่างระหว่างแบบจำลองภาษาที่มีวัตถุประสงค์ทั่วไปและข้อกำหนดเฉพาะของการพัฒนา blockchain โดยการฝึกอบรมเกี่ยวกับสัญญาอัจฉริยะที่ผ่านการตรวจสอบแล้วกว่า 5,000 รายการและเอกสารความแข็งแกร่งที่กว้างขวางที่ปรึกษาไม่เพียง แต่ให้คำตอบทางทฤษฎีเท่านั้น
ความสำเร็จถูกวัดโดยความสามารถของระบบในการแยกวิเคราะห์เข้าใจและให้คำแนะนำที่เกี่ยวข้องกับบริบทอย่างถูกต้องเกี่ยวกับการสืบค้นความแข็งแกร่งที่ซับซ้อน นี่คือความสำเร็จผ่านการผสมผสานของเทคโนโลยีที่ซับซ้อนแต่ละครั้งมีบทบาทสำคัญในการเพิ่มประสิทธิภาพของระบบ


การใช้ etherscan.py ดาวน์โหลด 5,000 สัญญาอัจฉริยะที่รู้จักและยืนยันแล้วจาก Etherscan API สิ่งนี้เป็นกระดูกสันหลังของการวิเคราะห์ของเราโดยให้รหัสสัญญาอัจฉริยะในโลกแห่งความเป็นจริงสำหรับการฝังและการวิเคราะห์
นอกเหนือจากสัญญาอัจฉริยะแล้วเอกสารที่แยกออกมาเป็นไฟล์ HTML จากเว็บไซต์เอกสารความแข็งแกร่งทำให้มั่นใจได้ว่าฐานที่ครอบคลุมสำหรับรูปแบบภาษา
โมเดล RetrievalQa ที่สร้างขึ้นเองจะประมวลผลข้อมูลข้างต้น ฉันได้สร้างชิ้นส่วนที่มีขนาด 1,000 ด้วยการทับซ้อนกัน 1,000 ชิ้นทำให้มีประมาณ 200,000 ชิ้นสำหรับการวิเคราะห์โดยละเอียด
สำหรับสัญญาอัจฉริยะตัวแยกวิเคราะห์เฉพาะความแข็งแกร่งแบ่งสัญญาออกเป็นชิ้นที่จัดการได้ สำหรับเนื้อหา HTML (เอกสารอย่างเป็นทางการของความแข็งแกร่ง) ฉันใช้ตัวแยกข้อความมาตรฐาน ชิ้นส่วนที่แยกวิเคราะห์เหล่านี้จะถูกฝังไว้สำหรับการประมวลผลเพิ่มเติม
ในโครงการนี้ฐานข้อมูลเวกเตอร์ Weaviate ที่ติดตั้งโมดูล Text2VEC-CONTEXTIONARY มีบทบาทสำคัญในการจัดการและสอบถามข้อมูลเวกเตอร์ที่ได้รับจากสัญญาและเอกสารประกอบที่แข็งแกร่ง ฐานข้อมูลเวกเตอร์เช่นทอผ้าได้รับการออกแบบมาเพื่อจัดการข้อมูลเวกเตอร์-โดยพื้นฐานแล้วจุดข้อมูลที่แสดงในพื้นที่หลายมิติ สิ่งนี้มีประโยชน์อย่างยิ่งในขอบเขตของการเรียนรู้ของเครื่องและการประมวลผลภาษาตามธรรมชาติซึ่งข้อมูลที่ซับซ้อนสามารถนำไปใช้ในการวิเคราะห์ที่มีประสิทธิภาพและมีความหมาย
Weaviate ใช้โมเดลการเรียนรู้ของเครื่องเพื่อแปลงข้อมูลข้อความเป็นเวกเตอร์เหล่านี้เพื่อให้สามารถค้นหาความเร็วสูงและเกี่ยวข้องกับความหมายได้ ในบริบทของที่ปรึกษาสมาร์ทสัญญาที่แข็งแกร่งของ Solidity ร้านค้าทอและจัดการการฝังตัว (การเป็นตัวแทนเวกเตอร์) ของสัญญาและเอกสารประกอบความแข็งแกร่ง การฝังตัวเหล่านี้จับภาพความหมายและบริบทที่เหมาะสมยิ่งของข้อความทำให้ระบบสามารถให้การตอบสนองที่แม่นยำและรับรู้บริบทต่อการสอบถามผู้ใช้
โมดูล Text2Vec-contextionary โดยเฉพาะเป็นสิ่งสำคัญสำหรับการทำความเข้าใจบริบทของข้อความ ช่วยให้ระบบตีความความหมายเบื้องหลังคำและวลีในบริบทของความแข็งแกร่งเพิ่มความเกี่ยวข้องและความแม่นยำของผลการค้นหาและการตอบสนอง
บทบาทของการทอในโครงการนี้มีหลายแง่มุม:
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Weaviate และความสามารถของคุณคุณสามารถเยี่ยมชมเว็บไซต์อย่างเป็นทางการและเอกสารประกอบ:
การใช้ทอผ้าในโครงการนี้ทำให้มั่นใจได้ว่าที่ปรึกษาสมาร์ทสัญญาที่แข็งแกร่งไม่เพียง แต่มีประสิทธิภาพในความสามารถในการวิเคราะห์เท่านั้น แต่ยังมีประสิทธิภาพและปรับขนาดได้ทำให้เป็นเครื่องมือที่ทันสมัยสำหรับการวิเคราะห์สัญญาอัจฉริยะและคำแนะนำ

ฉันปรับและแก้ไข UI อย่างมีนัยสำคัญจาก WHUANG214 อินเตอร์เฟส ReactJS และอินเตอร์เฟสที่ใช้ typeScript นี้มีลักษณะคล้ายกับรูปแบบการโต้ตอบของ ChatGPT ซึ่งเหมาะสำหรับกรณีการใช้งานเฉพาะของเรา
Flask API Flask ที่ใช้ Python นี้ทำหน้าที่เป็นสะพานเชื่อมที่สำคัญระหว่างการสืบค้นผู้ใช้และแบ็กเอนด์ที่ทรงพลัง มันจัดการกับการโต้ตอบกับเวกเตอร์ทอผ้าและใช้ประโยชน์จากโมเดล GPT-4-0613 ของ OpenAI สำหรับการสร้างการตอบสนอง ทางเลือกของ GPT-4-0613 เป็นกลยุทธ์เนื่องจากลักษณะที่เข้มงวดน้อยกว่าซึ่งเป็นประโยชน์อย่างยิ่งสำหรับการให้คำตอบโดยตรงและไม่มีการกรองมากขึ้นในหัวข้อที่ละเอียดอ่อนเช่นการเข้าร่วมในสัญญาอัจฉริยะ
สำหรับผู้ที่สนใจในการสำรวจรูปแบบภาษา OpenAI อื่น ๆ รายการที่ครอบคลุมสามารถพบได้ที่ภาพรวมโมเดลของ OpenAI
นอกจากนี้ Flask API ยังรวม Langchain กรอบที่ออกแบบมาเพื่อเพิ่มขีดความสามารถของแบบจำลองภาษาผ่านตัวแทนและวิศวกรรมที่รวดเร็ว สถาปัตยกรรมแบบแยกส่วนของ Langchain ช่วยให้สามารถรวมโมเดลภาษาที่แตกต่างกันได้อย่างง่ายดายทำให้ระบบปรับตัวได้สูงและขยายได้ ด้วยอินเทอร์เฟซเดียวกันรูปแบบภาษาอื่น ๆ ที่หลากหลายสามารถรวมเข้าด้วยกันได้อย่างราบรื่นนำเสนอความยืดหยุ่นและขอบเขตสำหรับการปรับปรุงในอนาคตในความสามารถในการตอบสนอง
การรวมกันของขวดทอผ้าและ Langchain ให้โครงสร้างพื้นฐานแบ็คเอนด์ที่แข็งแกร่งปรับขนาดได้และหลากหลายสามารถจัดการกับการสืบค้นที่ซับซ้อนด้วยความแม่นยำและส่งมอบการตอบสนองที่เกี่ยวข้องกับบริบทในโดเมนของสัญญาอัจฉริยะที่แข็งแกร่ง

Langchain แสดงให้เห็นถึงวิธีการปฏิวัติในการใช้แบบจำลองภาษามีบทบาทสำคัญในโครงการที่ปรึกษาสมาร์ทสัญญาที่แข็งแกร่งของเรา มันเป็นเฟรมเวิร์กที่ออกแบบมาโดยเฉพาะเพื่อเพิ่มความสามารถของแบบจำลองภาษาเช่นที่จัดทำโดย OpenAI ผ่านการใช้ตัวแทนและการดึงข้อมูลเพิ่มเติม
ใน Langchain ตัวแทนเป็นส่วนประกอบแบบแยกส่วนที่เปิดใช้งานการโต้ตอบที่หลากหลายกับแบบจำลองภาษา พวกเขาสามารถตั้งโปรแกรมให้ทำงานเฉพาะเช่นการแยกวิเคราะห์ข้อความการสร้างแบบสอบถามหรือการจัดการการตอบสนอง วิธีการแบบแยกส่วนนี้ช่วยให้สามารถปรับแต่งและยืดหยุ่นได้ในระดับสูงทำให้สามารถสร้างเวิร์กโฟลว์ที่ซับซ้อนซึ่งสามารถประมวลผลวิเคราะห์และตอบสนองต่อการสืบค้นผู้ใช้ด้วยความแม่นยำที่ไม่มีใครเทียบ
หนึ่งในคุณสมบัติที่สำคัญของ Langchain คือความสามารถในการดำเนินการดึงข้อมูลเพิ่มเติม สิ่งนี้เกี่ยวข้องกับการใช้แบบจำลองภาษาเพื่อปรับปรุงการดึงข้อมูลจากฐานข้อมูลหรือแหล่งข้อมูลอื่น ๆ ในบริบทของโครงการนี้ความสามารถในการดึงข้อมูลเพิ่มเติมของ Langchain ช่วยให้การค้นหาที่ซับซ้อนและเกี่ยวข้องกับบริบทมากขึ้นภายในฐานข้อมูลเวกเตอร์ทอ มันทำให้มั่นใจได้ว่าข้อมูลที่ดึงมาไม่เพียง แต่เกี่ยวข้อง แต่ยังปรับให้เข้ากับความแตกต่างเฉพาะของสัญญาอัจฉริยะที่แข็งแกร่ง
การบูรณาการของ Langchain ใน Flask API นี้เพิ่มชั้นของความฉลาดและความสามารถในการปรับตัว มันช่วยให้ระบบจัดการกับการสืบค้นที่ซับซ้อนหลายแง่มุมว่าแบบจำลองภาษาแบบสแตนด์อโลนอาจต่อสู้ด้วย ด้วยการใช้ประโยชน์จากพลังการคำนวณแบบดิบของแบบจำลองภาษาและโครงสร้างเชิงกลยุทธ์ที่นำเสนอโดย Langchain ระบบสามารถให้การตอบสนองเชิงลึกถูกต้องและมีความเกี่ยวข้องสูงต่อการค้นหาที่หลากหลายที่เกี่ยวข้องกับสัญญาอัจฉริยะที่แข็งแกร่ง
การใช้ Langchain เป็นหลักเปลี่ยนโครงการให้เป็นเครื่องมือที่มีพลวัตอัจฉริยะและตอบสนองมากขึ้นสามารถตอบสนองความต้องการที่ซับซ้อนและพัฒนาของผู้พัฒนาและผู้ที่ชื่นชอบ
สำหรับข้อมูลเพิ่มเติมและการดำน้ำลึกลงไปใน Langchain และความสามารถของมันเยี่ยมชม Langchain
ในการโต้ตอบกับที่ปรึกษาสมาร์ทสัญญาผู้ใช้สามารถป้อนคำถามผ่าน UI ระบบได้รับการออกแบบมาเพื่อจัดการกับคำถามที่เกี่ยวข้องกับความแข็งแกร่งโดยเฉพาะให้คำตอบอย่างละเอียดและแม่นยำ ตัวอย่างเช่นการถามเกี่ยวกับการเข้าร่วมใหม่จะให้คำตอบโดยตรงและให้ข้อมูล หรือแม้กระทั่งคุณสามารถถามการออดิชั่นรหัสของคุณ มันเหมาะกับคำถามที่เกี่ยวข้องกับของแข็ง UI มีความสามารถเกือบเท่ากันของอินเทอร์เฟซ CHATGPT รวมถึงการลงทะเบียนเพื่อแชทประวัติศาสตร์ นอกเหนือจากนี้ถ้าคุณตรวจสอบคอนโซลคุณจะพบว่าโมเดล LLM refferencing ซึ่งเวกเตอร์จาก Weaviate อาจเป็นสัญญาสมาร์ทที่ได้รับการตรวจสอบหรือแม้แต่เอกสารอย่างเป็นทางการของความแข็งแกร่ง รวมทั้งหมดตรวจสอบและมีข้อสรุป

การตั้งค่าที่ปรึกษาการทำสัญญาอัจฉริยะที่มีความแข็งแกร่งนั้นเกี่ยวข้องกับหลายขั้นตอนรวมถึงการกำหนดค่าฐานข้อมูลตัวแปรสภาพแวดล้อมและเซิร์ฟเวอร์ที่ใช้งานสำหรับทั้งแบ็กเอนด์และส่วนหน้า ด้านล่างนี้เป็นคำแนะนำโดยละเอียด:
เริ่มต้น MongoDB และบริการทอผ้า :
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 ซึ่งสามารถดาวน์โหลดได้จาก Etherscanetherscan.py เพื่อดาวน์โหลด 5,000 รหัสแหล่งที่มาของสัญญาอัจฉริยะที่ได้รับการตรวจสอบแล้วลงในโฟลเดอร์ downloaded_contracts : python etherscan.py

weaviate_ingest.py เพื่อให้ข้อมูลและแทรกลงในฐานข้อมูลเวกเตอร์ Weaviate: python weaviate_ingest.py

การบริโภคไฟล์ HTML :
weaviate_ingest_htmls.py ในลักษณะเดียวกัน: python weaviate_ingest_htmls.py
ทางเลือกในการทอ - ใช้ pinecone :
pinecone_ingest.py สคริปต์: python pinecone_ingest.py
หลังจากทำตามขั้นตอนเหล่านี้แล้วที่ปรึกษาสมาร์ทสัญญาที่แข็งแกร่งของคุณควรจะพร้อมใช้งานพร้อมที่จะให้ข้อมูลเชิงลึกและคำแนะนำเกี่ยวกับสัญญาอัจฉริยะที่แข็งแกร่ง
ยินดีต้อนรับการมีส่วนร่วมทั้งหมด :)
ที่ปรึกษาสมาร์ทสัญญาที่แข็งแกร่งในฐานะที่เป็นเครื่องมือที่แข็งแกร่งและเป็นนวัตกรรม อย่างไรก็ตามขอบเขตของเทคโนโลยี Blockchain และ Smart Contract มีการพัฒนาอย่างต่อเนื่องนำเสนอโอกาสมากมายสำหรับการปรับปรุงในอนาคตและการขยายตัวของโครงการนี้
การดำน้ำลึกลงไปใน YUL - ภาษากลาง : พื้นที่สำคัญสำหรับการพัฒนาในอนาคตคือการรวมตัวกันของ YUL ภาษากลางของ Ethereum ด้วยการทำความเข้าใจและวิเคราะห์ YUL ที่ปรึกษาสมาร์ทสัญญาสามารถนำเสนอข้อมูลเชิงลึกไม่เพียง แต่ในระดับความแข็งแกร่ง แต่ยังอยู่ในระดับที่ละเอียดยิ่งขึ้นของสัญญาที่รวบรวม สิ่งนี้จะเปิดช่องทางใหม่สำหรับการทำความเข้าใจว่ารหัสความแข็งแกร่งแปลเป็นการดำเนินการระดับล่างได้อย่างไร
การวิเคราะห์ระดับ opcode และการเพิ่มประสิทธิภาพก๊าซ : หนึ่งในแง่มุมที่ท้าทายที่สุดของการพัฒนาสัญญาอัจฉริยะคือการเพิ่มประสิทธิภาพสำหรับการใช้ก๊าซ ด้วยการขยายขีดความสามารถของที่ปรึกษาเพื่อรวมการวิเคราะห์ระดับ opcode นักพัฒนาสามารถรับคำแนะนำสำหรับรูปแบบรหัสที่มีประสิทธิภาพมากขึ้นและการเพิ่มประสิทธิภาพก๊าซที่อาจเกิดขึ้น สิ่งนี้จะเกี่ยวข้องกับการสอนระบบเพื่อทำความเข้าใจรายละเอียดปลีกย่อยของค่าใช้จ่ายในการดำเนินการ opcode และวิธีที่พวกเขาสะสมในสถานการณ์สัญญาอัจฉริยะที่แตกต่างกัน
การเข้าถึงการสนับสนุน LLM ที่สะดวกสำหรับการเข้ารหัสระดับต่ำ : การเพิ่มที่ปรึกษาเพื่อให้การสนับสนุนที่สะดวกและใช้งานง่ายสำหรับการฝึกการเข้ารหัสระดับต่ำ สิ่งนี้อาจเกี่ยวข้องกับการบูรณาการพรอมต์หรือตัวแทนภายใน Langchain ที่เชี่ยวชาญในการทำความเข้าใจและแนะนำการเพิ่มประสิทธิภาพใน YUL หรือโดยตรงใน opcodes เป้าหมายคือการทำให้การเพิ่มประสิทธิภาพของก๊าซและการเข้ารหัสระดับต่ำสามารถเข้าถึงได้มากขึ้นสำหรับนักพัฒนาที่ทำงานกับภาษาระดับสูงเช่นความแข็งแกร่ง
การเชื่อมโยงการพัฒนาระดับสูงและระดับต่ำ : โดยการลดช่องว่างระหว่างรหัสความแข็งแกร่งระดับสูงและ YUL ระดับต่ำหรือ opcodes ที่ปรึกษาสามารถให้มุมมองแบบองค์รวมของการพัฒนาสัญญาอัจฉริยะ ซึ่งรวมถึงการเขียนโค้ดระดับสูงที่มีประสิทธิภาพ แต่ยังเข้าใจถึงผลกระทบของมันในระดับการดำเนินการ blockchain
การปรับปรุงในอนาคตเหล่านี้ในขอบเขตของการเพิ่มประสิทธิภาพของ YUL และ Opcode นั้นมีวัตถุประสงค์เพื่อให้นักพัฒนามีความเข้าใจอย่างลึกซึ้งยิ่งขึ้นเกี่ยวกับการทำงานภายในของสัญญาอัจฉริยะของพวกเขา สิ่งนี้จะไม่เพียง แต่ช่วยในการเขียนโค้ดที่มีประสิทธิภาพและประหยัดต้นทุนมากขึ้นเท่านั้น
การปรับปรุงเหล่านี้มีจุดมุ่งหมายเพื่อเสริมสร้างความแข็งแกร่งให้กับที่ปรึกษาสมาร์ทสัญญาที่แข็งแกร่งเป็นเครื่องมือที่ทันสมัยซึ่งขาดไม่ได้สำหรับนักพัฒนาในพื้นที่บล็อกเชน เป้าหมายสูงสุดคือการสร้างระบบอัจฉริยะแบบไดนามิกที่ไม่เพียง แต่ตอบสนองต่อความต้องการในปัจจุบัน แต่ยังคาดการณ์และปรับให้เข้ากับแนวโน้มในอนาคตในการพัฒนาสัญญาอัจฉริยะ
โครงการนี้เปิดตัวภายใต้ใบอนุญาต MIT
Deniz Umut Dereli