Zum Inhalt springen

SDK-Integration (Drop-in-Replacement)

Die noris-API ist vollständig OpenAI-kompatibel. Die Migration bestehender Anwendungen erfordert minimalen Aufwand: 3 Parameter ändern, der Rest bleibt unberührt.

Vorher (gegen OpenAI):

from openai import OpenAI
client = OpenAI(
api_key="sk-..."
)

Nachher (gegen noris):

from openai import OpenAI
client = OpenAI(
base_url="https://ai.noris.de/v1",
api_key="YOUR_API_KEY"
)

Vorher (gegen OpenAI):

import OpenAI from "openai";
const client = new OpenAI({ apiKey: "sk-..." });

Nachher (gegen noris):

import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://ai.noris.de/v1",
apiKey: "YOUR_API_KEY"
});

noris bietet einen kompatiblen Endpunkt, der sich direkt mit dem Anthropic-SDK ansprechen lässt:

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": "Hallo!"}]
)
print(message.content[0].text)

In LangChain genügt es, die Base URL am ChatOpenAI-Objekt zu überschreiben:

Vorher:

from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o")

Nachher:

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"
)

In LlamaIndex wird OpenAILike mit der noris Base URL konfiguriert:

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
)

In LiteLLM wird noris als Provider im Router registriert:

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
from 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": "Hallo!"}]
)
print(response.choices[0].message.content)

Unabhängig vom gewählten SDK gilt stets dieselbe Faustregel: 3 Parameter ändern, der Rest bleibt unberührt.