Skip to main content

st-orcarouter

A Streamlit connection for OrcaRouter — an OpenAI-compatible LLM gateway with adaptive routing across 150+ models behind a single API key.

st-orcarouter plugs OrcaRouter into Streamlit's st.connection mechanism, so you get cached completions, token-by-token streaming for st.write_stream, and a model list for st.selectbox without writing the client wiring yourself.

I'm an engineer on the OrcaRouter team.

Install

pip install st-orcarouter

Quickstart

  1. Get an API key at https://www.orcarouter.ai/console.

  2. Add it to .streamlit/secrets.toml:

    [connections.orcarouter]
    api_key = "sk-orca-xxxx"
    
  3. Use it in your app:

    import streamlit as st
    from st_orcarouter import OrcaRouterConnection
    
    conn = st.connection("orcarouter", type=OrcaRouterConnection)
    
    # One-shot, cached completion
    st.write(conn.chat("Tell me a joke", ttl=3600))
    
    # Streaming straight into the chat UI
    st.write_stream(conn.stream("Write a short story"))
    
    # Populate a model picker with the models your key can use
    model = st.selectbox("Model", conn.list_models())
    
  4. Run it:

    streamlit run your_app.py
    

A complete chatbot is in examples/streamlit_app.py.

API

st.connection("name", type=OrcaRouterConnection) returns an OrcaRouterConnection with:

Member Description
chat(messages, *, model="orcarouter/auto", ttl=None, **params) -> str Non-streaming completion, cached with st.cache_data. messages may be a prompt string or a list of chat messages.
stream(messages, *, model="orcarouter/auto", **params) -> Iterator[str] Streaming completion that yields content deltas; pass it to st.write_stream.
list_models(*, ttl=3600, chat_only=True) -> list[str] Model ids your key can use (via GET /v1/models), cached. chat_only filters out image / audio / embedding models.
client The underlying authenticated openai.OpenAI client for anything not wrapped here (embeddings, tool calls, etc.).

Extra keyword arguments (temperature, reasoning_effort, extra_body, ...) are forwarded to the OpenAI chat-completions call unchanged.

Models and routing

Configuration

The API key is resolved in this order:

  1. st.connection(..., api_key="sk-orca-...")
  2. the [connections.<name>] section of .streamlit/secrets.toml
  3. the ORCAROUTER_API_KEY environment variable

You can override the base URL with base_url= or a base_url secret (defaults to https://api.orcarouter.ai/v1).

Development

pip install -e ".[dev]"
pytest                              # offline unit tests, no API key needed
python scripts/orcarouter-live-test.py   # live end-to-end check (needs a real key)

License

Apache-2.0.

Metadata

Release files for st-orcarouter 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for st-orcarouter 0.1.0
File Size Uploaded
st_orcarouter-0.1.0.tar.gz 12.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for st-orcarouter 0.1.0
File Interpreter ABI Platform
st_orcarouter-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.4 kB

Release files / st_orcarouter-0.1.0.tar.gz

Download URL st_orcarouter-0.1.0.tar.gz
Size 12.8 kB
Tags Source
SHA-256 checksum
How to use checksums
d1dff859b665f7c2eb9a1548116fcda9cf20d19935e5528d43d8a9d486bf58f4
BLAKE2b-256 checksum
How to use checksums
b8d37c5e4147c1b326627472a8004d80d643b5fb7299b50e2c934f7ae578f379
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / st_orcarouter-0.1.0-py3-none-any.whl

Download URL st_orcarouter-0.1.0-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c7d5367b7c4e26da4f4c63400bea6085abeec2782a4eff1d6971c82524d11cc9
BLAKE2b-256 checksum
How to use checksums
b254a9b336651d25ab94dea557aaf74185b4f12d2d239531685fa0083ecbd1a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page