Der Solidity Smart-Contract-Berater ist ein hochmodernes Tool, das die Funktionen herkömmlicher Sprachmodelle zum Verständnis und Beratung von Solidity-intelligenten Verträgen erweitert. Im Kern integriert das Projekt die Sprachmodelle von OpenAI mit einem riesigen Repository von verifizierten intelligenten Verträgen und umfassenden Soliditätsdokumentationen, wodurch ein spezialisiertes, kontextbewusstes System geschaffen wird, das in der Lage ist, fachmännische Erkenntnisse im Bereich der Smart-Vertragsentwicklung zu liefern.
Dieses Projekt stellt einen signifikanten Schritt bei der Überbrückung der Lücke zwischen allgemeinen Sprachmodellen und den nuancierten, speziellen Anforderungen der Blockchain-Entwicklung dar. Durch die Schulung über über 5.000 verifizierte intelligente Verträge und umfangreiche Soliditätsdokumentation gibt der Berater nicht nur theoretische Antworten, sondern auch praktische, reale Ratschläge, die auf verifiziertem Code und Dokumentation beruhen.
Der Erfolg wurde an der Fähigkeit des Systems gemessen, kontextrelevante Ratschläge zu komplexen Soliditätsfragen genau zu analysieren, zu verstehen und zu geben. Dies wurde durch eine ausgefeilte Mischung aus Technologien erreicht, die jeweils eine entscheidende Rolle bei der Verbesserung der Wirksamkeit des Systems spielten.


Mit Etherscan.py wurden 5.000 bekannte und verifizierte intelligente Verträge von der Ethercan -API heruntergeladen. Dies bildet das Rückgrat unserer Analyse und bietet einen realen Smart-Vertrags-Code für Einbettung und Analyse.
Neben Smart Contracts extrahierte Dokumentation als HTML -Dateien von der Solidity -Dokumentation -Website, um eine umfassende Basis für das Sprachmodell zu gewährleisten.
Das maßgeschneiderte Langchain-Abruf-Modell verarbeitet die oben genannten Daten. Ich habe Einbettungsbrocken von Größe 1000 mit einer Überlappung von 1000 erstellt, was zu rund 200.000 Stücken für eine detaillierte Analyse führt.
Bei intelligenten Verträgen unterteilt ein Soliditätsspezifischer Parser die Verträge in überschaubare Stücke. Für den HTML -Inhalt (die offizielle Dokumentation der Solidität) verwende ich einen Standardtextsplitter. Diese Parsen -Stücke werden dann zur weiteren Verarbeitung eingebettet.
In diesem Projekt spielt die mit dem Text2VEC-kontextionären Modul ausgestattete Datenbank der Vektor eine zentrale Rolle bei der Verwaltung und Abfragetation von vektorisierten Daten, die aus Smart-Verträgen und Dokumentationen von Solidität abgeleitet wurden. Vektordatenbanken wie Weaviate sind für vektorisierte Daten ausgelegt-im Wesentlichen Datenpunkte, die im mehrdimensionalen Raum dargestellt werden. Dies ist besonders nützlich im Bereich des maschinellen Lernens und der Verarbeitung natürlicher Sprache, bei denen komplexe Daten für eine effiziente und aussagekräftige Analyse vektorisiert werden können.
Weaviate verwendet maschinelles Lernmodelle, um Textdaten in diese Vektoren umzuwandeln, wodurch Hochgeschwindigkeits- und semantisch relevante Suchvorgänge ermöglicht werden. Im Kontext des Smartvality Smart-Contract-Beraters speichert und verwaltet WeaViate die Einbettung (Vektorabgabe) von Soliditätsverträgen und Dokumentationen. Diese Einbettungen erfassen die nuancierten Bedeutungen und Kontexte des Textes, sodass das System genaue Antworten auf den kontextbewussten Antworten auf Benutzeranfragen bereitstellt.
Das text2VEC-contextionäre Modul ist speziell für das Verständnis des Textkontextes von entscheidender Bedeutung. Es ermöglicht dem System, die Bedeutung hinter Wörtern und Phrasen im Kontext der Solidität zu interpretieren und die Relevanz und Genauigkeit von Suchergebnissen und Antworten zu verbessern.
Die Rolle des Weaviate in diesem Projekt ist vielfältig:
Weitere Informationen zu Weaviate und seinen Funktionen finden Sie auf der offiziellen Website und Dokumentation:
Die Verwendung von Weaviate in diesem Projekt stellt sicher, dass der Smartvality Smart-Contract-Berater nicht nur in seinen analytischen Funktionen, sondern auch effizient und skalierbar ist, was es zu einem hochmodernen Tool für Smart-Vertragsanalyse und -beratung macht.

