Thanks to visit codestin.com
Credit goes to github.com

Skip to content

One API to rule them all - Unified OpenAI and Gemini interface with automatic provider switching and structured data extraction from anywhere.

License

Notifications You must be signed in to change notification settings

onlyoneaman/aiwand

Repository files navigation

AIWand πŸͺ„

One API to rule them all - Unified OpenAI and Gemini interface with automatic provider switching and structured data extraction from anywhere.

PyPI version Python versions License Coverage Status Downloads Downloads Downloads

πŸš€ 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, [email protected], (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, [email protected], (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, [email protected]" --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

🀝 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

About

One API to rule them all - Unified OpenAI and Gemini interface with automatic provider switching and structured data extraction from anywhere.

Resources

License

Contributing

Stars

Watchers

Forks