Skip to content

festnoze/common_tools

Repository files navigation

______ Common tools ______

Presentation

**Common tools** contains a bunch of helpers methods of common usage, which are embeded into this package to keep the code factorized and ease their reusability.

Includes

The provided tools range from:
  • Low-level helpers, like for: string, json or file management.

  • To higher level AI tools (which will be in a separate library in the future), including:

    • LLM querying tools (including: output parsing, fallbacks, paralellization and batching) powered by Langchain,

    • RAG toolbox, including:

      • A complete and modulable injection pipeline with: metadata handling, chunking, embedding, vector database creation, and querying.

      • A complete and modulable inference pipeline with: pre-treatment (query translation, multi-querying,metadata extraction & pre-filtering), hybrid search (BM25 & vector search), and post-treatment. This tool is itself based on:

      • A generic Workflow Executor capable of interpreting a scripted workflow defined into a YAML file which specify the workflow steps and structure, as well as parallele steps execution (as separate thread or async methods).

    • Agents & tools.

      • To be completed.

Installation

The package supports flexible installation profiles to minimize dependencies based on your needs.

Basic installation (core features only - includes ChromaDB as default vector database):

pip install -e <CommonToolsPath>

Installation with optional features:

# Install with Pinecone vector database support (requires C++ redistributable for pinecone-text)
pip install -e <CommonToolsPath>[pinecone]

# Install with Qdrant vector database support
pip install -e <CommonToolsPath>[qdrant]

# Install with database support (SQLite + PostgreSQL)
pip install -e <CommonToolsPath>[database]

# Install with ML/scientific computing dependencies (scikit-learn, scipy, pandas)
pip install -e <CommonToolsPath>[ml]

# Install with advanced features (langgraph, langsmith, ragas)
pip install -e <CommonToolsPath>[advanced]

# Install with multiple optional features
pip install -e <CommonToolsPath>[pinecone,qdrant,database,ml,advanced]

# Install everything (all optional dependencies)
pip install -e <CommonToolsPath>[full]

Environment variable-based installation (for CI/CD):

# Windows
set COMMON_TOOLS_INSTALL_MODE=full
pip install -e <CommonToolsPath>

# Linux/Mac
COMMON_TOOLS_INSTALL_MODE=full pip install -e <CommonToolsPath>

# Install specific profiles (comma-separated)
set COMMON_TOOLS_INSTALL_MODE=pinecone,database,ml
pip install -e <CommonToolsPath>

Available installation profiles:

  • pinecone - Pinecone vector database (requires C++ redistributable)
  • qdrant - Qdrant vector database
  • database - Database support (SQLite + PostgreSQL)
  • ml - ML/scientific computing (scikit-learn, scipy, pandas)
  • advanced - Advanced AI features (langgraph, langsmith, ragas)
  • vectordb - Both Pinecone and Qdrant
  • full - All optional dependencies

Tips:

  • Look into setup.py file, the dependencies are organized into core and optional extras.
  • Replace <CommonToolsPath> with the actual path of your local "common tools" project root folder.
  • To build the package 'common_tools', simply run the command: "libs_build.bat", from within the "common tools" root folder. The built package will be found in the "dist" folder with an auto-incremented version. Copy the '*.whl' file where you want this library to be referenced.

About

All common tools for IA, RAG, and misc. purposes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •