Skip to main content

Import wisdom, export code.

Project description

AutoGenLib

The only library you'll need ever.

Import wisdom, export code.

AutoGenLib is a Python library that automatically generates code on-the-fly using OpenAI's API. When you try to import a module or function that doesn't exist, AutoGenLib creates it for you based on a high-level description of what you need.

Features

  • Dynamic Code Generation: Import modules and functions that don't exist yet
  • Context-Aware: New functions are generated with knowledge of existing code
  • Progressive Enhancement: Add new functionality to existing modules seamlessly
  • Persistent Storage: Generated code is cached for future use
  • Full Codebase Context: LLM can see all previously generated modules for better consistency
  • Caller Code Analysis: The LLM analyzes the actual code that's importing the module to better understand the context and requirements
  • Automatic Exception Handling: All exceptions are sent to LLM to provide clear explanation and fixes for errors.

Installation

pip install autogenlib

Or install from source:

git clone https://github.com/cofob/autogenlib.git
cd autogenlib
pip install -e .

Requirements

  • Python 3.12+
  • OpenAI API key

Quick Start

Set OpenAI API key in OPENAI_API_KEY env variable.

from autogenlib import init
init("Library for generating secure random tokens")

# Import a function that doesn't exist yet - it will be automatically generated
from autogenlib.tokens import generate_token

# Use the generated function
token = generate_token(length=32)
print(token)

How It Works

  1. You initialize AutoGenLib with a description of what you need
  2. When you import a module or function under the autogenlib namespace, the library:
    • Checks if the module/function already exists
    • If not, it analyzes the code that's performing the import to understand the context
    • It sends a request to OpenAI's API with your description and the context
    • The API generates the appropriate code
    • The code is validated, cached, and executed
    • The requested module/function becomes available for use

Examples

Generate a TOTP Generator

from autogenlib import init
init("Library for generating TOTP codes")
from autogenlib.totp import totp_generator
print(totp_generator("SECRETKEY123"))

Using Context-Awareness

from autogenlib import init
init("Library for data processing")

# Define your data structure
data = [{"user": "Alice", "score": 95}, {"user": "Bob", "score": 82}]

# Import a function - AutoGenLib will see how your data is structured
from autogenlib.processor import get_highest_score

# The function will work with your data structure without you having to specify details
print(get_highest_score(data))  # Will correctly extract the highest score

Add a Verification Function Later

# Later in your application, you need verification:
from autogenlib.totp import verify_totp
result = verify_totp("SECRETKEY123", "123456")
print(f"Verification result: {result}")

Create Multiple Modules

from autogenlib import init
init("Cryptographic utility library")

# Generate encryption module
from autogenlib.encryption import encrypt_text, decrypt_text
encrypted = encrypt_text("Secret message", "password123")
decrypted = decrypt_text(encrypted, "password123")
print(decrypted)

# Generate hashing module
from autogenlib.hashing import hash_password, verify_password
hashed = hash_password("my_secure_password")
is_valid = verify_password("my_secure_password", hashed)
print(f"Password valid: {is_valid}")

Configuration

Setting the OpenAI API Key

Set your OpenAI API key as an environment variable:

export OPENAI_API_KEY="your-api-key-here"
# Optional
export OPENAI_API_BASE_URL="https://openrouter.ai/api/v1"  # Use OpenRouter API
export OPENAI_API_KEY="openai/gpt-4.1"

Or in your Python code (not recommended for production):

import os
os.environ["OPENAI_API_KEY"] = "your-api-key-here"

Cache Location

By default, generated code is cached in ~/.autogenlib_cache. You can check this directory to see what has been generated.

Limitations

  • Requires internet connection to generate new code
  • Depends on OpenAI API availability
  • Generated code quality depends on the clarity of your description
  • Not suitable for production-critical code without review

Advanced Usage

Inspecting Generated Code

You can inspect the code that was generated for a module:

from autogenlib.totp import totp_generator
import inspect
print(inspect.getsource(totp_generator))

How AutoGenLib Uses the OpenAI API

AutoGenLib creates prompts for the OpenAI API that include:

  1. The description you provided
  2. Any existing code in the module being enhanced
  3. The full context of all previously generated modules
  4. The code that's importing the module/function (new feature!)
  5. The specific function or feature needed

This comprehensive context helps the LLM generate code that's consistent with your existing codebase and fits perfectly with how you intend to use it.

Contributing

Contributions are not welcome! This is just a fun PoC project.

License

MIT License


Note: This library is meant for prototyping and experimentation. Always review automatically generated code before using it in production environments.

Note: Of course 100% of the code of this library was generated via LLM

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

autogenlib-0.1.1.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autogenlib-0.1.1-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file autogenlib-0.1.1.tar.gz.

File metadata

  • Download URL: autogenlib-0.1.1.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.29

File hashes

Hashes for autogenlib-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7d5046be9477f5bf2aeef635e3f579e5bc8c89905a88ce6bc615c65e967f7158
MD5 57845cb126a39453c606307c9b71bbf0
BLAKE2b-256 34350f0712f9b6ed82cacbf53428a09ceba3661f207348cc6ca868d81139afdf

See more details on using hashes here.

File details

Details for the file autogenlib-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: autogenlib-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.29

File hashes

Hashes for autogenlib-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 24d819e03300f98cfe9636be31d5ee9ce89dbec17cfc5f5af3343bf5b280ca63
MD5 9c466800845cb5b9c8f6e01c4d8a32f4
BLAKE2b-256 031083498d78c1e429ec5f6ecbd7697e980d0b6022fc1ab75b973547ab8b9147

See more details on using hashes here.

Supported by

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