Ich habe die Benutzeroberfläche von whuang214 angepasst und diese ReactJs und Typscript-basierte Schnittstelle signifikant einem ChatGPT-Interaktionsmodell, das auf unseren spezifischen Anwendungsfall zugeschnitten ist, ähnelt.
Diese Python-basierte Flask-API dient als entscheidende Brücke zwischen Benutzerabfragen und dem leistungsstarken Backend. Es behandelt die Interaktionen mit den Weaviate-Vektoren effizient und nutzt das GPT-4-0613-Modell von OpenAI zur Erzeugung von Antworten. Die Auswahl von GPT-4-0613 ist aufgrund seiner weniger restriktiven Art, was besonders für die Bereitstellung von direkteren und ungefilterten Antworten auf sensible Themen wie Wiedereintritt in intelligenten Verträgen von Vorteil ist, strategisch.
Für diejenigen, die andere OpenAI -Sprachmodelle erkunden möchten, finden Sie eine umfassende Liste unter OpenAIs Modellübersicht.
Darüber hinaus integriert die Flask -API Langchain, ein Rahmen, um die Funktionen von Sprachmodellen durch Agenten und sofortige Engineering zu verbessern. Die modulare Architektur von Langchain ermöglicht eine einfache Integration verschiedener Sprachmodelle, wodurch das System hoch anpassungsfähig und erweiterbar ist. Mit der gleichen Schnittstelle könnten verschiedene andere Sprachmodelle nahtlos eingearbeitet werden, was Flexibilität und Umfang für zukünftige Verbesserungen in Reaktionsfunktionen bietet.
Die Kombination von Kolben, Weaspeaviate und Langchain bietet eine robuste, skalierbare und vielseitige Backend -Infrastruktur, die in der Lage ist, komplexe Abfragen mit Präzision zu bearbeiten und kontextbezogene Antworten im Bereich von Smart -Verträgen von Solidität zu liefern.

