Quickstart
This guide shows the fastest way to send your first request to the noris “LLM as a Service” platform. Within minutes you’ll get a response from a large language model.
Prerequisites
Section titled “Prerequisites”- A valid API key for
https://ai.noris.de/v1(available against AI-Punkte). - HTTPS connectivity from your client system to the
https://ai.noris.deendpoint. - Optional: an installed HTTP client (
curl) and a runtime for Python or JavaScript/Node.js.
The API is fully OpenAI-compatible. If you already use the OpenAI SDK, it’s enough to adjust base URL, API key, and model name, see Migration from OpenAI.
The simplest call is an HTTP POST to the /chat/completions endpoint. Replace YOUR_API_KEY with your personal key.
curl -X POST https://ai.noris.de/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "vllm/release/gpt-oss-120b", "messages": [{"role": "user", "content": "Hello!"}] }'A successful response returns a JSON object with the generated text under choices[0].message.content.
Python
Section titled “Python”For Python, we recommend the official openai SDK, which works against the noris platform without any code changes. Install it once with pip install openai.
from openai import OpenAI
client = OpenAI( base_url="https://ai.noris.de/v1", api_key="YOUR_API_KEY")
response = client.chat.completions.create( model="vllm/release/gpt-oss-120b", messages=[{"role": "user", "content": "Hello!"}])print(response.choices[0].message.content)JavaScript
Section titled “JavaScript”In Node.js or the browser you can use the native fetch API. For server-side applications, never embed the API key in client code, proxy requests through a backend service instead.
const response = await fetch("https://ai.noris.de/v1/chat/completions", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Bearer YOUR_API_KEY" }, body: JSON.stringify({ model: "vllm/release/gpt-oss-120b", messages: [{role: "user", content: "Hello!"}] })});const data = await response.json();console.log(data.choices[0].message.content);Next Steps
Section titled “Next Steps”You’ve successfully sent your first request. From here, we recommend the following order:
- Text Generation (Chat Completions): understand system prompts and multi-turn conversations.
- Streaming Responses: output responses token by token in real time.
- Tool Calling (Function Calling): let the model call tools.
- Building a RAG Pipeline: bring in your own documents using embeddings and reranking.
