Skip to main content

Framework for building actionable agents on top of GPT-4

Project description

Golem-GPT

PyPI PyPI - Status Docker Image Size (latest by date)

⚠️ This is an experimental development. Run it on your own risk! ⚠️

Framework for building actionable agents to achieve goals specified by user, powered by OpenAI GPT-4 and GPT-3.5

Usage

The optimal way to run Golem-GPT is to use the Docker image or Docker Compose.

Requirements

  • Docker or Python 3.8+ environment
  • OpenAI API key

Quick start

Put credentials to .env:

OPENAI_API_KEY=...
OPENAI_ORG_ID=...
OPENAI_MODEL=gpt-4

(For gpt-4 model you should have an early access enabled, it's not publicly available yet).

Run it via Docker Compose:

docker compose build && docker compose run app

or via Python:

pip install --upgrade golem-gpt
python -m golemgpt

❗️ It's safer to run it inside Docker to have it isolated. Because Golem can access an environment and filesystem, so it's better to keep it inside a container.

Architecture

We introduce a novel framework for building Golems (actionable agents) which is based on the following high-level concepts:

  • Goals: a set of goals, initially defined by user's input. Goals could be high-level definitions, like "I want to build a web app", or low-level definitions, like "I want to create a new file with content 'Hello, world!'"

  • Cognitron: a language model, which interprets input text and produces an action plan, or other kind of structured output. It runs on top of OpenAI models, which could be potentially replaced with any other language model.

  • Lexicon: a set of rules and dictionary to generate prompts for Cognitron and interpret its structured output.

  • Action plan: a structured output of Cognitron, which is a set of actions to be executed for achieving goals.

  • Actions: a predefined executables or functions, which can interact with the environment to achieve goals. Actions could also be recursive or delegate their execution to other Golems.

  • Memory: a storage for the Golem's current state, which can also be saved and loaded to continue the job later.

  • Codex: a built-in Golem's moderator, which is responsible for checking the agent's actions and preventing it from doing something unexpected. Codex has its own Cognitrion and Lexicon.

NOTE: In our implementation, Actions are implemented as Python functions

Why?

How is it different from AutoGPT?

We build it because we like it. Our implementation is not as advanced as AutoGPT to the moment, but it has some unique focus:

  • Keeping it simple and easy to modify, also with minimal dependencies
  • While keeping the core simple, we aim to make it extensible via custom actions, roles, policies, and other components
  • We think of it as interactive tool, not necessarily to be fully autonomous
  • Also we test it with GPT-3.5, which porbably sounds not super-hyped, but it's waaay cheaper and delivers results good enough for many use cases
  • We are going to utilize it in our own development cycle, and refine it to fit real needs in software development

Actions supported

The pipeline consists of the following actions:

  • ask_human_input(query)
  • get_os_details()
  • get_local_date()
  • read_file(filename)
  • write_file(filename, content)
  • summarize_file(filename, hint, to_filename)
  • http_download(url, method, headers, body, to_filename)
  • create_python_script(name, description, in_files, out_files)
  • create_shell_script(name, description, in_files, out_files)
  • run_script(name)
  • ask_google(query, to_filename)
  • delegate_job(goal, role, in_files, out_files)
  • explain(comment)
  • reject_job(message)
  • finish_job(message)

Development

Setup virtualenv:

python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip pip-tools
pip-compile
pip install -r requirements.txt

Put variables to .env:

OPENAI_API_KEY=...
OPENAI_ORG_ID=...

Start a new job:

python -m golemgpt

Continue saved job:

python -m golemgpt -j <job key>

Terminate simply with ^C or empty input.

License

Golem-GPT is licensed under the Apache-2.0.

Authors:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

golem_gpt-0.2.1.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

golem_gpt-0.2.1-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file golem_gpt-0.2.1.tar.gz.

File metadata

  • Download URL: golem_gpt-0.2.1.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.18

File hashes

Hashes for golem_gpt-0.2.1.tar.gz
Algorithm Hash digest
SHA256 1b740e39c502b7126af73aa2f70010c8ddafd551d60b6881eedd1ae83357d8bc
MD5 6c3b6c62e52bddc72fa363e5244b7a84
BLAKE2b-256 0e0155d2d914c8156184689aec7cee3e7b47e67e5cad35a35123a25da6e50973

See more details on using hashes here.

File details

Details for the file golem_gpt-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: golem_gpt-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 34.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.18

File hashes

Hashes for golem_gpt-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 421d756b333da34e84a6cb1c154fa7689ae23561cb5a62a8dc06d736571b56ab
MD5 626788eb3380e6321eba5397771a943c
BLAKE2b-256 9e4987feb833f6767ec3fb22eba20b4463bd0d7dd43b456ec0594a8793787290

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page