Langchain stellt einen revolutionären Ansatz bei der Verwendung von Sprachmodellen dar und spielt eine wichtige Rolle bei unserem Smartvality Smart-Contract-Advisor-Projekt. Es handelt sich um einen Rahmen, der speziell entwickelt wurde, um die Fähigkeiten von Sprachmodellen, wie z.
In Langchain sind Agenten modulare Komponenten, die eine Vielzahl von Interaktionen mit Sprachmodellen ermöglichen. Sie können so programmiert werden, dass bestimmte Aufgaben wie das Parsen von Text, das Generieren von Abfragen oder die Bearbeitung von Antworten ausgeführt werden. Dieser modulare Ansatz ermöglicht ein hohes Maß an Anpassung und Flexibilität und ermöglicht die Erstellung komplexer Workflows, die Benutzeranfragen mit beispielloser Genauigkeit verarbeiten, analysieren und darauf reagieren können.
Eine der Hauptmerkmale von Langchain ist die Fähigkeit, erweiterte Abrufe durchzuführen. Dies beinhaltet die Verwendung von Sprachmodellen, um das Abrufen von Informationen aus Datenbanken oder anderen Quellen zu verbessern. Im Kontext dieses Projekts ermöglicht Langchains erweiterte Abruffunktion komplexere und kontextbezogene Suchvorgänge in der Wea -Vektor -Datenbank. Es stellt sicher, dass die abgerufenen Informationen nicht nur relevant sind, sondern auch auf die spezifischen Nuancen von Solidity Smart Contracts zugeschnitten sind.
Die Integration von Langchain in diese Flask -API fügt eine Ebene der Intelligenz und Anpassungsfähigkeit hinzu. Es ermöglicht das System, komplexe, vielfältige Abfragen zu behandeln, mit denen ein eigenständiges Sprachmodell zu kämpfen hat. Durch die Nutzung sowohl der RAW-Rechenleistung von Sprachmodellen als auch der von Langchain angebotenen strategischen Strukturierung kann das System eingehende, genaue und hochrelevante Antworten auf eine Vielzahl von Abfragen im Zusammenhang mit Solidity-Smart-Verträgen liefern.
Die Verwendung von Langchain verwandelt das Projekt im Wesentlichen in ein dynamischeres, intelligentes und reaktionsfähigeres Instrument, das die komplizierten und sich entwickelnden Bedürfnisse von Soliditätsentwicklern und Enthusiasten ansprechen kann.
Weitere Informationen und einen tieferen Eintauchen in Langchain und seine Fähigkeiten finden Sie in der Langchain.
Um mit dem Smart-Contract-Berater zu interagieren, können Benutzer ihre Abfragen über die Benutzeroberfläche eingeben. Das System ist so konzipiert, dass sie spezifische solide Fragen bearbeiten und detaillierte und genaue Antworten liefern. Wenn Sie beispielsweise nach einer Wiedereinstellung direkte und informative Antworten geben. Oder sogar Sie können Ihr Code -Vorsprechen fragen. Es passt perfekt zu den solidenbezogenen Fragen. Die Benutzeroberfläche verfügt über fast die gleichen Funktionen der Chatgpt -Schnittstelle, einschließlich der Registrierung zu Chat -Historien. Wenn Sie die Konsole überprüfen, werden Sie feststellen, dass das LLM -Modell eine Referenzen, zu der Vektoren aus dem Weaviate sind. Es kann sich um ein paar verifizierte Smart-Contract oder sogar eine offizielle Dokumentation der Solidität handeln. Alle kombiniert, untersucht und haben eine Schlussfolgerung.

Das Einrichten des Smartvality Smart-Contract-Advisors umfasst mehrere Schritte, einschließlich Konfigurieren von Datenbanken, Umgebungsvariablen und laufenden Servern sowohl für das Backend als auch für das Frontend. Im Folgenden finden Sie die detaillierten Anweisungen:
StartmongoDB- und Weaviate -Dienste starten :
docker-compose up -d
Umgebungsvariablen einstellen :
.env -Datei im Stammverzeichnis des Python -Projekts und geben Sie Folgendes ein: OPENAI_KEY=your_openai_key
ETHERSCAN_KEY=your_etherscan_key
MONGODB_DSN=your_mongodb_dsn
Ausführen des Backends und des Kunden :
backend und client . Jede dieser muss getrennt gestartet werden.backend -Ordner und rennen Sie: npm i
npm run dev
client -Ordner und führen Sie denselben Befehl aus: npm i
npm run dev
Herunterladen intelligenter Verträge :
contracts.csv haben, die von Ethercan heruntergeladen werden können.etherscan.py aus, um 5000 verifizierte Smart Contract -Quellcodes in den Ordner downloaded_contracts herunterzuladen: python etherscan.py

weaviate_ingest.py , um die Daten zu unterteilen und sie in die Weaviate Vector -Datenbank einfügen: python weaviate_ingest.py

