Enhancing AI Interactions with Seamless File Processing and Intelligent Retrieval.
Developed with the software and tools below.
Table of Contents
The syrius_ai project is designed to enable files to be uploaded and to perform RAG (Retrieval-Augmented Generation) on these files in response to a question posed by the user. By integrating advanced AI models such as OpenAI, Anthropic and Mistral, the platform guarantees relevant and transparent contextual interactions. It supports file processing, text integration and vector storage, drawing on robust solutions such as AWS and Pinecone. Thanks to its modular architecture, syrius_ai offers reliable and scalable functionality for document processing, prompt generation and interaction with third-party services, while ensuring secure and efficient integration.
Feature | Description | |
---|---|---|
⚙️ | Architecture | The project uses a modular architecture with Nx for managing build, serve, and test configurations, enhancing efficiency and scalability. |
🔩 | Code Quality | The codebase adheres to modern JavaScript standards with TypeScript, using Prettier and ESLint for consistent style and quality. |
🔌 | Integrations | Integrates with NestJS, Langchain, and AWS SDK, among others, to provide a robust backend and AI capabilities. |
🧩 | Modularity | Highly modular, leveraging Nx to manage multiple packages and configurations, facilitating reusability and maintainability. |
🧪 | Testing | Utilizes Jest with Nx Jest preset for testing, ensuring efficient and consistent testing practices across the project. |
⚡️ | Performance | Performance is optimized through efficient use of TypeScript and modular architecture, though specific benchmarks are not detailed. |
🛡️ | Security | Uses NestJS which provides built-in security features like guards and interceptors. |
📦 | Dependencies | Key dependencies include NestJS, Langchain, AWS SDK, and various Nx plugins, supporting a wide range of functionalities. |
🚀 | Scalability | Designed for scalability with Nx and NestJS, allowing for efficient handling of increased load and traffic. |
└── syrius_ai/
├── README.md
├── apps
│ └── api
├── eslint.config.js
├── jest.config.ts
├── jest.preset.js
├── nx.json
├── package-lock.json
├── package.json
└── tsconfig.base.json
System Requirements:
- TypeScript:
version ~5.5.2
- Clone the syrius_ai repository:
git clone https://github.com/Romain-Portanguen/syrius_ai
- Change to the project directory:
cd syrius_ai
- Install the dependencies:
npm install
Run syrius_ai using the command below:
nx serve api
Run the test suite using the command below:
nx test api
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit bugs found or log feature requests for the
syrius_ai
project. - Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
Contributing Guidelines
-
Fork the Repository: Start by forking the project repository to your github account.
-
Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/Romain-Portanguen/syrius_ai
-
Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
-
Make Your Changes: Develop and test your changes locally.
-
Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
-
Push to github: Push the changes to your forked repository.
git push origin new-feature-x
-
Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
-
Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is protected under the MIT License. For more details, refer to the LICENSE file.