Metadata-Version: 2.1
Name: graphfleet
Version: 0.5.36
Summary: Advanced implementation of GraphRAG for enhanced LLM reasoning
Home-page: https://github.com/Qredence/GraphFleet
License: Apache-2.0
Keywords: knowledge,graph,rag,agentic,agent
Author: Zachary
Author-email: zachary@qredence.ai
Requires-Python: >=3.11,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: alembic (>=1.13.1,<2.0.0)
Requires-Dist: asyncpg (>=0.29.0,<0.30.0)
Requires-Dist: fastapi (>=0.109.0,<0.110.0)
Requires-Dist: httpx (>=0.26.0,<0.27.0)
Requires-Dist: matplotlib (>=3.9.2,<4.0.0)
Requires-Dist: networkx (>=3.2.1,<4.0.0)
Requires-Dist: numpy (>=1.26.3,<2.0.0)
Requires-Dist: openai (>=1.6.1,<2.0.0)
Requires-Dist: pandas (>=2.1.4,<3.0.0)
Requires-Dist: pydantic (>=2.5.3,<3.0.0)
Requires-Dist: pydantic-settings (>=2.1.0,<3.0.0)
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
Requires-Dist: python-multipart (>=0.0.6,<0.0.7)
Requires-Dist: sqlalchemy (>=2.0.25,<3.0.0)
Requires-Dist: tenacity (>=8.2.3,<9.0.0)
Requires-Dist: tiktoken (>=0.5.2,<0.6.0)
Requires-Dist: uvicorn (>=0.27.0,<0.28.0)
Project-URL: Repository, https://github.com/Qredence/GraphFleet
Description-Content-Type: text/markdown

# GraphFleet

GraphRAG implementation for fleet management using FastAPI and PostgreSQL.

## Features

- GraphRAG-powered search functionality
- Async PostgreSQL database integration
- FastAPI REST API with OpenAPI documentation
- Environment-based configuration
- Poetry dependency management

## Prerequisites

- Python 3.11 or higher
- PostgreSQL 13 or higher
- Poetry for dependency management

## Installation

1. Clone the repository:
```bash
git clone https://github.com/yourusername/GraphFleet.git
cd GraphFleet
```

2. Install dependencies using Poetry:
```bash
poetry install
```

3. Copy the example environment file and update it with your settings:
```bash
cp .env.example .env
```

4. Update the `.env` file with your configuration:
- Set your PostgreSQL connection details
- Add your OpenAI API key
- Configure other settings as needed

## Development

1. Start the PostgreSQL database

2. Run the development server:
```bash
poetry run uvicorn app.main:app --reload
```

3. Access the API documentation:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc

## Project Structure

```
GraphFleet/
├── app/
│   ├── api/
│   │   └── api_v1/
│   │       └── endpoints/
│   │           └── search.py
│   ├── core/
│   │   └── config.py
│   ├── db/
│   │   ├── base.py
│   │   ├── init_db.py
│   │   └── session.py
│   ├── models/
│   ├── schemas/
│   │   └── search.py
│   ├── services/
│   │   └── search.py
│   └── main.py
├── tests/
├── .env
├── .env.example
├── pyproject.toml
└── README.md
```

## Testing

Run the test suite:
```bash
poetry run pytest
```

## License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

# Security Policy

## Supported Versions

Use this section to tell people about which versions of your project are
currently being supported with security updates.

| Version | Supported          |
| ------- | ------------------ |
| 5.1.x   | :white_check_mark: |
| 5.0.x   | :x:                |
| 4.0.x   | :white_check_mark: |
| < 4.0   | :x:                |

## Reporting a Vulnerability

Use this section to tell people how to report a vulnerability.

Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.

# Contributing to GraphFleet

First off, thank you for considering contributing to GraphFleet! It's people like you that make GraphFleet such a great tool.

## Code of Conduct

By participating in this project, you are expected to uphold our [Code of Conduct](CODE_OF_CONDUCT.md).

## How Can I Contribute?

### Reporting Bugs

This section guides you through submitting a bug report for GraphFleet. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.

- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as many details as possible.
- Provide specific examples to demonstrate the steps.

### Suggesting Enhancements

This section guides you through submitting an enhancement suggestion for GraphFleet, including completely new features and minor improvements to existing functionality.

- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Provide specific examples to demonstrate the steps.



### Pull Requests

The process described here has several goals:

- Maintain GraphFleet's quality
- Fix problems that are important to users
- Engage the community in working toward the best possible GraphFleet
- Enable a sustainable system for GraphFleet's maintainers to review contributions

Please follow these steps to have your contribution considered by the maintainers:

1. After you submit your pull request, verify that all [status checks](https://help.github.com/articles/about-status-checks/) are passing

## Styleguides

### Git Commit Messages

- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line

### Python Styleguide

All Python code must adhere to the [PEP 8 style guide](https://www.python.org/dev/peps/pep-0008/).

### Documentation Styleguide

- Use [Markdown](https://daringfireball.net/projects/markdown/) for documentation.
- Reference functions and classes in backticks.

## Additional Notes

### Issue and Pull Request Labels

This section lists the labels we use to help us track and manage issues and pull requests.

* `bug` - Issues for bugs in the codebase.
* `enhancement` - Issues for new features or improvements.
* `documentation` - Issues related to documentation.
* `help-wanted` - Issues where we need help from the community.

## Thank You!

Your contributions to open source, large or small, make projects like this possible. Thank you for taking the time to contribute.


