Solidity Smart-Contract Advisor는 Solidity Smart 계약을 이해하고 조언하는 데 전통적인 언어 모델의 기능을 확장하도록 설계된 최첨단 도구입니다. 이 프로젝트는 OpenAI의 언어 모델을 막대한 검증 된 스마트 계약 및 포괄적 인 견고성 문서의 저장소와 통합하여 스마트 계약 개발 영역에서 전문가의 통찰력을 제공 할 수있는 전문화 된 컨텍스트 인식 시스템을 만듭니다.
이 프로젝트는 범용 언어 모델과 블록 체인 개발의 미묘한 특수 요구 사항 사이의 격차를 해소하는 데 중요한 진전을 나타냅니다. 고문은 5,000 개가 넘는 검증 된 스마트 계약 및 광범위한 견고성 문서에 대한 교육을 통해 이론적 인 답변뿐만 아니라 검증 된 코드 및 문서에 기반을 둔 실용적인 실제 조언을 제공합니다.
성공은 복잡한 견고성 쿼리에 대한 컨텍스트 관련 조언을 정확하게 구문 분석하고 이해하며 제공하는 시스템의 능력으로 측정되었습니다. 이것은 정교한 기술의 혼합을 통해 달성되었으며, 각각 시스템의 효과를 향상시키는 데 중요한 역할을합니다.


Etherscan.py를 사용하여 Etherscan API에서 5,000 개의 알려진 및 검증 된 스마트 계약을 다운로드했습니다. 이것은 분석의 중추를 형성하여 임베딩 및 분석을위한 실제 스마트 계약 코드를 제공합니다.
Smart Contracts와 함께 Solidity Documentation 웹 사이트에서 HTML 파일로 문서를 추출하여 언어 모델의 포괄적 인 기반을 보장합니다.
맞춤형 Langchain 검색 모델은 위의 데이터를 처리합니다. 나는 1000의 겹치는 크기 1000의 삽입 덩어리를 만들어 세부 분석을 위해 약 200,000 덩어리가 생겼습니다.
스마트 계약의 경우 견고성 별 파서가 계약을 관리 가능한 청크로 분류합니다. HTML 컨텐츠 (독점의 공식 문서)에는 표준 텍스트 스플리터를 사용합니다. 그런 다음 이러한 구문 분석 된 청크는 추가 처리를 위해 내장됩니다.
이 프로젝트에서 Text2Vec-Contextionary 모듈이 장착 된 Weaviate Vector 데이터베이스는 Solidity Smart 계약 및 문서에서 파생 된 벡터화 된 데이터를 관리하고 쿼리하는 데 중추적 인 역할을합니다. Weaviate와 같은 벡터 데이터베이스는 벡터화 된 데이터를 처리하도록 설계되었습니다. 본질적으로 다차원 공간에 표시되는 데이터 포인트. 이것은 효율적이고 의미있는 분석을 위해 복잡한 데이터를 벡터화 할 수있는 기계 학습 및 자연어 처리 영역에 특히 유용합니다.
Weaviate는 기계 학습 모델을 사용하여 텍스트 데이터를 이러한 벡터로 변환하여 고속 및 의미 적으로 관련된 검색을 허용합니다. Solidity Smart-Contract Advisor의 맥락에서, 매장을 짜고 견고한 계약 및 문서의 임베딩 (벡터 표현)을 관리합니다. 이러한 임베딩은 텍스트의 미묘한 의미와 컨텍스트를 포착하여 시스템이 사용자 쿼리에 대한 정확한 상황을 인식하는 응답을 제공 할 수있게합니다.
Text2Vec-Contextionary 모듈은 구체적으로 텍스트 컨텍스트를 이해하는 데 중요합니다. 이를 통해 시스템은 견고성의 맥락에서 단어와 문구의 의미를 해석하여 검색 결과 및 응답의 관련성과 정확성을 향상시킬 수 있습니다.
이 프로젝트에서 직조의 역할은 다각적입니다.
Weaviate 및 그 기능에 대한 자세한 내용은 공식 웹 사이트 및 문서를 방문 할 수 있습니다.
이 프로젝트에서 Weaviate를 사용하면 Solidity Smart-Contract Advisor가 분석 기능에 강력 할뿐만 아니라 효율적이고 확장 가능하여 스마트 계약 분석 및 조언을위한 최첨단 도구입니다.

