RessourcenKI-Werkzeuge

KI-Werkzeuge

Prompts verbessern und übersetzen, Opportunitäts- und Erfolgskriterien generieren, LLM-Chat-Completions ausführen und persönliche Prompt-Vorlagen über die Talkturo API verwalten.

const response = await fetch("https://api.talkturo.com/api/improve-prompt", {
  method: "POST",
  headers: {
    "Authorization": "Bearer tk_live_example_7xmk2q9p",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    prompt: "Fasse die wichtigsten Kundeneinwände zusammen."
  })
});

const result = await response.json();
console.log(result.text);
{
  "text": "Analysieren Sie die Kundengespräche und fassen Sie die drei häufigsten Einwände mit jeweils einem repräsentativen Zitat zusammen."
}
const response = await fetch("https://api.talkturo.com/api/translate-prompt", {
  method: "POST",
  headers: {
    "Authorization": "Bearer tk_live_example_7xmk2q9p",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    prompt: "Summarize the key objections from each customer call.",
    targetLanguage: "German"
  })
});

const result = await response.json();
console.log(result.text);
{
  "text": "Fassen Sie die wichtigsten Einwände aus jedem Kundengespräch zusammen."
}
const response = await fetch("https://api.talkturo.com/api/generate-opportunity-prompt", {
  method: "POST",
  headers: {
    "Authorization": "Bearer tk_live_example_7xmk2q9p",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    systemPrompt: "Sie qualifizieren eingehende B2B-Leads für ein Vertriebsteam."
  })
});

const result = await response.json();
console.log(result.text);
{
  "text": "Bewerten Sie, ob das Gespräch eine qualifizierte Vertriebsopportunität enthält. Berücksichtigen Sie Bedarf, Budget, Entscheidungsbefugnis und den geplanten Zeitrahmen."
}
const response = await fetch(
  "https://api.talkturo.com/api/generate-success-prompt?accountSlug=acme-sales",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer tk_live_example_7xmk2q9p",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "systemPrompt": "Sie analysieren Gespräche eines Customer-Success-Teams."
    })
  }
);

const result = await response.json();
console.log(result.text);
{
  "text": "Bestimmen Sie, ob der Kunde sein Ziel erreicht hat. Prüfen Sie, ob das Anliegen gelöst wurde, nächste Schritte vereinbart wurden und ein konkreter Mehrwert erkennbar ist."
}
const response = await fetch("https://api.talkturo.com/api/llm/chat", {
  method: "POST",
  headers: {
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "gpt-4o-mini",
    messages: [
      {
        role: "system",
        content: "Sie sind ein Assistent für Gesprächsanalysen."
      },
      {
        role: "user",
        content: "Fassen Sie die wichtigsten nächsten Schritte zusammen."
      }
    ]
  })
});

const result = await response.json();
console.log(result.choices[0].message.content);
{
  "id": "chatcmpl_example_8f3k",
  "object": "chat.completion",
  "created": 1735689600,
  "model": "gpt-4o-mini",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Die nächsten Schritte sind die Terminbestätigung und die Zusendung des Angebots."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 18,
    "total_tokens": 60
  }
}
const response = await fetch("https://api.talkturo.com/api/llm/chat", {
  method: "POST",
  headers: {
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "gpt-4o-mini",
    messages: [
      {
        role: "user",
        content: "Nennen Sie drei nächste Schritte."
      }
    ],
    stream: true
  })
});

const reader = response.body.getReader();
const decoder = new TextDecoder();

while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  console.log(decoder.decode(value, { stream: true }));
}
data: {"id":"chatcmpl_example_8f3k","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Die"},"finish_reason":null}]}

data: {"id":"chatcmpl_example_8f3k","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" nächsten Schritte"},"finish_reason":null}]}

data: [DONE]
const response = await fetch("https://api.talkturo.com/api/prompt-presets", {
  headers: {
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example"
  }
});

const result = await response.json();
console.log(result.data.presets);
{
  "success": true,
  "data": {
    "presets": [
      {
        "id": "preset_4f8a2c",
        "user_id": "user_91d2e7",
        "uid": "user_91d2e7",
        "title": "Gesprächszusammenfassung",
        "prompt": "Fassen Sie das Gespräch mit den wichtigsten Aktionen zusammen.",
        "is_default": 0,
        "is_template": 0,
        "created_at": "2025-01-15T10:30:00.000Z",
        "updated_at": "2025-01-15T10:30:00.000Z"
      }
    ]
  }
}
const response = await fetch("https://api.talkturo.com/api/prompt-presets", {
  method: "POST",
  headers: {
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    title: "Gesprächszusammenfassung",
    prompt: "Fassen Sie das Gespräch mit den wichtigsten Aktionen zusammen."
  })
});

