Skip to content

ptzld/nimbro-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:
NimbRo Vision Servers:
Miscellaneous:

🪧 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

About

A robust and flexible framework for API clients in Python

Resources

License

Stars

Watchers

Forks

Contributors

Languages