RoboCoachTechnologies / GPT-Synthesizer

Software design & development with AI
MIT License
285 stars 25 forks source link
ai code-generation generative-ai gpt3 gpt35turbo gpt4 langchain openai python software-development streamlit

GPT Synthesizer

Collaboratively implement an entire software project with the help of an AI.

GPT-Synthesizer walks you through the problem statement and explores the design space with you through a carefully moderated interview process. If you have no idea where to start and how to describe your software project, GPT Synthesizer can be your best friend.

What makes GPT Synthesizer unique?

The design philosophy of GPT Synthesizer is rooted in the core, and rather contrarian, belief that a single prompt is not enough to build a complete codebase for complex software. This is mainly due to the fact that, even in the presence of powerful LLMs, there are still many crucial details in the design specification that cannot be effectively captured in a single prompt. Attempting to include every bit of detail in a single prompt, if not impossible, would cause a loss of efficiency of the LLM engine. Powered by LangChain, GPT Synthesizer captures the design specification, step by step, through an AI-directed dialogue that explores the design space with the user.

GPT Synthesizer interprets the initial prompt as a high-level description of a programming task. Then, through a process, which we named “prompt synthesis”, GPT Synthesizer compiles the initial prompt into multiple program components that the user might need for implementation. This step essentially turns 'unknown unknowns' into 'known unknowns', which can be very helpful for novice programmers who want to understand the overall flow of their desired implementation. Next, GPT Synthesizer and the user collaboratively find out the design details that will be used in the implementation of each program component.

Different users might prefer different levels of interactivity depending on their unique skill set, their level of expertise, as well as the complexity of the task at hand. GPT Synthesizer distinguishes itself from other LLM-based code generation tools by finding the right balance between user participation and AI autonomy.

Installation

Usage

GPT Synthesizer is easy to use. It provides you with an intuitive AI assistant in your command-line interface. It also provides an intuitive user interface using Streamlit. GPT Synthesizer uses OpenAI's gpt-3.5-turbo-16k as the default LLM.

Streamlit App:

Demo:

Streamlit GUI

Command Line Interface:

Demos:

How it works:

Make your own GPT Synthesizer!

GPT Synthesizer’s code is easy to read and understand. Anyone can customize the code for a specific application. The codebase is tightly integrated with LangChain, allowing utilization of various tools such as internet search and vector databases.

GPT Synthesizer's hierarchical strategy to build the codebase allows OpenAI’s GPT3.5 to be a viable option for the backend LLM. We believe GPT3.5 provides a good trade-off between cost and contextual understanding, while GPT4 might be too expensive for many use cases. Nevertheless, switching to another LLM is made easy thanks to LangChain integration.

Roadmap

GPT Synthesizer will be actively maintained as an open-source project. We welcome everyone to contribute to our community of building systems for human-in-the-loop code generation!

Here is a (non-exhaustive) list of our future plans for GPT Synthesizer:

Additional documentations & articles

Looking inside GPT-Synthesizer and the idea of LLM-based code generation

Contact

For business inquiries, such as consulting or contracting jobs, please contact robocoachtechnologies@gmail.com.