A dynamic, intent-driven Python library that interprets and executes functions based on your needs
Project description
VibeKit
A dynamic, intent-driven Python library that interprets and executes functions based on your needs.
📋 Overview
VibeKit is an innovative Python library that breaks the traditional programming paradigm. Instead of being constrained by predefined methods, VibeKit interprets your function calls dynamically, allowing you to express your intent through natural function names and parameters. This creates a flexible, intuitive development experience where the library adapts to your needs.
VibeKit uses Large Language Models (OpenAI or Anthropic) behind the scenes to understand and execute your function calls. Simply provide your API key, and VibeKit will handle the rest.
✨ Key Features
- Dynamic Function Interpretation - Call any function you can imagine, and VibeKit will interpret your intent
- Asynchronous Support - Built with full support for
async/awaitfor non-blocking operations - Intuitive API - Natural programming interface that adapts to your thinking process
- LLM Integration - Seamless integration with OpenAI (GPT-4) and Anthropic (Claude) models
- Zero Configuration - Get started with minimal setup
- Extensible Architecture - Easily add custom functionality to meet your specific needs
🚀 Installation
# Using pip
pip install vibekit
# Using poetry
poetry add vibekit
🔧 Quick Start
Initialize the client, connect to the service, and start using dynamic functions:
from vibekit import VibeKitClient
# Initialize with your API key (OpenAI or Anthropic)
client = VibeKitClient(
api_key="your_api_key", # Required: OpenAI or Anthropic API key
)
# Connect to the service
await client.connect()
# Use any function name that expresses your intent
sum_result = await client.calculate_sum(5, 10)
print(sum_result) # Output: 15
# VibeKit interprets your intent from function names and parameters
weather = await client.get_weather_for("New York")
print(weather) # Output: Weather data for New York
📖 Usage Examples
Mathematical Operations
# Addition
sum_result = await client.add(5, 3)
# or
sum_result = await client.calculate_sum(5, 3)
# Complex calculations
result = await client.calculate_compound_interest(1000, 0.05, 5)
Data Processing
# Filter a list
filtered_data = await client.filter_by_property(users, "age", "> 30")
# Sort collection
sorted_items = await client.sort_by_price(products, "ascending")
API Interactions
# Fetch data
user_data = await client.fetch_user_profile("user123")
# Send data
response = await client.submit_form({
"name": "John Doe",
"email": "john@example.com",
})
🛠️ Advanced Configuration
client = VibeKitClient(
api_key="your_api_key",
timeout=5.0, # Request timeout in seconds
retries=3, # Number of retry attempts
debug=True, # Enable debug logging
)
# You can also update configuration after initialization
client.set_config({
"timeout": 10.0,
"retries": 5
})
📚 API Documentation
Core Methods
client.connect()- Initializes the library and establishes connections to the LLM serviceclient.disconnect()- Cleans up resourcesclient.set_config(options)- Updates client configurationclient.get_status()- Returns the current connection status and provider information
Dynamic Functions
VibeKit's core philosophy allows you to call any function by name. The library interprets your intent based on:
- The function name (e.g.,
calculate_tax,fetch_user_data) - The parameters provided
- The context of your application
Under the hood, VibeKit translates your function call into a natural language description and uses GPT-4o or Claude to interpret and execute it.
What the Hell?
Is this satire? I mean... kind of. It's obviously horribly inefficient. At the same time, if you're trying to prototype something and you'd rather outsource one part of it during the process, it's not actually a horrible idea.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgements
- Special thanks to Klemen who posted this in Slack at work one day and didn't realize that the best jokes are the ones taken too far.
Built with ❤️ by the VibeKit Team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vibekit-0.1.0.tar.gz.
File metadata
- Download URL: vibekit-0.1.0.tar.gz
- Upload date:
- Size: 19.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb11d3288ff8cc8a4445c44ee1baa1ad9d64918ce48c5d083763f579c7ba7054
|
|
| MD5 |
09cd308dcb28a2de4279c805533a0ec4
|
|
| BLAKE2b-256 |
01d43ff445586660c551aa2c2b752ad0cd53f94fc947cc8589bbca9bdb676960
|
File details
Details for the file vibekit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vibekit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 26.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d88faa38a7691a5f4925863a6979f96aa556e908f354cb27bd8a51f3efc05ee1
|
|
| MD5 |
6b617a1b1484303fcbe6bb195c2c5dd4
|
|
| BLAKE2b-256 |
c1db7d37fb596dd407cd81d02d2d8cac858c93cae5b5ed3d289c4bad51af09c1
|