project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

ETHGPT

A dev tool utilising LLM reasoning, offering a selection of tools and expert assistance for dev tasks. It enables access to real-time data, from search engine outcomes to etherscan smart contract code. It also employs vector embeddings and semantic search to scour documentation.

ETHGPT

Created At

ETHGlobal Lisbon

Project Description

Our project, ETHGPT, is a state-of-the-art solution presented for the hackathon, dedicated to expediting the onboarding process for web3 developers. This tool not only accelerates development but also enhances knowledge acquisition by recommending appropriate tools and methodologies, coupled with links to relevant documentation from its knowledge repository. We have seamlessly blended the powerful reasoning capabilities and profound natural language understanding of Large Language Models with a suite of custom tools and expert systems that we've developed.

The ensemble of custom tools we've integrated into our project includes:

Etherscan endpoints: These provide the ability to retrieve code, Application Binary Interfaces (ABIs), and transaction statuses. web3py: A Python library that allows for tasks such as querying wallet balances and transferring Ether. Code Writers: LLM models that are primed to generate code snippets upon request. Internet Search Results: A utility for comprehensive information retrieval from the internet. These tools accept natural language inputs, converting them into programmatic arguments, which are then utilized to execute code. The resultant values are processed by the language model, thereby enriching its knowledge base and enhancing its capacity to respond to future queries.

Additionally, we've established 'expert' systems using documentation from our sponsors. Utilizing the LLMs' embedding capabilities, we've created vector stores that enable us to perform semantic searches across these vectors to identify and return similar content, thereby providing relevant knowledge drawn from the ingested documentation.

Some of the 'experts' we have integrated include AirstackExpert, AaveExpert, OneInchExpert, GnosisExpert, UniswapExpert, and Web3PyExpert. Each expert contributes a unique wealth of knowledge and expertise from the relevant documentation, which significantly amplifies our tool's capacity to assist and advance the work of web3 developers, in particular beginners. In essence, ETHGPT is a comprehensive, knowledge-powered tool created to bolster the web3 development community.

How it's Made

Our initial step in constructing this tool involved the use of a unique library known as Langchain. This library facilitates the linking of Large Language Models (LLMs) with supplemental tools, allowing the creation of 'chains'. We commenced by developing several web3-oriented Langchain tools, employing prompt engineering and existing tools like the Etherscan API endpoints and web3.py functions for sending Ether and verifying Ether balances. In addition, we incorporated the Search Engine Results Pages (SERP) API to search Google, thereby adding up-to-date information and mitigating a key limitation inherent in LLMs.

Subsequently, we obtained the documentation from some of our preferred sponsors, namely Airstack, Aave, 1Inch, Gnosis, and Uniswap. Using these documents, we generated embeddings and stored them in vector stores. These vector stores can be queried using semantic search to find similar results. We encapsulated these vector stores with prompts, thereby creating what we refer to as 'expert' tools.

Langchain facilitates the interaction between LLMs and these 'experts' and tools, enabling us to seamlessly transfer the knowledge directly from documentation and live information from these tools we created to create the context for our chatbot tool.

The final output is a composite of the knowledge derived from zero to many tools that were queried, which is then succinctly summarized by the LLM. This output also incorporates links to the documentation referenced by the 'experts', if applicable.

Upon completing the backend tool, we proceeded to assemble a front-end using the Streamlit library in Python. We designed a user-friendly interface featuring a chatbot, a loading symbol, and real-time updates on the tools as they are utilized. This front-end also includes wallet integration, which can be employed in conjunction with the web3.py tool to send ERC20 tokens.

background image mobile

Join the mailing list

Get the latest news and updates