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.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-3-flash-preview")
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.0.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.0-py3-none-any.whl (6.1 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nimbro_api-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 347b79681638c2bafc38dba1980980081ffa961839713359cee3dd68c74bc226
MD5 21fb5f0c0cc273a3da1c410facf07d7f
BLAKE2b-256 8beb152cdc062f0006556d71e8cf0ff754ebdf6afb1a31735e375529bd4348e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for nimbro_api-0.2.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: nimbro_api-0.2.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c5e950d2264c58320c32181850e3fb2a17d2c8c7af7f03f9419bf91e7f62013d
MD5 87ef7242c68bacb9f378d8dfd532a15c
BLAKE2b-256 1d45d48b73cd1fedd923eff7e22b01bdb4dbfdff62be22bd20326ed6e56a8c4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nimbro_api-0.2.0-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