Skip to main content

A library that provides common utilities AI-related.

Project description

core-genai

A library that provides common utilities AI-related.


Python Versions License Pipeline Status Docs Status Security

Installation

pip install core-genai
uv pip install core-genai

Features

  • Unified agent interface: all providers share the same IAgent API: analyze, get_text, get_texts, get_cost, and get_metadata.

  • Multi-provider support: plug-and-play agents for:

    • Google Gemini (GeminiAgent)

    • Anthropic Claude (ClaudeAgent)

    • OpenAI ChatGPT (ChatGPTAgent)

    • xAI Grok (GrokAgent, inherits from ChatGPTAgent)

  • Async-first, sync-friendly: agents are natively async; wrap any agent with SyncWrapper from core-mixins for transparent synchronous access.

  • Normalized usage metadata: get_metadata() always returns a UsageMetadata TypedDict with consistent keys (input_tokens, output_tokens, total_tokens, cost_usd) plus provider-specific optional fields (cached_tokens, cache_creation_tokens, reasoning_tokens).

  • Built-in cost estimation: get_cost() computes the USD cost for any response using per-model pricing tables bundled with each agent.

  • Factory registration: agents are auto-registered by class name; instantiate any agent with IAgent.create_agent("GeminiAgent", api_key=...).

  • Lazy client initialization: the underlying SDK client is created only on first use, so importing an agent has no side effects.

  • Batch job support via IScheduler: Gemini, Claude, ChatGPT, and Grok all implement schedule_job, check_job_status, and extract_job_results for large-scale asynchronous inference at reduced cost. Users pass simple BatchRequest objects; the agents handle provider-specific serialization internally.

  • Normalized batch contracts: ScheduledJobMetadata and ScheduledJobResponse are defined once in base.py and shared across all providers, with a common job_id field and optional timing fields (start_time, end_time) for providers that expose them.

Quick Start

pip install core-genai
pip install -e ".[dev]"    # For development

Testing Across Python Versions

A helper script is included to run all functional tests against every virtual environment matching .venv* in the project root, making it easy to verify compatibility across Python versions (CPython and PyPy):

bash tests/run_all_venvs.sh

Each .venv* directory must already exist and have the package installed. The script iterates over every environment, runs all scripts under tests/functional/, prints the exit code for each, and moves on to the next.

Contributing

Contributions are welcome! Please:

  1. Fork the repository

  2. Create a feature branch

  3. Write tests for new functionality

  4. Ensure all tests pass: python manager.py run-tests

  5. Run linting: pylint core_genai

  6. Run security checks: bandit -r core_genai

  7. Submit a pull request

License

This project is licensed under the MIT License. See the LICENSE file for details.

Support

For questions or support, please open an issue on GitLab or contact the maintainers.

Authors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

core_genai-1.1.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

core_genai-1.1.0-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file core_genai-1.1.0.tar.gz.

File metadata

  • Download URL: core_genai-1.1.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for core_genai-1.1.0.tar.gz
Algorithm Hash digest
SHA256 f96f8f519118370b221fc009a52161044d4ade16de534e96e074f06fc4a6129b
MD5 fc930a5450c55c006a4a2d354e1d165b
BLAKE2b-256 ce1d6818be7ad2bb507df7c4154eef79c8579e0478607acff0f08d80ae94540d

See more details on using hashes here.

File details

Details for the file core_genai-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: core_genai-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for core_genai-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c4a18bf5d922a674f4672b49dcfc6c728fc5bcb141ae286572f7bf82b821552
MD5 460220eef1f5618dbeade7488f2c990d
BLAKE2b-256 094e044aba5e6999ed1d46177dd71f4f667134e6a82356a7b8b5a5480778ab7a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page