NimbRo API is a robust and flexible framework for API clients in Python.
- Chat Completions (nimbro_api.openai.ChatCompletions)
- Embeddings (nimbro_api.openai.Embeddings)
- Images (nimbro_api.openai.Images)
- Speech (nimbro_api.openai.Speech)
- Transcriptions (nimbro_api.openai.Transcriptions)
- Translations (nimbro_api.openai.Translations)
- Describe Anything Model (nimbro_api.nimbro_vision_servers.Dam)
- Florence-2 (nimbro_api.nimbro_vision_servers.Florence2)
- Kosmos-2 (nimbro_api.nimbro_vision_servers.Kosmos2)
- MM-Grounding-DINO and LLMDet (nimbro_api.nimbro_vision_servers.MmGroundingDino)
- Segment Anything Model 2 real-time (nimbro_api.nimbro_vision_servers.Sam2Realtime)
- Standardized interfaces
- Sensible default settings
- Monitoring of operation success
- Configurable retry behavior and timeouts
- Extensive documentation, logging, and tests
- 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.
Install this package:
pip install nimbro-apiSet 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!")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} }
NimbRo API is licensed under the BSD-3-Clause License.
Bastian Pätzold – paetzoldbastian@gmail.com