Skip to main content

A robust and flexible framework for API clients in Python

Project description

NimbRo API

CI PyPI Supported Versions Downloads Docs

NimbRo API is a robust and flexible framework for API clients in Python.


✨ Features

🚢 Ships with clients for the following APIs:

OpenAI
Client API Docs
nimbro_api.openai.ChatCompletions Chat Completions
nimbro_api.openai.Classify Classify
nimbro_api.openai.Embeddings Embeddings
nimbro_api.openai.Images Images
nimbro_api.openai.Speech Speech
nimbro_api.openai.Transcriptions Transcriptions
nimbro_api.openai.Translations Translations
NimbRo Vision Servers
Client API Docs
nimbro_api.nimbro_vision_servers.Dam Describe Anything Model
nimbro_api.nimbro_vision_servers.Florence2 Florence-2
nimbro_api.nimbro_vision_servers.Kosmos2 Kosmos-2
nimbro_api.nimbro_vision_servers.MmGroundingDino MM-Grounding-DINO and LLMDet
nimbro_api.nimbro_vision_servers.Sam2Realtime Segment Anything Model 2 real-time
Miscellaneous
Client API Docs
nimbro_api.misc.No No-as-a-Service
nimbro_api.misc.VlmGist VLM-GIST

🪧 All clients feature:

  • Standardized interfaces
  • Sensible default settings
  • Monitoring of operation success
  • Configurable retry behavior and timeouts
  • Extensive documentation, logging, and tests

🪧 In addition, some clients feature:

  • Response caching
  • Response healing
  • Batching of large requests
  • API generalization across providers

⚙️ Global settings and utilities are exposed at the package level.

🛠️ Custom clients can be implemented using the nimbro_api.Client and nimbro_api.ClientBase classes.


🚀 Quick Start

Install this package:

pip install nimbro-api

Set the API key for the provider you want to use (e.g. OPENROUTER_API_KEY, OPENAI_API_KEY, VLLM_API_KEY):

export OPENROUTER_API_KEY='supersecretkey'

Create and use a ChatCompletions client:

import nimbro_api
# nimbro_api.set_api_key(name="OPENROUTER_API_KEY", key="supersecretkey") # alternatively, set API key here
client = nimbro_api.openai.ChatCompletions(endpoint="OpenRouter", model="~google/gemini-flash-latest")
success, message, response = client.prompt(text="Tell me a joke!")

📖 Citation

If you utilize this package in your research, please cite one of our relevant publications.

  • Leveraging Vision-Language Models for Open-Vocabulary Instance Segmentation and Tracking
    [arXiv:2503.16538]

    @article{paetzold25vlmgist,
        author={Bastian P{\"a}tzold and Jan Nogga and Sven Behnke},
        title={Leveraging Vision-Language Models for Open-Vocabulary Instance Segmentation and Tracking},
        journal={IEEE Robotics and Automation Letters (RA-L)},
        volume={10},
        number={11},
        pages={11578-11585},
        year={2025}
    }
    
  • A Comparison of Prompt Engineering Techniques for Task Planning and Execution in Service Robotics
    [arXiv:2410.22997]

    @article{bode24prompt,
        author={Jonas Bode and Bastian P{\"a}tzold and Raphael Memmesheimer and Sven Behnke},
        title={A Comparison of Prompt Engineering Techniques for Task Planning and Execution in Service Robotics},
        journal={IEEE-RAS International Conference on Humanoid Robots (Humanoids)},
        pages={309-314},
        year={2024}
    }
    
  • RoboCup@Home 2024 OPL Winner NimbRo: Anthropomorphic Service Robots using Foundation Models for Perception and Planning
    [arXiv:2412.14989]

    @article{memmesheimer25robocup,
        author={Raphael Memmesheimer and Jan Nogga and Bastian P{\"a}tzold and Evgenii Kruzhkov and Simon Bultmann and Michael Schreiber and Jonas Bode and Bertan Karacora and Juhui Park and Alena Savinykh and Sven Behnke},
        title={{RoboCup@Home 2024 OPL Winner NimbRo}: Anthropomorphic Service Robots using Foundation Models for Perception and Planning},
        journal={RoboCup 2024: RoboCup World Cup XXVII},
        volume={15570},
        pages={515-527},
        year={2025}
    }
    

📄 License

NimbRo API is licensed under the BSD-3-Clause License.


👤 Author

Bastian Pätzold – paetzoldbastian@gmail.com

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

nimbro_api-0.2.3.tar.gz (6.0 MB view details)

Uploaded Source

Built Distribution

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

nimbro_api-0.2.3-py3-none-any.whl (6.1 MB view details)

Uploaded Python 3

File details

Details for the file nimbro_api-0.2.3.tar.gz.

File metadata

  • Download URL: nimbro_api-0.2.3.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nimbro_api-0.2.3.tar.gz
Algorithm Hash digest
SHA256 e7b3224fd07492ead9702cef557bf610b1703dfd31f63692d8fcd0fde382d2a7
MD5 d34d0eff76d1d586145ef16f1999a081
BLAKE2b-256 2f8eb9c5f55db98dda6a75606b05cb7c7279f6b754fff35ab8a6471cda5ec89b

See more details on using hashes here.

Provenance

The following attestation bundles were made for nimbro_api-0.2.3.tar.gz:

Publisher: release.yml on ptzld/nimbro-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nimbro_api-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: nimbro_api-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 6.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nimbro_api-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d2824ebb488d19bbb290d7247369dd96c2e661ae4a05002df5bfc875778263a8
MD5 5c851e00ed033239080d707197a13069
BLAKE2b-256 2f4aa3ab789812159231e680ed5978bbd2ba107e8b2e8aa40bd5af63a111be8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nimbro_api-0.2.3-py3-none-any.whl:

Publisher: release.yml on ptzld/nimbro-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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