const result = await response.json();
console.log(result.data.preset.id);
{
  "success": true,
  "data": {
    "preset": {
      "id": "preset_4f8a2c",
      "user_id": "user_91d2e7",
      "uid": "user_91d2e7",
      "title": "Gesprächszusammenfassung",
      "prompt": "Fassen Sie das Gespräch mit den wichtigsten Aktionen zusammen.",
      "is_default": 0,
      "is_template": 0,
      "created_at": "2025-01-15T10:30:00.000Z",
      "updated_at": "2025-01-15T10:30:00.000Z"
    }
  }
}
const response = await fetch(
  "https://api.talkturo.com/api/prompt-presets/preset_4f8a2c",
  {
    method: "PUT",
    headers: {
      "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      title: "Zusammenfassung und nächste Schritte"
    })
  }
);

const result = await response.json();
console.log(result.data.preset);
{
  "success": true,
  "data": {
    "preset": {
      "id": "preset_4f8a2c",
      "user_id": "user_91d2e7",
      "uid": "user_91d2e7",
      "title": "Zusammenfassung und nächste Schritte",
      "prompt": "Fassen Sie das Gespräch mit den wichtigsten Aktionen zusammen.",
      "is_default": 0,
      "is_template": 0,
      "created_at": "2025-01-15T10:30:00.000Z",
      "updated_at": "2025-01-15T11:45:00.000Z"
    }
  }
}
const response = await fetch(
  "https://api.talkturo.com/api/prompt-presets/preset_4f8a2c",
  {
    method: "DELETE",
    headers: {
      "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example"
    }
  }
);

const result = await response.json();
console.log(result.data.changes);
{
  "success": true,
  "data": {
    "changes": 1
  }
}
const response = await fetch(
  "https://api.talkturo.com/api/prompt-presets/templates",
  {
    headers: {
      "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example"
    }
  }
);

const result = await response.json();
console.log(result.data.templates);
{
  "success": true,
  "data": {
    "templates": []
  }
}

KI-Werkzeuge über die API nutzen

Verwenden Sie die Talkturo API, um Prompts zu verbessern und zu übersetzen, strukturierte Prompts zu generieren, LLM-Chat-Completions auszuführen und persönliche Prompt-Vorlagen zu verwalten.

Die API verwendet zwei Authentifizierungsmethoden. Die Prompt-Endpunkte akzeptieren Talkturo API-Keys oder Supabase-Session-Token. Die Desktop-Endpunkte für LLMs und Prompt-Vorlagen erfordern ein Supabase-JWT im Authorization-Header.

Authentifizierung

Verwenden Sie diese Methode für /api/improve-prompt, /api/translate-prompt, /api/generate-opportunity-prompt und /api/generate-success-prompt.

Authorization: Bearer tk_live_example_7xmk2q9p

Akzeptiert werden:

  • ein Talkturo API-Key mit dem Präfix tk_live_ oder tk_test_
  • ein Supabase-Session-Token als Bearer-Token
  • eine authentifizierte Supabase-Cookie-Session

Prompt verbessern

Verbessern Sie einen bestehenden Prompt, ohne dessen erkannte Eingabesprache zu ändern.

POST /api/improve-prompt

Body-Parameter

body
promptstring
Required

Der zu verbessernde Prompt. Der Endpoint prüft, ob ein wahrer Wert übergeben wurde.

Antwortfelder

textstring
Required

Der verbesserte Prompt. Die Antwort bleibt in der erkannten Eingabesprache.

Prompt übersetzen

Übersetzen Sie einen Prompt in eine angegebene Zielsprache.

POST /api/translate-prompt

Body-Parameter

body
promptstring
Required

Der zu übersetzende Prompt. Der Endpoint prüft, ob ein wahrer Wert übergeben wurde.

body
targetLanguagestring
Required

Die Zielsprache. Sie können beispielsweise German oder de übergeben.

Antwortfelder

textstring
Required

Der übersetzte Prompt.

Opportunitäts-Prompt generieren

Generieren Sie aus einem System-Prompt einen Prompt für die Bewertung von Vertriebsopportunitäten.

POST /api/generate-opportunity-prompt

Body-Parameter

body
systemPromptstring
Required

Der System-Prompt, aus dem der Opportunitäts-Prompt generiert wird.

Antwortfelder

textstring
Required

Der generierte Opportunitäts-Prompt.

Erfolgskriterien-Prompt generieren

Generieren Sie aus einem System-Prompt einen Prompt zur Definition von Erfolgskriterien.