Einnahme von HTML -Dateien :
weaviate_ingest_htmls.py auf ähnliche Weise aus: python weaviate_ingest_htmls.py
Alternative zu Weaviate - mit Pinecone :
pinecone_ingest.py bereitgestellt: python pinecone_ingest.py
Nach Abschluss dieser Schritte sollte Ihr Smart-Contract-Berater für Solidität in Betrieb sein und bereit sind, Einblicke und Ratschläge zu Smart-Verträgen von Solidität zu geben.
Alle Beiträge sind willkommen :)
Der Smartvality Smart-Contract-Berater ist ein robustes und innovatives Instrument. Der Bereich der Blockchain- und Smart Contract -Technologie entwickelt sich jedoch ständig weiter und bietet zahlreiche Möglichkeiten für zukünftige Verbesserungen und Erweiterungen dieses Projekts.
Taucher in Yul - die Zwischensprache : Ein Schlüsselbereich für die zukünftige Entwicklung ist die Einbeziehung von Yul, der Zwischensprache von Ethereum. Durch das Verständnis und die Analyse von YUL kann der Smart-Contract-Berater nicht nur auf Soliditätsebene, sondern auch auf körnigerer Ebene kompilierter Verträge Erkenntnisse bieten. Dies eröffnet neue Wege, um zu verstehen, wie der Soliditätscode in Operationen auf niedrigerer Ebene übersetzt wird.
Analyse der Opcode-Ebene und Gasoptimierung : Einer der schwierigsten Aspekte der intelligenten Vertragsentwicklung ist die Optimierung des Gasverbrauchs. Durch die Erweiterung der Funktionen des Beraters auf Opcode-Level-Analyse können Entwickler Vorschläge für effizientere Codemuster und potenzielle Gasoptimierungen erhalten. Dies würde das Lehren des Systems beinhalten, die Feinheiten der Opcode -Ausführungskosten zu verstehen und wie sie sich in verschiedenen Smart -Vertrags -Szenarien ansammeln.
Bequemer Zugriff auf LLM-Unterstützung für die Codierung auf niedriger Ebene : Verbesserung des Beraters, um eine bequeme und benutzerfreundliche Unterstützung für Codierungspraktiken auf niedriger Ebene zu bieten. Dies könnte die Integration von spezialisierten Aufforderungen oder Wirkstoffen in Langchain beinhalten, die in YUL oder direkt in Opcodes Optimierungen im Verständnis und Vorschlagen von Optimierungen vorschlagen können. Ziel ist es, Gasoptimierung und niedrigem Codieren für Entwickler zugänglicher zu gestalten, die hauptsächlich mit hochrangigen Sprachen wie Solidität arbeiten.
Überbrückung hochrangiger und niedriger Entwicklung : Durch die Überbrückung der Lücke zwischen Soliditätscode auf hohem Niveau und niedrigem Niveau Yul oder Opcodes kann der Berater eine ganzheitliche Sicht auf die Entwicklung intelligenter Vertragsentwicklung bieten. Dies schließt nicht nur ein effizientes Code auf hoher Ebene ein, sondern auch seine Auswirkungen auf die Ausführungsebene der Blockchain.
Diese zukünftigen Verbesserungen im Bereich der Yul- und Opcode -Optimierung zielen darauf ab, Entwicklern tiefere Einblicke in die inneren Funktionsweise ihrer intelligenten Verträge zu geben. Dies hilft nicht nur beim Schreiben eines effizienteren und kostengünstigeren Code, sondern beiträgt auch zu einem besseren Verständnis der Ethereum-Ausführungsumgebung bei, was letztendlich zu einer robusteren und optimierteren Entwicklung intelligenter Vertragsentwicklung führt.
Diese Verbesserungen zielen darauf ab, den Smartvality Smart-Contract-Berater als modernes Tool zu festigen, das für Entwickler im Blockchain-Raum unverzichtbar ist. Das ultimative Ziel ist es, ein dynamisches, intelligentes System zu schaffen, das nicht nur auf aktuelle Bedürfnisse reagiert, sondern auch zukünftige Trends in der Entwicklung intelligenter Vertragsentwicklung antizipiert und sich an die Anpassung an die Anpassungen anpasst.
Dieses Projekt wird unter der MIT -Lizenz veröffentlicht.
Deniz Umut Dereli