A robust and flexible framework for API clients in Python
Project description
NimbRo API
NimbRo API is a robust and flexible framework for API clients in Python.
✨ Features
🚢 Ships with clients for the following APIs:
OpenAI:
- 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)
NimbRo Vision Servers:
- 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)
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nimbro_api-0.1.1.tar.gz.
File metadata
- Download URL: nimbro_api-0.1.1.tar.gz
- Upload date:
- Size: 5.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f637b63a053d3a43571dd36072c8582f3a2a5152ca41f6a8328be0cc2a474a87
|
|
| MD5 |
3b6d163eb1c418ece110a48789b5e2ce
|
|
| BLAKE2b-256 |
58f306d24b97ae0f4c17a6d74e93b616069bfe02fc7f1519c6aec06eff1888b1
|
Provenance
The following attestation bundles were made for nimbro_api-0.1.1.tar.gz:
Publisher:
release.yml on ptzld/nimbro-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nimbro_api-0.1.1.tar.gz -
Subject digest:
f637b63a053d3a43571dd36072c8582f3a2a5152ca41f6a8328be0cc2a474a87 - Sigstore transparency entry: 1174472123
- Sigstore integration time:
-
Permalink:
ptzld/nimbro-api@24ace97701faff9e5b158be2e2b464354ff4368a -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/ptzld
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@24ace97701faff9e5b158be2e2b464354ff4368a -
Trigger Event:
release
-
Statement type:
File details
Details for the file nimbro_api-0.1.1-py3-none-any.whl.
File metadata
- Download URL: nimbro_api-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b3dc279cf2adce7835e98ad14b70625a02dea411a6ce18c95e824382bf6b74d
|
|
| MD5 |
a4e3f62697bfcb6aaf302694dd356f1d
|
|
| BLAKE2b-256 |
587d1d26891a298d630977797220fda35e021ff172c3106e418011fb90b28d07
|
Provenance
The following attestation bundles were made for nimbro_api-0.1.1-py3-none-any.whl:
Publisher:
release.yml on ptzld/nimbro-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nimbro_api-0.1.1-py3-none-any.whl -
Subject digest:
4b3dc279cf2adce7835e98ad14b70625a02dea411a6ce18c95e824382bf6b74d - Sigstore transparency entry: 1174472134
- Sigstore integration time:
-
Permalink:
ptzld/nimbro-api@24ace97701faff9e5b158be2e2b464354ff4368a -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/ptzld
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@24ace97701faff9e5b158be2e2b464354ff4368a -
Trigger Event:
release
-
Statement type: