Externe Integrationen

Eine Knowledge Group aus deinem eigenen Backend durchsuchen, direkt über HTTP oder mit dem npm-Client.

Der RAG Service stellt einen Endpoint für externe Integrationen bereit: die Suche. Es ist reines HTTP mit JSON, jedes Backend, das eine Anfrage stellen kann, kann ihn also nutzen, und der Header x-api-key ist die einzige Voraussetzung, siehe Voraussetzungen.

Endpoint

POST {API_BASE_URL}/api/resource-groups/{resourceGroupId}/search

resourceGroupId ist die Group ID der zu durchsuchenden Knowledge Group.

Request-Body

FeldTypPflichtBeschreibung
querystringJaDer Text, nach dem gesucht wird.
limitnumberNeinMaximale Anzahl zurückgegebener Chunks, von 1 bis 20. Standard 3.
rolestringNeinFindet nur Resources mit dieser Role oder ganz ohne Role, siehe Role Filter.
{
    "query": "What is your return policy?",
    "limit": 5,
    "role": "customer"
}

Response

{
    "query": "What is your return policy?",
    "count": 2,
    "notes": [],
    "results": [
        {
            "id": "3b7f1c9e-2d4a-4b8c-9e1f-0a2b3c4d5e6f",
            "resource_id": "f2c1a0d4-7c2e-4e1a-9a9b-3d5f6c7b8a90",
            "content": "Items can be returned within 30 days of delivery…",
            "added_at": "2026-01-14T09:32:00Z",
            "score": 0.8123
        }
    ]
}

results ist bereits nach score sortiert, höchster Wert zuerst. Jeder Eintrag ist ein Chunk, keine ganze Resource, siehe Chunks verstehen. notes kann kurze Erklärungen zur Suche selbst enthalten, z. B. dass nichts wirklich gepasst hat, siehe Suche und Ranking. Alle Felder und Statuscodes listet die Request-Referenz.

Ein API-Key ist ein Zugangsdatum für dein Konto. Rufe diesen Endpoint nie direkt aus dem Browser mit deinem Key auf, bewahre ihn auf einem Server auf, den du kontrollierst, siehe API-Keys.

Beispiel

const searchKnowledge = async (query: string, role?: string) => {
    const response = await fetch(
        `${process.env.API_BASE_URL}/api/resource-groups/${process.env.TUIX_RAG_GROUP_ID}/search`,
        {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'x-api-key': process.env.TUIX_RAG_API_KEY!,
            },
            body: JSON.stringify({ query, limit: 5, role }),
        },
    )
 
    if (!response.ok) {
        throw new Error(`RAG search failed: ${response.status}`)
    }
 
    const { results } = await response.json()
    return results
}

Client-Paket

Unser npm-Client-Paket kapselt denselben Endpoint mit generierten Typen.

npm i tuix-rag-service-client

Konfiguriere ihn mit deiner Basis-URL und deinem API-Key:

import { ClientApi, Configuration } from 'tuix-rag-service-client'
 
export const ragClient = new ClientApi(
    new Configuration({
        basePath: process.env.API_BASE_URL,
        apiKey: process.env.TUIX_RAG_API_KEY,
    }),
)

Anschliessend mit apiSearchResourceGroup suchen:

const response = await ragClient.apiSearchResourceGroup({
    resourceGroupId: process.env.TUIX_RAG_GROUP_ID!,
    searchRequestDTO: {
        query: 'What is your return policy?',
        limit: 5,
        role: 'customer',
    },
})
 
console.log(response.results)

Auf dieser Seite