Metadata-Version: 2.4
Name: autourgos-google-modelkit
Version: 1.0.0
Summary: Google Gemini text and vision model wrappers for the Autourgos framework.
Author-email: DevxJitin <devxjitin@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/autourgoskit/autourgos-google-modelkit
Project-URL: Repository, https://github.com/autourgoskit/autourgos-google-modelkit
Project-URL: Issues, https://github.com/autourgoskit/autourgos-google-modelkit/issues
Keywords: ai,llm,agents,agentic-ai,autourgos,genai,autonomous-agents,prompt-engineering,rag,tool-calling,machine-learning,nlp
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: google-genai>=1.0.0
Requires-Dist: autourgos-core>=0.1.0
Provides-Extra: test
Requires-Dist: pytest>=8.0; extra == "test"

<div align="center">
  <img src="./assets/logo.png" alt="Autourgos Logo" width="300">
  <h1>Autourgos Google ModelKit ♊</h1>
  <p><em>Google Gemini text and vision model wrappers for the Autourgos framework.</em></p>

  [![Developed by DevxJitin](https://img.shields.io/badge/Developed%20by-DevxJitin-0e76a8?style=flat-square&logo=github)](https://github.com/DevxJitin) [![Documented by Sonia](https://img.shields.io/badge/Documented%20by-Sonia-10b981?style=flat-square&logo=github)](https://github.com/SoniaDahiya) [![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg?style=flat-square&logo=python)](https://www.python.org/)
</div>

---

Welcome to the **Autourgos Google ModelKit**! This package is the easiest way to connect your Python applications and AI agents to Google's powerful **Gemini** models.

Unlike complex frameworks, this package is lightweight and specifically designed to provide a clean, object-oriented wrapper around the official `google-genai` SDK.

---

## 📦 Installation

```bash
pip install autourgos-google-modelkit
```

---

## 🔑 Step 1: Get Your API Key
To use Gemini, you need an API key from Google.
1. Go to [Google AI Studio](https://aistudio.google.com/app/apikey).
2. Click **Create API Key**.
3. Set this key in your terminal before running your code:

**Windows PowerShell:**
```powershell
$env:GOOGLE_API_KEY="your-api-key-here"
```

**Mac/Linux:**
```bash
export GOOGLE_API_KEY="your-api-key-here"
```

---

## 🚀 Beginner's Quick Start

There are two main models you can use:
1. **GoogleTextModel**: For normal chat and reasoning.
2. **GoogleMultiModel**: For analyzing images, videos, audio, and PDFs.

### Text Generation (GoogleTextModel)

The `.invoke()` method is the easiest way to talk to the AI.

```python
from autourgos_google_modelkit import GoogleTextModel

# Create the brain
llm = GoogleTextModel(model="gemini-2.5-flash")

# Ask a question
answer = llm.invoke("Explain quantum computing to a 5 year old.")
print(answer)
```

### Vision & Documents (GoogleMultiModel)

Want the AI to look at an image or read a PDF? Use the Vision model!

```python
from autourgos_google_modelkit import GoogleMultiModel
from pathlib import Path

# Create the vision brain
vision_llm = GoogleMultiModel(model="gemini-2.5-flash")

# Point to an image file on your computer
my_image = Path("dog_photo.jpg")

# Ask a question about the image
answer = vision_llm.invoke(
    prompt="What breed of dog is in this photo?",
    files=[my_image]
)
print(answer)
```

---

## 🛠️ Advanced Features (Made Easy!)

### 1. Connecting to Autourgos Agents
These models are designed to plug directly into any Autourgos Agent seamlessly because they implement the standard `.invoke()` method.

```python
from autourgos_react_agent import Create_ReAct_Agent

agent = Create_ReAct_Agent(llm=llm)
agent.invoke("Solve this puzzle...")
```

### 2. System Instructions (Personas)
You can tell the AI exactly how it should behave.

```python
llm = GoogleTextModel(
    model="gemini-2.5-flash",
    system_instruction="You are a pirate. Answer everything in pirate speak."
)
print(llm.invoke("How do I learn Python?")) # "Arrr matey, ye must first download the Python interpreter..."
```

### 3. "Thinking" Models (Gemini 2.0 Flash Thinking)
Some newer models can output their internal "thoughts" before giving an answer.

```python
llm = GoogleTextModel(
    model="gemini-2.0-flash-thinking-exp", 
    thinking_level="high"
)
```

### 4. Structured Output (JSON)
If you are building an app, you often want the AI to return data in a predictable dictionary/JSON format instead of a random paragraph.

```python
llm = GoogleTextModel(
    model="gemini-2.5-flash",
    structured_output=True # Forces the AI to return a clean JSON object
)

result = llm.invoke("Give me 3 colors and their hex codes.")
print(result["colors"]) # You can access it like a normal dictionary!
```

---

## ❓ FAQ
**What is the difference between `gemini-2.5-flash` and `gemini-2.5-pro`?**
- `flash` is extremely fast and very cheap. It is best for 95% of tasks.
- `pro` is slower and more expensive, but much better at highly complex coding or logic puzzles.
