A simple AI toolkit for text processing using OpenAI and Gemini APIs
Project description
AIWand 🪄
One API to rule them all - Unified OpenAI and Gemini interface with automatic provider switching and structured data extraction from anywhere.
🚀 Stop Wrestling with AI APIs
Before: Different APIs, manual JSON parsing, provider-specific code 😫
After: One API, automatic everything ✨
import aiwand
# Works with any model - provider auto-detected
response = aiwand.call_ai(model="gpt-4o", user_prompt="Explain quantum computing?")
# returns structured json data directly
data = aiwand.extract(content="John Doe, john@example.com, (555) 123-4567")
🔧 Installation & Setup
pip install aiwand
export OPENAI_API_KEY="your-key" # Set either key (or both for fallback)
export GEMINI_API_KEY="your-key"
💡 Core Features
call_ai - Universal AI Interface
Same code works with OpenAI and Gemini - automatic provider detection:
from pydantic import BaseModel
# Basic AI calls
response = aiwand.call_ai(model="gpt-4o", user_prompt="Explain quantum computing?")
# Structured output - get Pydantic objects directly
class BlogPost(BaseModel):
title: str
content: str
tags: list[str]
blog = aiwand.call_ai(
model="gemini-2.0-flash",
user_prompt="Write a blog about AI",
response_format=BlogPost # Returns BlogPost object!
)
print(blog.title) # Direct access, no JSON parsing
# Works with any model
for model in ["gpt-4o", "gemini-2.0-flash", "o3-mini"]:
response = aiwand.call_ai(model=model, user_prompt=f"What makes {model} special?")
extract - Smart Data Extraction
Extract structured data from text, web links, documents, and images:
from pydantic import BaseModel
class CompanyInfo(BaseModel):
name: str
founded: int
employees: int
technologies: list[str]
# Extract from individual sources
contact = aiwand.extract(content="John Doe, john@example.com, (555) 123-4567")
webpage = aiwand.extract(links=["https://company.com/about"])
docs = aiwand.extract(document_links=["resume.pdf", "report.docx"])
images = aiwand.extract(images=["chart.png", "diagram.jpg"])
# Or mix all sources together with custom structure
company = aiwand.extract(
content="Research notes about tech companies...",
links=["https://company.com/about"], # Web pages
document_links=["annual_report.pdf"], # Documents
images=["company_chart.png"], # Images
response_format=CompanyInfo # Get typed object back
)
print(f"{company.name} founded in {company.founded}") # Direct access
⚡ Quick Examples
import aiwand
# Instant AI calls
summary = aiwand.summarize("Long article...", style="bullet-points")
response = aiwand.chat("What is machine learning?")
story = aiwand.generate_text("Write a haiku about coding")
# Smart classification
grader = aiwand.create_binary_classifier(criteria="technical accuracy")
result = grader(question="What is 2+2?", answer="4", expected="4")
print(f"Accuracy: {result.score}/5")
🎨 CLI Magic
# Quick chat
aiwand "Explain quantum computing simply"
# Extract from anything
aiwand extract "Dr. Sarah Johnson, sarah@lab.com" --json
aiwand extract --links https://example.com --document-links resume.pdf --images chart.png
# Built-in functions
aiwand summarize "Long text..." --style concise
aiwand chat "Hello there!"
✨ Why Choose AIWand?
| 🔄 Provider Agnostic | Same code, OpenAI or Gemini |
|---|---|
| 🏗️ Structured Output | Pydantic objects, no JSON parsing |
| 🧠 Smart Detection | Automatic provider selection |
| 📄 Universal Extraction | Text, web links, documents, images |
| ⚡ Zero Setup | Just add API keys |
| 🎯 Drop-in Ready | Minimal code changes |
📚 Documentation
- API Reference - Complete function docs
- CLI Guide - Command line usage
- Installation - Setup details
- Development - Contributing guide
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
📝 License
MIT License - see LICENSE file for details.
⭐ Star this repo if AIWand makes your AI development easier!
Made with ❤️ by Aman Kumar
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 aiwand-0.4.36.tar.gz.
File metadata
- Download URL: aiwand-0.4.36.tar.gz
- Upload date:
- Size: 76.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6358132c8e4d76b3f7f554cb207d245f5ff4f33bc010055e3505f1b559d681fc
|
|
| MD5 |
09e3121f38ac6c10e3769be4574abd20
|
|
| BLAKE2b-256 |
27256d64c6efa1655824a722bb570ed6968ec9072d9112aa32772471e43f3499
|
File details
Details for the file aiwand-0.4.36-py3-none-any.whl.
File metadata
- Download URL: aiwand-0.4.36-py3-none-any.whl
- Upload date:
- Size: 40.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c443f6a6605b5b2d42faab6d88f97d5516134cb38f7447673852b7e5d070350
|
|
| MD5 |
340ae25b9133a5bb09d8a24a97262962
|
|
| BLAKE2b-256 |
a39c326c30dca8a71f6a40363da0a8eb38ebd53f3173748bd196baa97f7165fa
|