POST /api/generate-success-prompt

Body-Parameter

body
systemPromptstring
Required

Der System-Prompt, aus dem der Prompt für Erfolgskriterien generiert wird.

Authentifizierungskontext

Bei API-Key-Aufrufen wird der Account über den API-Key bestimmt. Bei Session-Token-Aufrufen müssen Sie accountSlug als Query-Parameter übergeben. Bei Cookie-Sessions benötigt die Authentifizierung entweder accountSlug oder teamId als Query-Parameter oder Body-Feld.

query
accountSlugstring

Der Account-Slug. Er kann für Session-Token-Aufrufe erforderlich sein.

query
teamIdstring

Die Account- oder Team-ID. Sie kann für Cookie-Session-Aufrufe anstelle von accountSlug erforderlich sein.

Antwortfelder

textstring
Required

Der generierte Prompt für die Erfolgskriterien.

LLM-Chat-Completions

Führen Sie OpenAI-kompatible Chat-Completions mit einer zugelassenen Modell-ID aus. Sie können die Antwort als vollständiges JSON-Dokument oder als Server-Sent Events streamen.

POST /api/llm/chat

Der Endpoint erfordert ein Desktop-Supabase-JWT. Die URL lautet /api/llm/chat; verwenden Sie nicht /api/desktop/llm/chat.

Body-Parameter

body
modelstring
Required

Die Modell-ID. Der Wert muss in der Zulassungsliste enthalten sein. Bei Modellnamen mit dem Suffix -proxied entfernt Talkturo das Suffix vor dem Aufruf von OpenAI.

Allowed values:gpt-4.1gpt-4.1-proxiedgpt-4ogpt-4o-proxiedgpt-4o-minigpt-4o-mini-proxiedgpt-4.1-nanogpt-4.1-nano-proxiedgpt-5-nanogpt-5-nano-proxiedgpt-4o-mini-transcribe
body
messagesarray
Required

Ein nicht leeres Array mit OpenAI-kompatiblen Chat-Nachrichten.

body
streamboolean

Steuert, ob die Antwort gestreamt wird. Der Standardwert ist false.

body
additional optionsobject

Weitere OpenAI-Chat-Completion-Optionen werden unverändert an OpenAI weitergeleitet.

Streaming

Setzen Sie stream auf true, um eine SSE-Antwort zu erhalten.

Die Antwort verwendet Content-Type: text/event-stream; charset=utf-8. Weitere gesetzte Header sind Cache-Control: no-cache, no-transform, Connection: keep-alive und X-Accel-Buffering: no.

Der Server benötigt den Schlüssel OPENAI_API_KEY. Fehlt dieser Schlüssel, antwortet der Endpoint mit HTTP-Status 500.

Prompt-Presets

Verwalten Sie persönliche Prompt-Presets mit den Desktop-Endpunkten. Alle Methoden in diesem Abschnitt erfordern ein Desktop-Supabase-JWT.

GET /api/prompt-presets

Rufen Sie die Presets des authentifizierten Benutzers ab. Die Antwort ist nach is_default absteigend und anschließend nach title aufsteigend sortiert.

POST /api/prompt-presets

Erstellen Sie ein persönliches Prompt-Preset.

Body-Parameter

body
titlestring
Required

Der Titel des Presets.

body
promptstring
Required

Der Prompt-Inhalt des Presets.

PUT /api/prompt-presets/{id}

Aktualisieren Sie den Titel oder den Prompt eines persönlichen Presets. Übergeben Sie mindestens eines der beiden Felder. Leere Strings werden ignoriert.

Pfadparameter

path
idstring
Required

Die ID des zu aktualisierenden Presets.

Body-Parameter

body
titlestring

Der neue Titel des Presets.

body
promptstring

Der neue Prompt-Inhalt.

Standard-Presets und Presets, die nicht dem authentifizierten Benutzer gehören, können nicht aktualisiert werden.

DELETE /api/prompt-presets/{id}

Löschen Sie ein persönliches Prompt-Preset.

Pfadparameter

path
idstring
Required

Die ID des zu löschenden Presets.

Standard-Presets und Presets, die nicht dem authentifizierten Benutzer gehören, können nicht gelöscht werden.

GET /api/prompt-presets/templates

Rufen Sie verfügbare Prompt-Vorlagen ab. Dieser Endpoint liefert derzeit immer ein leeres Array.

Fehlerbehandlung

Die Endpoints verwenden je nach Route unterschiedliche Antwortformate. Prüfen Sie neben dem HTTP-Status immer die Antwortfelder error, success oder reason.