Solidity Smart-Contract Advisor-это передовый инструмент, предназначенный для расширения возможностей традиционных языковых моделей в понимании и консультировании по смарт-контрактам. По своей сути, проект объединяет языковые модели OpenAI с обширным хранилищем проверенных интеллектуальных контрактов и комплексной документации по солидности, создавая специализированную систему с учетом контекста, способную предоставить экспертную информацию в сфере разработки интеллектуальных контрактов.
Этот проект представляет собой значительный шаг в преодолении разрыва между языковыми моделями общего назначения и нюансами, специализированными требованиями развития блокчейна. Обучаясь более 5000 проверенных интеллектуальных контрактов и обширной документации по солидности, консультант предоставляет не только теоретические ответы, но и практические, реальные советы, основанные на подтвержденном коде и документации.
Успех был измерен с помощью способности системы точно проанализировать, понимать и предоставлять контекстные консультации по вопросам сложной прочности. Это было достигнуто за счет сложной сочетания технологий, каждый из которых играет решающую роль в повышении эффективности системы.


Используя etherscan.py, загрузил 5000 известных и проверенных интеллектуальных контрактов из API Etherscan. Это формирует основу нашего анализа, предоставляя реальный код интеллектуального контракта для внедрения и анализа.
Наряду с интеллектуальными контрактами, извлеченные документацию в виде HTML -файлов с веб -сайта документации Solidity, обеспечивая комплексную базу для языковой модели.
Пользовательская модель Langchain Retievalqa обрабатывает вышеуказанные данные. Я создал встраиваемые куски размера 1000 с перекрытием 1000, что привело к тому, что для подробного анализа приводит около 200 000 кусков.
Для интеллектуальных контрактов, анализатор специфики для прочности разбивает контракты на управляемые куски. Для контента HTML (официальная документация о солидности) я использую стандартный текстовый сплиттер. Эти проанализированные куски затем встроены для дальнейшей обработки.
В этом проекте база данных векторных векторных данных, оснащенная модулем Text2VEC-Contextionary, играет ключевую роль в управлении и запросе векторизованных данных, полученных из смарт-контрактов и документации. Векторные базы данных, такие как Weaviate, предназначены для обработки векторизованных данных-по сути, точки данных, представленные в многомерном пространстве. Это особенно полезно в сфере машинного обучения и обработки естественного языка, где сложные данные могут быть векторизированы для эффективного и значимого анализа.
Weaviate использует модели машинного обучения для преобразования текстовых данных в эти векторы, позволяя выполнять высокоскоростные и семантически значимые поиски. В контексте солидности консультанта по интеллектуальному контакту, Weaviate магазины и управляет вставками (векторными представлениями) контрактов и документации. Эти встраивания отражают нюансированные значения и контексты текста, что позволяет системе предоставлять точные, контекстные ответы на запросы пользователей.
Модуль Text2VEC-Contextyary специально имеет решающее значение для понимания текстового контекста. Это позволяет системе интерпретировать значение слов и фраз в контексте прочности, повышая актуальность и точность результатов поиска и ответов.
Роль Weaviate в этом проекте многогранна:
Для получения дополнительной информации о Weaviate и его возможностях вы можете посетить их официальный веб -сайт и документацию:
Использование Weaviate в этом проекте гарантирует, что консультант Solidy Smart-Contract не только мощный в своих аналитических возможностях, но и эффективным и масштабируемым, что делает его современным инструментом для анализа смарт-контракта и консультаций.

Я адаптировал и значительно изменил пользовательский интерфейс из WHUANG214. Этот интерфейс на основе REACTJ и TypeScript напоминает модель взаимодействия CHATGPT, адаптированную для нашего конкретного варианта использования.
Этот API Flask на основе Python служит важным мостом между запросами пользователей и мощным бэкэнд. Он эффективно справляется с взаимодействиями с Weaviate Vectors и использует модель Openai GPT-4-0613 для получения ответов. Выбор GPT-4-0613 является стратегическим из-за его менее ограничительного характера, который особенно полезен для предоставления более прямых и нефильтрованных ответов на чувствительные темы, такие как повторная вход в интеллектуальные контракты.
Для тех, кто заинтересован в изучении других моделей Openai, всеобъемлющий список можно найти в обзоре модели Openai.
Кроме того, API Flask интегрирует Langchain, структуру, предназначенную для расширения возможностей языковых моделей с помощью агентов и быстрого разработки. Модульная архитектура Langchain позволяет легко интегрировать различные языковые модели, что делает систему очень адаптируемой и расширяемой. С тем же интерфейсом, различные другие языковые модели могут быть легко включены, предлагая гибкость и объем для будущих улучшений в возможностях ответа.
Комбинация колбы, Weaviate и Langchain обеспечивает надежную, масштабируемую и универсальную бэкэнд -инфраструктуру, способную обрабатывать сложные запросы с точностью и предоставлять контекстуально релевантные ответы в домене умных контрактов.

