aipim 0.1.1

AIPIM is a Rust library designed to provide a unified interface for interacting with various AI providers. It abstracts the complexities of different AI APIs, allowing developers to easily switch between providers without changing their codebase.
Documentation
# AI Primary Interface Module - AIPIM

<p align="center">
  <img src="assets/icon-nobg.png" alt="AIPIM Icon" />
</p>

[![Build Status](https://github.com/fcoury/aipim/actions/workflows/rust.yml/badge.svg)](https://github.com/fcoury/fcoury/actions)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Crates.io](https://img.shields.io/crates/v/aipim.svg)](https://crates.io/crates/aipim)

AIPIM is a Rust library designed to provide a unified interface for interacting with various AI providers. It abstracts the complexities of different AI APIs, allowing developers to easily switch between providers without changing their codebase.

## Features

- Unified interface for multiple AI providers
- Support for text and image messages
- Asynchronous message sending
- Error handling and response parsing

## Installation

Add this to your `Cargo.toml`:

```toml
[dependencies]
aipim = "0.1.0"
```

## Usage

Here's a simple example to get you started:

```rust
use aipim::client::Client;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenv::dotenv().ok();

    let client = Client::new("gpt-4o");
    let response = client.message().text("Hello, world!").send().await?;
    println!("Response: {}", response.text);
    Ok(())
}
```

## Modules

- `client`: Contains the `Client` and `MessageBuilder` structs.
- `provider`: Contains the `AIProvider` trait and implementations for different providers.

## Contributing

We welcome contributions! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for more details.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.