ai-modules


Nameai-modules JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/Cdaprod/AI-Modules
SummaryA flexible and extensible framework for managing and processing various types of data objects using AI techniques.
upload_time2024-07-31 23:57:21
maintainerNone
docs_urlNone
authorYour Name
requires_python>=3.9
licenseNone
keywords
VCS
bugtrack_url
requirements fastapi pydantic uvicorn pytest flake8 black requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Object Data AI System

## Overview

The Object Data AI System is a flexible and extensible framework for managing, processing, and transforming various types of data objects using AI techniques. It provides a RESTful API built with FastAPI for interacting with the system.

## Project Structure

```
/
├── app/
│   ├── __init__.py
│   ├── main.py
│   ├── api.py
│   ├── app.py
│   └── models/
│       ├── __init__.py
│       └── models.py
├── Dockerfile
└── docker-compose.yml
```

- `/app/`: Contains the main application code
  - `__init__.py`: Initializes the app package
  - `main.py`: Entry point of the application
  - `api.py`: Defines the API routes
  - `app.py`: Creates and configures the FastAPI application
  - `models/`: Contains the data models
    - `__init__.py`: Initializes the models package
    - `models.py`: Defines the data object models and system components
- `Dockerfile`: Defines the Docker image for the application
- `docker-compose.yml`: Defines the services for running the application

## Key Components

1. **Data Objects**: The system supports various types of data objects, including:
   - TextData: For textual content
   - MediaData: For images, audio, and video content
   - CodeData: For source code content

2. **ObjectDataAISystem**: The core system that manages data objects, transformers, and storage.

3. **DataObjectFactory**: Responsible for creating appropriate data objects based on the input type.

4. **TransformerRegistry**: Manages a collection of transformers that can be applied to data objects.

5. **DataLake**: Provides storage and retrieval capabilities for data objects.

6. **API**: A RESTful API for interacting with the system, including endpoints for creating, retrieving, processing, and transforming data objects.

## Setup and Running

### Prerequisites

- Docker
- Docker Compose

### Running the Application

1. Clone the repository to your local machine.
2. Navigate to the root directory of the project.
3. Build and run the Docker containers:

   ```bash
   docker-compose up --build
   ```

4. The API will be available at `http://localhost:8000`.

## API Usage

The API provides the following main endpoints:

- `POST /objects/`: Create a new data object
- `GET /objects/{obj_id}`: Retrieve a data object
- `POST /objects/{obj_id}/process`: Process a data object
- `POST /objects/{obj_id}/transform`: Apply a transformer to a data object
- `GET /transformers/`: List available transformers
- `POST /transformers/`: Register a new transformer

For detailed API documentation, visit `http://localhost:8000/docs` when the application is running.

## Extending the System

To extend the system:

1. Add new data object types in `app/models/models.py`.
2. Implement new transformers and register them with the `TransformerRegistry`.
3. Extend the `ObjectDataAISystem` with new processing capabilities.
4. Add new API endpoints in `app/api.py` as needed.


## Proto Buffer (gRPC)
 
To use this proto file:

1. Save it as `object_data_ai.proto` in your project directory.
2. Use the protobuf compiler (`protoc`) to generate the necessary code for your chosen programming language.
3. Implement the service defined in the proto file in your backend.
4. Use the generated client code to interact with your service from other parts of your application or from separate client applications.

For Python, you might generate the code like this:

```bash
protoc -I=. --python_out=. --grpc_python_out=. object_data_ai.proto
```

This will generate `object_data_ai_pb2.py` (containing message classes) and `object_data_ai_pb2_grpc.py` (containing service classes).

Remember to install the necessary gRPC and protobuf libraries in your Python environment:

```bash
pip install grpcio grpcio-tools
```

## Contributing

Contributions to the Object Data AI System are welcome. Please ensure that your code adheres to the project's coding standards and include appropriate tests for new features.