Whuang214에서 UI를 적응하고 크게 수정했습니다.이 Reactjs 및 TypeScript 기반 인터페이스는 특정 사용 사례에 맞게 ChatGpt 상호 작용 모델과 유사합니다.
이 파이썬 기반 플라스크 API는 사용자 쿼리와 강력한 백엔드 사이의 중요한 브리지 역할을합니다. 그것은 weaviate 벡터와의 상호 작용을 효율적으로 처리하고 응답을 생성하기 위해 OpenAI의 GPT-4-0613 모델을 활용합니다. GPT-4-0613의 선택은 덜 제한적인 특성으로 인해 전략적이며, 이는 특히 스마트 계약의 재창조와 같은 민감한 주제에 대한보다 직접적이고 여지없는 답변을 제공하는 데 유리합니다.
다른 OpenAI 언어 모델을 탐색하는 데 관심이있는 사람들의 경우 OpenAI의 모델 개요에서 포괄적 인 목록을 찾을 수 있습니다.
또한 Flask API는 에이전트 및 프롬프트 엔지니어링을 통해 언어 모델의 기능을 향상 시키도록 설계된 프레임 워크 인 Langchain을 통합합니다. Langchain의 모듈 식 아키텍처를 통해 다양한 언어 모델을 쉽게 통합하여 시스템을 적응력이 뛰어나고 확장 가능합니다. 동일한 인터페이스를 사용하면 다양한 다른 언어 모델을 원활하게 통합하여 응답 기능의 향후 향상을위한 유연성과 범위를 제공 할 수 있습니다.
Flask, Weaviate 및 Langchain의 조합은 강력하고 확장 가능하며 다양한 백엔드 인프라를 제공하며 정밀도로 복잡한 쿼리를 처리하고 Solidity Smart 계약 영역에서 상황에 맞는 응답을 전달할 수 있습니다.

Langchain은 언어 모델 활용에 혁신적인 접근 방식을 나타내며 Solidity Smart-Contract Advisor 프로젝트에서 중요한 역할을합니다. 에이전트 및 증강 검색을 통해 OpenAI가 제공 한 언어 모델의 기능을 강화하기 위해 특별히 설계된 프레임 워크입니다.
Langchain에서 에이전트는 언어 모델과 다양한 상호 작용을 가능하게하는 모듈 식 구성 요소입니다. 구문 분석 텍스트, 쿼리 생성 또는 응답 처리와 같은 특정 작업을 수행하도록 프로그래밍 할 수 있습니다. 이 모듈 식 접근법은 높은 수준의 사용자 정의 및 유연성을 허용하여 비교할 수없는 정밀도로 사용자 쿼리를 처리, 분석 및 응답 할 수있는 복잡한 워크 플로의 생성을 가능하게합니다.
Langchain의 주요 특징 중 하나는 증강 검색을 수행하는 능력입니다. 여기에는 언어 모델을 사용하여 데이터베이스 또는 기타 소스에서 정보 검색을 향상시킵니다. 이 프로젝트의 맥락에서 Langchain의 증강 검색 기능은 Weaviate Vector 데이터베이스 내에서보다 정교하고 상황에 맞는 검색을 가능하게합니다. 검색된 정보가 관련성이있을뿐만 아니라 Solidity Smart 계약의 특정 뉘앙스에 맞게 조정되도록합니다.
이 플라스크 API에서 Langchain의 통합은 지능과 적응성 층을 추가합니다. 이 시스템은 독립형 언어 모델이 어려움을 겪을 수있는 복잡한 다각적 인 쿼리를 처리 할 수 있습니다. 언어 모델의 원시 계산 능력과 Langchain이 제공하는 전략적 구조화를 모두 활용 함으로써이 시스템은 Solidity Smart 계약과 관련된 광범위한 쿼리에 대한 심층적이고 정확하며 매우 관련성이 높은 응답을 제공 할 수 있습니다.
Langchain의 사용은 본질적 으로이 프로젝트를보다 역동적이고 지능적이며 반응이 좋은 도구로 전환하여 견고성 개발자와 애호가의 복잡하고 진화하는 요구를 해결할 수 있습니다.
자세한 내용과 Langchain과 그 능력에 대한 더 깊은 다이빙을 보려면 Langchain을 방문하십시오.
스마트 계약 고문과 상호 작용하기 위해 사용자는 UI를 통해 쿼리를 입력 할 수 있습니다. 이 시스템은 특정 견고성 관련 질문을 처리하도록 설계되어 상세하고 정확한 응답을 제공합니다. 예를 들어, 재창조에 대해 묻는 것은 직접적이고 유익한 답변을 제공합니다. 또는 심지어 코드 오디션을 요청할 수도 있습니다. 견고한 관련 질문에 완벽하게 맞습니다. UI는 채팅 이력 등록을 포함하여 Chatgpt 인터페이스의 거의 동일한 기능을 갖습니다. 이 외에도 콘솔을 확인하면 LLM 모델이 어떤 벡터에서 weaciate에서 어떤 벡터를 반으로 알게 될 것입니다. 몇 가지 검증 된 스마트 계약 또는 견고성에 대한 공식 문서 일 수도 있습니다. 모두 결합, 검사 및 결론이 있습니다.

