SDK Integration (Drop-in Replacement)
The noris API is fully OpenAI-compatible. Migrating existing applications requires minimal effort: change 3 parameters, everything else stays untouched.
OpenAI Python SDK
Section titled “OpenAI Python SDK”Before (against OpenAI):
from openai import OpenAI
client = OpenAI( api_key="sk-...")After (against noris):
from openai import OpenAI
client = OpenAI( base_url="https://ai.noris.de/v1", api_key="YOUR_API_KEY")OpenAI JavaScript SDK
Section titled “OpenAI JavaScript SDK”Before (against OpenAI):
import OpenAI from "openai";
const client = new OpenAI({ apiKey: "sk-..." });After (against noris):
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://ai.noris.de/v1", apiKey: "YOUR_API_KEY"});Anthropic SDK
Section titled “Anthropic SDK”noris offers a compatible endpoint that can be addressed directly with the Anthropic SDK:
from anthropic import Anthropic
client = Anthropic( base_url="https://ai.noris.de/v1", api_key="YOUR_API_KEY")
message = client.messages.create( model="vllm/release/gpt-oss-120b", max_tokens=1024, messages=[{"role": "user", "content": "Hello!"}])print(message.content[0].text)LangChain
Section titled “LangChain”In LangChain, it’s enough to override the base URL on the ChatOpenAI object:
Before:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o")After:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI( model="vllm/release/gpt-oss-120b", openai_api_base="https://ai.noris.de/v1", openai_api_key="YOUR_API_KEY")LlamaIndex
Section titled “LlamaIndex”In LlamaIndex, OpenAILike is configured with the noris base URL:
from llama_index.llms.openai_like import OpenAILike
llm = OpenAILike( model="vllm/release/gpt-oss-120b", api_base="https://ai.noris.de/v1", api_key="YOUR_API_KEY", is_chat_model=True)LiteLLM
Section titled “LiteLLM”In LiteLLM, noris is registered as a provider in the router:
model_list: - model_name: noris-gpt-oss litellm_params: model: vllm/release/gpt-oss-120b api_base: https://ai.noris.de/v1 api_key: YOUR_API_KEYfrom litellm import Router
router = Router(model_list=[ { "model_name": "noris-gpt-oss", "litellm_params": { "model": "vllm/release/gpt-oss-120b", "api_base": "https://ai.noris.de/v1", "api_key": "YOUR_API_KEY" } }])
response = router.completion( model="noris-gpt-oss", messages=[{"role": "user", "content": "Hello!"}])print(response.choices[0].message.content)Regardless of the SDK you choose, the same rule of thumb always applies: change 3 parameters, everything else stays untouched.
