zunnoai 0.1.0
Flexible LLM interface for Ollama and more
License: MIT
Requires Python: >=3.7

# ZunnoAI

A flexible, modular Python package for using Ollama LLMs (and more in future).  
Easily run, batch, and manage local LLMs with a simple interface.  
PyPI-ready, extensible, and professional.

---

## 🚀 Features

- **Supports all Ollama models** (e.g. gemma, llama, mistral, etc.)
- **Easy Python API**: Just import and use
- **Batch inference**: Run multiple prompts at once
- **History logging**: Track your prompt/response history
- **Auto model selection**: Use any local Ollama model by name
- **Ready for future**: HuggingFace/OpenAI support coming soon
- **PyPI installable**: Clean, modular, and production-ready

---

## 📦 Installation

Clone the repo and install locally:

```bash
git clone <your-repo-url>
cd zunnoai
pip install .
```

---

## 🧑‍💻 Usage Examples

### List available models

```python
from zunnoai import Zunno

llm = Zunno("gemma:2b")
print("Available models:", llm.list_models())
```

### Run a prompt

```python
from zunnoai import Zunno

llm = Zunno("gemma:2b")
response = llm.run("Tell me a joke about AI.")
print("AI:", response)
```

### Batch prompts

```python
from zunnoai import Zunno

llm = Zunno("gemma:2b")
prompts = ["What is Python?", "What is machine learning?"]
results = llm.run_batch(prompts)
for i, res in enumerate(results):
    print(f"Prompt {i+1}: {prompts[i]}\nAI: {res}\n")
```

### Show history

```python
from zunnoai import Zunno

llm = Zunno("gemma:2b")
llm.run("Say hello!")
llm.show_history()
```

### CLI Usage

```bash
python -m zunnoai list
python -m zunnoai pull llama3
python -m zunnoai run gemma:2b "What is AI?"
python -m zunnoai --help
```
```

---

### 2. **examples/example_usage.py** (Update karo)

```python
from zunnoai import Zunno

# List available models
llm = Zunno("gemma:2b")
print("Available models:", llm.list_models())

# Run a prompt
response = llm.run("Tell me a joke about AI.")
print("AI:", response)

# Batch prompts
prompts = ["What is Python?", "What is machine learning?"]
results = llm.run_batch(prompts)
for i, res in enumerate(results):
    print(f"Prompt {i+1}: {prompts[i]}\nAI: {res}\n")

# Show history
llm.show_history()
```

---

### 3. **Docstrings (Optional but Professional)**

Aap chahein toh Zunno class aur public methods mein docstrings bhi add kar sakte hain, jaise:

```python
class Zunno:
    """
    Main interface for using Ollama LLMs via Python or CLI.
    """
    def list_models(self):
        """
        List all available Ollama models on the local server.
        Returns: list of model names (str)
        """
        ...
```

---

### 4. **README.md — Features, Requirements, Contributing, License (Already Provided)**

Aapka README.md already kaafi strong hai, bas usage section ko polish kar lo.

---

Aap yeh changes kar lo.  
Jab ho jaaye, toh batao — agla step (PyPI publish ya koi aur feature) shuru karenge!
## ⚙️ API Reference

- `Zunno(model_name, ollama_url=..., output_format=..., log_to_file=..., log_file=...)`
- `run(prompt, stream=False, **kwargs)`
- `run_batch(prompts, **kwargs)`
- `show_history()`
- `help()`

---

## 🏗️ Project Structure
zunnoai/
├── zunnoai/
│ ├── core/
│ ├── models/
│ ├── api/
│ ├── utils/
│ └── config.py
├── tests/
├── examples/
├── setup.py
├── README.md
└── LICENSE


---

## 📝 Requirements

- Python 3.7+
- [Ollama](https://ollama.com/) running locally
- `requests` Python package

---

## 🛠️ Extending

- Add new models in `zunnoai/models/`
- Add new APIs in `zunnoai/api/`
- Utilities in `zunnoai/utils/`

---

## 🤝 Contributing

1. Fork this repo
2. Create a feature branch
3. Make your changes
4. Submit a pull request

---

## 📄 License

MIT License

---

## 🙋‍♂️ Contact

For issues or suggestions, open an issue or contact the maintainer.