solus

command module
v0.0.0-...-1a4fc59 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2023 License: MIT Imports: 1 Imported by: 0

README

Solus

Made by CSX Labs License - MIT Stage - Developing MVP GitHub Workflow Status

An AI-assisted project generator.

terminal view

Table of Contents

Mission

To automate the process of creating a project from requirements.

Resources

For a more in-depth breakdown of the requirements and components, see our specification.

Interested in contributing to or testing this project? Check out our contributing guide.

All of our submitted external proposals are in the proposals folder.

Proposal Updates: We just submitted a proposal to Google Cloud's Research Credits program for cloud credits, or money we can use towards Google Cloud services. We also reached out to OpenAI (no full proposal, just an email) and Microsoft to see if they could grant us cloud credits. We reached out to many independent funding sources, if we end up solidifying a deal we'll let you know.

Overview

Solus aims to bridge gaps between AI and humans in software development by allowing language models to interface with the internet and filesystem, opening their contributions to developers on a wider scale. While Solus codes and debugs, developers can focus on higher-level tasks like architecture, design, and requirements. Solus will be able to generate an entire project from a conversation with the developer.

Why?

There aren’t any complete AI project generators. Current AI-assisted software development services, such as GitHub Copilot and Replit’s Ghostwriter, are limited by their lack of access to external contexts like online documentation, a debugger, or library updates outside their training data. This lack of sufficient context limits these services to assistants rather than complete development solutions.

Requirements

Vision: A CLI tool that can generate an end-to-end project from well-defined requirements.

Chat

Solus will chat with the developer, gathering requirements for the project and using its query functionality to get outside information. There are already readily-available chat-based language models, like OpenAI’s gpt-3.5-turbo and gpt-4, that we can use for the developer to converse with the user.

Querying (Query API)
  1. A language model generates a JSON query and sends it to the Query API.
  2. Solus will integrate with search APIs, such as Google Custom Search, and other essential websites, such as StackOverflow, to gather a corpus of information about a query. We’ll integrate with some common websites and databases to remove overhead from scraping. However, we will provide scraping functionality (of returned search results), so Solus can access external documentation, API specifications, and other requisite information.
  3. Solus will store this information in an embeddings database (such as Chroma) and search the embeddings database for the query.
  4. Solus will take the returned data from the embedding database and scan over it with a language model to generate a detailed answer with context.
  5. Solus will serialize the generated answer into a JSON response and send it to the requestee.
Project Planning
  1. Solus will generate and revise project outlines and requirements in YAML from the chat conversations and queried contexts.
  2. Solus will use this outline to generate and revise the project's folder and file structure. Solus will apply the project structure to the file system.
  3. Solus will also take the project requirements and use the Query API to get dependency information.
Coding & Debugging
  • Solus will utilize language models to generate the code, requesting context from a context engine and outside information from the Query API.
  • There will be continuous refactoring throughout the development process. We will start with regenerating the entire file to refactor, though we plan to integrate in-place editing functionality in the future.
  • Solus’ language models will have access to a Debugging API, allowing them to interface with a debugger and fix errors.
Context Engine
  • Solus’ context engine will enable a language model to search the entire codebase and add items to its context. Solus passes in context at the beginning of any prompt given to the model.
  • We will start rudimentary with simple text concatenation, though we plan to include search functionality and advanced context management features in the future.

Current Status

We are still building the MVP. We finished the interface (shown below), added chat functionality, and integrated it with different outside data sources. The querying functionality is currently limited to Google search results, though this will change as we iterate on the Query API.

terminal view terminal view with search

Task List

This task list is for the Minimum Viable Product (MVP) of Solus. The MVP will meet the bare minimum of the requirements listed above and in the specification. The tasks are being completed according to the Tracer Bullet Philosophy presented in The Pragmatic Programmer. The idea is that we will try to slice through the different parts of the project to provide a simple set of presentable features that can we can continue to build upon.

Please check our GitHub Project Page for the task list and roadmap.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
ai
openai
Endpoints for mocking OpenAI API calls.
Endpoints for mocking OpenAI API calls.
db

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL