Metadata-Version: 2.4
Name: conduix
Version: 0.1.0
Summary: Python SDK for Conduix — OpenAI-compatible multi-provider AI router by iVirtualsoft.
Author: iVirtualsoft
License: MIT
Project-URL: Homepage, https://conduix.ai
Project-URL: Repository, https://github.com/sass-srs/conduix-ai
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openai<3,>=1.40
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Dynamic: license-file

# Conduix — Python SDK

Drop-in replacement for `openai` pointed at Conduix.

## Install
```bash
pip install conduix
```

## Use
```python
from conduix import Conduix
client = Conduix(api_key="cx_live_...")

resp = client.chat.completions.create(
    model="claude-sonnet-4-20250514",
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
```

### Streaming
```python
stream = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Count to 5."}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")
```

### Async
```python
from conduix import AsyncConduix
import asyncio

async def main():
    client = AsyncConduix(api_key="cx_live_...")
    resp = await client.chat.completions.create(
        model="gemini-2.5-flash",
        messages=[{"role": "user", "content": "hi"}],
    )
    print(resp.choices[0].message.content)

asyncio.run(main())
```

### Env vars
- `CONDUIX_API_KEY` — default API key
- `CONDUIX_BASE_URL` — default base URL (default: `https://api.conduix.ai/v1`)

### Self-hosted
```python
Conduix(api_key="cx_test_...", base_url="http://localhost:3000/v1")
```

---
Built by iVirtualsoft.
