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.4.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.4-py3-none-any.whl (6.1 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nimbro_api-0.2.4.tar.gz
Algorithm Hash digest
SHA256 648b69e3c2503cc65db349744afb03a76a1f49932233942c77067ab4e6d34bff
MD5 8316722472167f83cc5d77633c207730
BLAKE2b-256 8aeee91d87b3488d30e2682723f4d5a7bfcf62f355771eb2214f238d9e4e9c45

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: nimbro_api-0.2.4-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.14

File hashes

Hashes for nimbro_api-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 19429225a066c7aa120bb738f57c8a0cda73c2573842c0b892e59ab4ad6c2e19
MD5 ecca82e1dd071c1192bfb56ebb26a80c
BLAKE2b-256 d3da50d7c81ebd4f581cd70caeff24f359a9ce3d0a0157e27d2b0eaf594679c6

See more details on using hashes here.

Provenance

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