## License

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Cdaprod/AI-Modules",
    "name": "ai-modules",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Your Name",
    "author_email": "your.email@example.com",
    "download_url": "https://files.pythonhosted.org/packages/5c/df/c36bec27c5c33fab17abd385698a1283657193044468fbbbf64ab88605b8/ai_modules-0.1.0.tar.gz",
    "platform": null,
    "description": "# Object Data AI System\n\n## Overview\n\nThe Object Data AI System is a flexible and extensible framework for managing, processing, and transforming various types of data objects using AI techniques. It provides a RESTful API built with FastAPI for interacting with the system.\n\n## Project Structure\n\n```\n/\n\u251c\u2500\u2500 app/\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 main.py\n\u2502   \u251c\u2500\u2500 api.py\n\u2502   \u251c\u2500\u2500 app.py\n\u2502   \u2514\u2500\u2500 models/\n\u2502       \u251c\u2500\u2500 __init__.py\n\u2502       \u2514\u2500\u2500 models.py\n\u251c\u2500\u2500 Dockerfile\n\u2514\u2500\u2500 docker-compose.yml\n```\n\n- `/app/`: Contains the main application code\n  - `__init__.py`: Initializes the app package\n  - `main.py`: Entry point of the application\n  - `api.py`: Defines the API routes\n  - `app.py`: Creates and configures the FastAPI application\n  - `models/`: Contains the data models\n    - `__init__.py`: Initializes the models package\n    - `models.py`: Defines the data object models and system components\n- `Dockerfile`: Defines the Docker image for the application\n- `docker-compose.yml`: Defines the services for running the application\n\n## Key Components\n\n1. **Data Objects**: The system supports various types of data objects, including:\n   - TextData: For textual content\n   - MediaData: For images, audio, and video content\n   - CodeData: For source code content\n\n2. **ObjectDataAISystem**: The core system that manages data objects, transformers, and storage.\n\n3. **DataObjectFactory**: Responsible for creating appropriate data objects based on the input type.\n\n4. **TransformerRegistry**: Manages a collection of transformers that can be applied to data objects.\n\n5. **DataLake**: Provides storage and retrieval capabilities for data objects.\n\n6. **API**: A RESTful API for interacting with the system, including endpoints for creating, retrieving, processing, and transforming data objects.\n\n## Setup and Running\n\n### Prerequisites\n\n- Docker\n- Docker Compose\n\n### Running the Application\n\n1. Clone the repository to your local machine.\n2. Navigate to the root directory of the project.\n3. Build and run the Docker containers:\n\n   ```bash\n   docker-compose up --build\n   ```\n\n4. The API will be available at `http://localhost:8000`.\n\n## API Usage\n\nThe API provides the following main endpoints:\n\n- `POST /objects/`: Create a new data object\n- `GET /objects/{obj_id}`: Retrieve a data object\n- `POST /objects/{obj_id}/process`: Process a data object\n- `POST /objects/{obj_id}/transform`: Apply a transformer to a data object\n- `GET /transformers/`: List available transformers\n- `POST /transformers/`: Register a new transformer\n\nFor detailed API documentation, visit `http://localhost:8000/docs` when the application is running.\n\n## Extending the System\n\nTo extend the system:\n\n1. Add new data object types in `app/models/models.py`.\n2. Implement new transformers and register them with the `TransformerRegistry`.\n3. Extend the `ObjectDataAISystem` with new processing capabilities.\n4. Add new API endpoints in `app/api.py` as needed.\n\n\n## Proto Buffer (gRPC)\n \nTo use this proto file:\n\n1. Save it as `object_data_ai.proto` in your project directory.\n2. Use the protobuf compiler (`protoc`) to generate the necessary code for your chosen programming language.\n3. Implement the service defined in the proto file in your backend.\n4. Use the generated client code to interact with your service from other parts of your application or from separate client applications.\n\nFor Python, you might generate the code like this:\n\n```bash\nprotoc -I=. --python_out=. --grpc_python_out=. object_data_ai.proto\n```\n\nThis will generate `object_data_ai_pb2.py` (containing message classes) and `object_data_ai_pb2_grpc.py` (containing service classes).\n\nRemember to install the necessary gRPC and protobuf libraries in your Python environment:\n\n```bash\npip install grpcio grpcio-tools\n```\n\n## Contributing\n\nContributions to the Object Data AI System are welcome. Please ensure that your code adheres to the project's coding standards and include appropriate tests for new features.\n\n## License\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A flexible and extensible framework for managing and processing various types of data objects using AI techniques.",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/Cdaprod/AI-Modules"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "73804b0ad6aed20855203b89e937c99647ea7702ee2512135da5302e5eeef986",
                "md5": "0216e572e8a1427c5b5589223a49865d",
                "sha256": "923a73269efdf22cde73ffe8bdaa4666fc9d49b16bcfdb09e27bb3d6a290774b"
            },
            "downloads": -1,
            "filename": "ai_modules-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0216e572e8a1427c5b5589223a49865d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 4689,
            "upload_time": "2024-07-31T23:57:19",
            "upload_time_iso_8601": "2024-07-31T23:57:19.249140Z",
            "url": "https://files.pythonhosted.org/packages/73/80/4b0ad6aed20855203b89e937c99647ea7702ee2512135da5302e5eeef986/ai_modules-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5cdfc36bec27c5c33fab17abd385698a1283657193044468fbbbf64ab88605b8",
                "md5": "dd3882aaf91496c75f23057f74f5c9f1",
                "sha256": "583da1c6f71cfd48cdbaf8e8b05111aa13cb4c07a4126835bfe0ce21d296325a"
            },
            "downloads": -1,
            "filename": "ai_modules-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "dd3882aaf91496c75f23057f74f5c9f1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 6923,
            "upload_time": "2024-07-31T23:57:21",
            "upload_time_iso_8601": "2024-07-31T23:57:21.026101Z",
            "url": "https://files.pythonhosted.org/packages/5c/df/c36bec27c5c33fab17abd385698a1283657193044468fbbbf64ab88605b8/ai_modules-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-31 23:57:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Cdaprod",
    "github_project": "AI-Modules",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "fastapi",
            "specs": []
        },
        {
            "name": "pydantic",
            "specs": []
        },
        {
            "name": "uvicorn",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "flake8",
            "specs": []
        },
        {
            "name": "black",
            "specs": []
        },
        {
            "name": "requests",
            "specs": []
        }
    ],
    "lcname": "ai-modules"
}
        
Elapsed time: 0.27406s