Langchain представляет собой революционный подход в использовании языковых моделей, сыграв жизненно важную роль в нашем проекте Solidty Smart-Contract Advisor. Это структура, специально предназначенная для расширения возможностей языковых моделей, таких как те, которые предоставляются OpenAI, путем использования агентов и дополненных поисков.
В Langchain агенты представляют собой модульные компоненты, которые обеспечивают различные взаимодействия с языковыми моделями. Они могут быть запрограммированы на выполнение конкретных задач, таких как текст анализа, генерирование запросов или обработка ответов. Этот модульный подход обеспечивает высокую степень настройки и гибкости, что позволяет создавать сложные рабочие процессы, которые могут обрабатывать, анализировать и реагировать на запросы пользователей с непревзойденной точностью.
Одной из ключевых особенностей Langchain является его способность выполнять дополненные поиска. Это включает использование языковых моделей для улучшения поиска информации из баз данных или других источников. В контексте этого проекта расширенная возможность поиска Лэнгкейна позволяет выполнять более сложные и контекстуально релевантные поиски в базе данных Weaviate Vector. Это гарантирует, что полученная информация не только актуальна, но и адаптирована к конкретным нюансам смарт -контрактов.
Интеграция Langchain в этом API Flask добавляет слой интеллекта и адаптивности. Он дает возможность системе обработки сложных, многогранных запросов, с которыми может бороться автономная языковая модель. Используя как необработанную вычислительную мощь языковых моделей, так и стратегическое структурирование, предлагаемое Langchain, система может обеспечить глубокие, точные и весьма актуальные ответы на широкий спектр запросов, связанных с интеллектуальными контрактами.
Использование Langchain по существу превращает проект в более динамичный, интеллектуальный и отзывчивый инструмент, способный удовлетворить сложные и развивающиеся потребности разработчиков и энтузиастов.
Для получения дополнительной информации и более глубокого погружения в Лангхейн и его возможности посетите Лэнгхейн.
Чтобы взаимодействовать с консультантом Smart-Contract, пользователи могут вводить свои запросы через пользовательский интерфейс. Система предназначена для решения конкретных вопросов, связанных с прочности, предоставляя подробные и точные ответы. Например, запрос о повторной сети даст прямые и информативные ответы. Или даже вы можете попросить прослушивание кода. Это идеально подходит для вопросов, связанных с твердыми. Пользовательский интерфейс обладает почти одинаковыми возможностями интерфейса CHATGPT, включая регистрацию в истории чата. Помимо этого, если вы проверете консоль, вы обнаружите, что модель LLM реферсируется, к которому векторы из Weaviate. Это может быть пара проверенных интеллектуальных контактов или даже официальная документация о прочности. Все объединены, осмотрены и имеют заключение.

Настройка Solidity Smart-Contract Advisor включает в себя несколько этапов, включая настройку баз данных, переменные среды и запуск серверов как для бэкэнда, так и для фронта. Ниже приведены подробные инструкции:
Начало обслуживания 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 Vector: python weaviate_ingest.py

Принимая HTML -файлы :
weaviate_ingest_htmls.py аналогичным образом: python weaviate_ingest_htmls.py
Альтернатива Weaviate - Использование Pinecone :
pinecone_ingest.py : python pinecone_ingest.py
После завершения этих шагов ваш консультант по смарт-контакту должен быть запущен, готовый предоставить информацию и советы по смарт-контрактам.
Все взносы приветствуются :)
Соответствующий консультант по интеллектуальному контакту, как он стоит, является надежным и инновационным инструментом. Тем не менее, сфера технологии блокчейна и интеллектуальных контрактов постоянно развивается, что предоставляет многочисленные возможности для будущих улучшений и расширения этого проекта.
Глубокое погружение в Юл - промежуточный язык : ключевой областью для будущего развития является включение Юла, промежуточного языка Эфириума. Понимая и анализируя Юл, консультант по интеллектуальному контракту может предложить информацию не только на уровне солидности, но и на более детальном уровне скомпилированных контрактов. Это открывает новые возможности для понимания того, как код прочности приводит к операциям более низкого уровня.
Анализ на уровне OpCode и оптимизация газа : одним из наиболее сложных аспектов разработки смарт-контракта является оптимизация для потребления газа. Расширяя возможности консультанта для включения анализа на уровне OPCODE, разработчики могут получать предложения для более эффективных моделей кода и потенциальной оптимизации газа. Это будет включать в себя обучение системы для понимания тонкостей затрат на выполнение OPCODE и того, как они накапливаются в различных сценариях смарт -контракта.
Удобный доступ к поддержке LLM для низкоуровневого кодирования : улучшение консультанта для обеспечения удобной и удобной поддержки для методов кодирования низкого уровня. Это может включать в себя интеграцию специализированных подсказок или агентов в Лангхейне, которые являются искусными в понимании и предполагают оптимизацию в Юле или непосредственно в ОПКОДЕ. Цель состоит в том, чтобы сделать оптимизацию газа и низкоуровневое кодирование более доступными для разработчиков, которые в основном работают с языками высокого уровня, такими как солидность.
Соединение высокого уровня и низкоуровневого развития : путем преодоления разрыва между кодом прочности высокого уровня и низкоуровневым yul или opcodes, консультант может предоставить целостное представление о разработке интеллектуального контракта. Это включает в себя не только написание эффективного кода высокого уровня, но и понимание его последствий на уровне выполнения блокчейна.
Эти будущие улучшения в сфере оптимизации YUL и OPCODE направлены на то, чтобы предоставить разработчикам более глубокое понимание внутренней работы их умных контрактов. Это не только поможет в написании более эффективного и экономически эффективного кода, но и способствует лучшему пониманию среды выполнения Ethereum, что в конечном итоге приведет к более надежной и оптимизированной разработке смарт-контракта.
Эти усовершенствования направлены на то, чтобы укрепить солидность консультанта с интеллектуальным контрактом в качестве передового инструмента, необходимо для разработчиков в пространстве блокчейна. Конечная цель состоит в том, чтобы создать динамичную, интеллектуальную систему, которая не только реагирует на текущие потребности, но и предвидит и адаптируется к будущим тенденциям в разработке смарт -контракта.
Этот проект выпущен по лицензии MIT.
Дениз Умут Дерели