Metadata-Version: 2.4
Name: palmshed-sdk
Version: 0.1.0
Summary: Gemini AI client for Python
Author: Palmshed
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: google-genai>=0.1.0
Requires-Dist: gtts>=2.5.0
Requires-Dist: requests>=2.31.0
Provides-Extra: dev
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: redis
Requires-Dist: redis>=5.0.0; extra == 'redis'
Provides-Extra: vertex
Requires-Dist: google-cloud-aiplatform>=1.38.0; extra == 'vertex'
Description-Content-Type: text/markdown

# palmshed-sdk

Gemini AI client for Python. Text generation, chat, thinking, URL context, image generation, text-to-speech, and deep research.

## Install

```bash
pip install palmshed-sdk
```

With optional dependencies:

```bash
pip install palmshed-sdk[redis]    # Redis caching
pip install palmshed-sdk[vertex]   # Vertex AI image generation
```

## Usage

```python
from palmshed_sdk import GeminiAI

client = GeminiAI(api_key="your-key")

# Simple text generation
response = client.generate_text("Write a haiku about Python")

# Chat with history
messages = [
    {"role": "user", "content": "What is Flask?"},
    {"role": "assistant", "content": "Flask is a lightweight web framework."},
    {"role": "user", "content": "How do I install it?"},
]
response = client.generate_chat(messages)

# Thinking mode
result = client.generate_text_with_thinking("Explain quantum computing")
print(result["response"])
print(result["thinking_summary"])

# Text-to-speech
filepath = client.text_to_speech("Hello world")

# Image generation
result = client.generate_image("A sunset over the ocean")
print(result.filepath)
```

## Configuration

```python
from palmshed_sdk import GeminiAI, ModelConfig

# Custom model names
models = ModelConfig(
    text="gemini-2.5-flash",
    thinking="gemini-2.5-pro",
    image="gemini-2.5-flash-image",
)

client = GeminiAI(
    api_key="your-key",
    models=models,
    redis_url="redis://localhost:6379",
    go_service_url="http://localhost:8080/process",
)
```

## Environment Variables

| Variable | Description |
|----------|-------------|
| `GEMINI_API_KEY` | Required. Your Gemini API key. |
| `REDIS_URL` | Optional. Redis URL for caching. |
| `IMAGE_PROVIDER` | Optional. Image provider: `gemini`, `vertex`, `mock`. |
| `IMAGE_MODEL` | Optional. Image model name. |
| `GOOGLE_CLOUD_PROJECT` | Optional. GCP project for Vertex AI. |
| `GOOGLE_CLOUD_LOCATION` | Optional. GCP location for Vertex AI. |

## License

MIT