Solidity Smart-Contract Advisor를 설정하려면 데이터베이스 구성, 환경 변수 및 백엔드 및 Frontend 모두에 대한 실행 서버를 포함하여 여러 단계가 포함됩니다. 다음은 자세한 지침입니다.
MongoDB 시작 및 직조 서비스 :
docker-compose up -d
환경 변수 설정 :
.env 파일을 작성하고 다음을 포함하십시오. 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.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 대안 - PENECONE 사용 :
pinecone_ingest.py 스크립트가 제공됩니다. python pinecone_ingest.py
이러한 단계를 완료 한 후에는 Solidity Smart-Contract Advisor가 UP 및 실행 중이며 Solidity Smart Contracts에 대한 통찰력과 조언을 제공 할 준비가되어 있어야합니다.
모든 기여는 환영합니다 :)
Solidity Smart-Contract Advisor는 강력하고 혁신적인 도구입니다. 그러나 블록 체인 및 스마트 계약 기술의 영역은 끊임없이 발전 하여이 프로젝트의 향후 향상과 확장을위한 수많은 기회를 제시합니다.
율에 대한 깊은 다이빙 - 중간 언어 : 향후 개발을위한 핵심 영역은 이더 리움의 중간 언어 인 율을 통합하는 것입니다. Smart-Contract Advisor는 YUL을 이해하고 분석함으로써 견고성 수준뿐만 아니라보다 세분화 된 수준의 컴파일 된 계약에서도 통찰력을 제공 할 수 있습니다. 이를 통해 Solidity Code가 하위 수준의 운영으로 변환되는 방법을 이해하기위한 새로운 방법이 열립니다.
Opcode 수준 분석 및 가스 최적화 : 스마트 계약 개발의 가장 어려운 측면 중 하나는 가스 소비를 최적화하는 것입니다. Opcode 수준 분석을 포함하도록 고문의 기능을 확장함으로써 개발자는보다 효율적인 코드 패턴 및 잠재적 가스 최적화에 대한 제안을받을 수 있습니다. 여기에는 Opcode 실행 비용의 미묘함과 다른 스마트 계약 시나리오에서 축적 방법을 이해하도록 시스템을 가르치는 것이 포함됩니다.
저수준 코딩에 대한 LLM 지원에 대한 편리한 액세스 : 저수준 코딩 관행에 대한 편리하고 사용자 친화적 인 지원을 제공하기 위해 고문을 향상시킵니다. 여기에는 Langchain 내에서 특수한 프롬프트 또는 에이전트를 통합하는 것이 포함될 수 있으며, 이는 율에서 또는 Opcodes에서 직접 최적화를 이해하고 제안하는 데 능숙합니다. 목표는 가스 최적화와 저수준 코딩을 주로 견고성과 같은 고급 언어로 작업하는 개발자에게보다 쉽게 액세스 할 수 있도록하는 것입니다.
고급 및 저수준 개발 브리징 : 고급 견고성 코드와 저수준 YUL 또는 OPCODE 간의 격차를 해소함으로써 고문은 스마트 계약 개발에 대한 전체적인 관점을 제공 할 수 있습니다. 여기에는 효율적인 높은 수준의 코드를 작성하는 것뿐만 아니라 블록 체인 실행 수준에서의 의미를 이해하는 것이 포함됩니다.
Yul 및 Opcode 최적화 영역에서 이러한 향후 향상은 개발자에게 스마트 계약의 내부 작업에 대한 더 깊은 통찰력을 제공하는 것을 목표로합니다. 이는보다 효율적이고 비용 효율적인 코드를 작성하는 데 도움이 될뿐만 아니라 이더 리움 실행 환경에 대한 이해에 더 잘 기여하여 궁극적으로보다 강력하고 최적화 된 스마트 계약 개발로 이어집니다.
이러한 개선 사항은 블록 체인 공간의 개발자에게는 필수 불가능한 최첨단 도구로서 Solidity Smart-Contract Advisor를 공고하는 것을 목표로합니다. 궁극적 인 목표는 현재의 요구에 대응할뿐만 아니라 스마트 계약 개발의 미래 추세에 대한 예상 및 적응을 예상하고 적응시키는 역동적이고 지능적인 시스템을 만드는 것입니다.
이 프로젝트는 MIT 라이센스에 따라 릴리스됩니다.
DENIZ UMUT DERELI