Prompt-Vorlagen
Eingabevorlagen auflisten
/api/v1/prompt-templatesGeben Sie den Katalog der für den Aufrufer verfügbaren Eingabevorlagen zurück. Eine Eingabevorlage ist eine wiederverwendbare, parametrisierte LLM-Eingabe, die eine bestimmte Art von Marketingtext erzeugt (z. B. Betreffzeilen, Social-Media-Beiträge). Jeder Eintrag bewirbt die Parametersteckplätze, die er akzeptiert, über das Array parameters.
Alle Abfrageparameter sind optional und werden mit UND-Semantik kombiniert. Übergeben Sie die zurückgegebene id einer Vorlage als promptTemplateId auf POST /prompt-template-runs.
Abfrageparameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
country | string | — | ISO-3166-1-Alpha-2-Ländercode, z. B. de oder us. |
language | string | — | ISO-639-1-Sprachcode, z. B. de oder en. |
categoryKey | string | — | Beschränken Sie die Auflistung auf Vorlagen in einer einzelnen Kategorie (passt zu :attr:PromptTemplate.categoryKey). |
type | string | — | Beschränken Sie die Auflistung auf einen einzelnen Aufgabentyp, unabhängig vom Gebietsschema. Passt zu :attr:PromptTemplate.type (z. B. headlines, summarize, blog_intro). |
displayedInApp | boolean | — | Filtern Sie danach, ob die Vorlage in der In-App-Auswahl angezeigt wird. Weglassen, um sowohl angezeigte als auch ausgeblendete Vorlagen zurückzugeben. |
page | integer | 1 | Seitennummer zum Abrufen. Die erste Seite ist 1 (nicht 0). |
size | integer | 20 | Anzahl der Elemente pro Seite. Maximum 100. |
Antwort
pageobject
sizeintegerAngeforderte Seitengröße. Wird zurückgesendet, auch wenn data weniger Elemente enthält (z. B. auf der letzten Seite).totalElementsintegerGesamtzahl der Elemente über alle Seiten.totalPagesintegerGesamtzahl der Seiten für die angeforderte size.currentPageintegerZurückgegebene Seitennummer. Die erste Seite ist 1 (nicht 0).dataarray<object>Elemente auf der aktuellen Seite. Kann auf der letzten Seite weniger als page.size enthalten.
idstringStabiler, global eindeutiger Bezeichner für diese Vorlage (der Zeilenprimärschlüssel in der zugrundeliegenden Eingabetabelle). Übergeben Sie diesen als promptTemplateId auf POST /prompt-template-runs — er reicht allein aus, um die Eingabe zu lösen; kein separates Feld language erforderlich.keystringLesbarer zusammengesetzter Schlüssel der Form {type}.{language}_{COUNTRY} (z. B. subject_lines.de_DE). Nützlich zum Filtern / Gruppieren in UI-Auswahlgeräten und zum Debuggen. Um eine Vorlage auszuführen, verwenden Sie stattdessen id — Schlüssel sind nicht über zukünftige Schemaänderungen hinweg eindeutig.typestringGebietsschema-agnostischer Bezeichner für die Art der Aufgabe, die diese Vorlage erzeugt (z. B. headlines, summarize, blog_intro). Geteilt durch jede Gebietsschemavariante der gleichen Vorlagenart, anders als id, das pro Gebietsschema eindeutig ist. Filtern Sie die Auflistung nach type, um zu einer einzelnen Aufgabe über Gebietsschemas einzugrenzen.categoryKeystringBezeichner der Kategorie, zu der diese Vorlage gehört (z. B. E-Mail, sozial, Blog). Wird von der Benutzeroberfläche verwendet, um Vorlagen in Auswahlgeräten zu gruppieren.translationKeystringi18n-Schlüssel für den Anzeigenamen der Vorlage. Lösen Sie auf der Clientseite zu einer lokalisierten Zeichenkette auf; zeigen Sie den rohen Schlüssel nicht an Benutzer.categoryTranslationKeystringi18n-Schlüssel für den Anzeigenamen der Vorlagenkategorie. Lösen Sie auf der Clientseite auf, wie bei translationKey.descriptionstringEnglische Beschreibung, was diese Vorlage erzeugt und wann sie verwendet wird. Für die Anzeige für Endbenutzer müssen Sie translationKey stattdessen zu einer lokalisierten Zeichenkette auflösen.countrystringISO-3166-1-Alpha-2-Ländercode, für den diese Vorlage abgestimmt wurde. Kombiniert mit language, um das richtige Einbettungsmodell auszuwählen.languagestringISO 639-1-Sprachcode, für den diese Vorlage optimiert wurde.defaultInvocationCountintegerWie viele Male der zugrunde liegende LLM-Aufruf standardmäßig parallel ausgeführt wird. Höhere Werte ergeben mehr Vielfalt zu höheren Kosten. Wird durch sampleCount in der Generierungsanfrage überschrieben.defaultSampleCountintegerStandardanzahl der zurückgegebenen unterschiedlichen Textvarianten pro Generierung. Der Benutzer kann dies über sampleCount in der Anfrage überschreiben.displayedInAppbooleanOb die Vorlage in der Vorlagenauswahl-UI angezeigt werden soll. Vorlagen mit false sind immer noch über Schlüssel aufrufbar, aber in Listenansichten verborgen (z. B. interne/experimentelle Vorlagen).parametersobjectParametersteckplätze, die diese Vorlage akzeptiert, indiziert nach Steckplatz-ID. Steckplatz-IDs folgen der Konvention input1 / input2 / …; nur Steckplätze, die die Vorlage tatsächlich verwendet, erscheinen in der Zuordnung. Übergeben Sie die gleichen Schlüssel in parameters bei POST /prompt-template-runs, um Werte bereitzustellen.usageVideoTutorialstringVollständig qualifizierte URL eines YouTube-Tutorials, das zeigt, wie diese Vorlage verwendet wird. null, wenn kein Tutorial vorhanden ist.Beispiel
- cURL
- Python
- Node.js
- Go
curl "https://app.neuroflash.com/api/v1/prompt-templates" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
response = requests.get(
f"https://app.neuroflash.com/api/v1/prompt-templates",
headers={"Authorization": f"Bearer {token}"},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/v1/prompt-templates`,
{ headers: { Authorization: `Bearer ${token}` } }
).then((r) => r.json());
req, _ := http.NewRequest("GET", "https://app.neuroflash.com/api/v1/prompt-templates", nil)
req.Header.Set("Authorization", "Bearer "+token)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Antwort:
{
"page": {
"size": 20,
"totalElements": 137,
"totalPages": 7,
"currentPage": 1
},
"data": [
{
"id": "12345",
"key": "subject_lines.de_DE",
"type": "subject_lines",
"categoryKey": "email_marketing",
"translationKey": "subjectLines",
"categoryTranslationKey": "emailMarketing",
"description": "Generate catchy subject lines for marketing emails.",
"country": "de",
"language": "de",
"defaultInvocationCount": 1,
"defaultSampleCount": 2,
"displayedInApp": true,
"parameters": {
"input1": {
"label": "Product",
"placeholder": "e.g. our new sustainable line",
"defaultValue": "",
"characterLimit": 600
},
"input2": {
"label": "Keywords",
"placeholder": "e.g. innovative, futuristic, bold",
"defaultValue": "innovative, futuristic, bold",
"characterLimit": 600
}
},
"usageVideoTutorial": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
]
}
Eine Eingabe-Vorlage nach ID abrufen
/api/v1/prompt-templates/{id}Eine einzelne Eingabe-Vorlage zurückgeben, die durch ihre id gekennzeichnet ist. Übergeben Sie die gleiche ID als promptTemplateId bei POST /prompt-template-runs.
Pfadparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | string | Ja |
Antwort
idstringStabiler, global eindeutiger Bezeichner für diese Vorlage (der Zeilenprimärschlüssel in der zugrundeliegenden Eingabetabelle). Übergeben Sie diesen als promptTemplateId auf POST /prompt-template-runs — er reicht allein aus, um die Eingabe zu lösen; kein separates Feld language erforderlich.keystringLesbarer zusammengesetzter Schlüssel der Form {type}.{language}_{COUNTRY} (z. B. subject_lines.de_DE). Nützlich zum Filtern / Gruppieren in UI-Auswahlgeräten und zum Debuggen. Um eine Vorlage auszuführen, verwenden Sie stattdessen id — Schlüssel sind nicht über zukünftige Schemaänderungen hinweg eindeutig.typestringGebietsschema-agnostischer Bezeichner für die Art der Aufgabe, die diese Vorlage erzeugt (z. B. headlines, summarize, blog_intro). Geteilt durch jede Gebietsschemavariante der gleichen Vorlagenart, anders als id, das pro Gebietsschema eindeutig ist. Filtern Sie die Auflistung nach type, um zu einer einzelnen Aufgabe über Gebietsschemas einzugrenzen.categoryKeystringBezeichner der Kategorie, zu der diese Vorlage gehört (z. B. E-Mail, sozial, Blog). Wird von der Benutzeroberfläche verwendet, um Vorlagen in Auswahlgeräten zu gruppieren.translationKeystringi18n-Schlüssel für den Anzeigenamen der Vorlage. Lösen Sie auf der Clientseite zu einer lokalisierten Zeichenkette auf; zeigen Sie den rohen Schlüssel nicht an Benutzer.categoryTranslationKeystringi18n-Schlüssel für den Anzeigenamen der Vorlagenkategorie. Lösen Sie auf der Clientseite auf, wie bei translationKey.descriptionstringEnglische Beschreibung, was diese Vorlage erzeugt und wann sie verwendet wird. Für die Anzeige für Endbenutzer müssen Sie translationKey stattdessen zu einer lokalisierten Zeichenkette auflösen.countrystringISO-3166-1-Alpha-2-Ländercode, für den diese Vorlage abgestimmt wurde. Kombiniert mit language, um das richtige Einbettungsmodell auszuwählen.languagestringISO 639-1-Sprachcode, für den diese Vorlage optimiert wurde.defaultInvocationCountintegerWie viele Male der zugrunde liegende LLM-Aufruf standardmäßig parallel ausgeführt wird. Höhere Werte ergeben mehr Vielfalt zu höheren Kosten. Wird durch sampleCount in der Generierungsanfrage überschrieben.defaultSampleCountintegerStandardanzahl der zurückgegebenen unterschiedlichen Textvarianten pro Generierung. Der Benutzer kann dies über sampleCount in der Anfrage überschreiben.displayedInAppbooleanOb die Vorlage in der Vorlagenauswahl-UI angezeigt werden soll. Vorlagen mit false sind immer noch über Schlüssel aufrufbar, aber in Listenansichten verborgen (z. B. interne/experimentelle Vorlagen).parametersobjectParametersteckplätze, die diese Vorlage akzeptiert, indiziert nach Steckplatz-ID. Steckplatz-IDs folgen der Konvention input1 / input2 / …; nur Steckplätze, die die Vorlage tatsächlich verwendet, erscheinen in der Zuordnung. Übergeben Sie die gleichen Schlüssel in parameters bei POST /prompt-template-runs, um Werte bereitzustellen.usageVideoTutorialstringVollständig qualifizierte URL eines YouTube-Tutorials, das zeigt, wie diese Vorlage verwendet wird. null, wenn kein Tutorial vorhanden ist.Beispiel
- cURL
- Python
- Node.js
- Go
curl "https://app.neuroflash.com/api/v1/prompt-templates/{id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
response = requests.get(
f"https://app.neuroflash.com/api/v1/prompt-templates/{id}",
headers={"Authorization": f"Bearer {token}"},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/v1/prompt-templates/${id}`,
{ headers: { Authorization: `Bearer ${token}` } }
).then((r) => r.json());
req, _ := http.NewRequest("GET", "https://app.neuroflash.com/api/v1/prompt-templates/"+id+"", nil)
req.Header.Set("Authorization", "Bearer "+token)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Antwort:
{
"id": "12345",
"key": "subject_lines.de_DE",
"type": "subject_lines",
"categoryKey": "email_marketing",
"translationKey": "subjectLines",
"categoryTranslationKey": "emailMarketing",
"description": "Generate catchy subject lines for marketing emails.",
"country": "de",
"language": "de",
"defaultInvocationCount": 1,
"defaultSampleCount": 2,
"displayedInApp": true,
"parameters": {
"input1": {
"label": "Product",
"placeholder": "e.g. our new sustainable line",
"defaultValue": "",
"characterLimit": 600
},
"input2": {
"label": "Keywords",
"placeholder": "e.g. innovative, futuristic, bold",
"defaultValue": "innovative, futuristic, bold",
"characterLimit": 600
}
},
"usageVideoTutorial": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
Prompt-Vorlage ausführen
/api/v1/workspaces/{workspaceId}/prompt-template-runsFühren Sie die durch promptTemplateId identifizierte Prompt-Vorlage mit den in parameters angegebenen Parameterwerten aus, rufen Sie die LLM-Pipeline auf und geben Sie eine oder mehrere generierte Textausgaben als PromptTemplateRun zurückgeben.
Die Vorlage bestimmt die Art des produzierten Texts; tonality / length / personality / brandVoiceId / targetAudienceId steuern den Stil der Ausgabe.
Streaming. Der Antwort-Medientyp wird durch den Accept Header des Aufrufers bestimmt:
Accept: application/json(Standard) → ein kompletter :class:PromptTemplateRunwird zurückgegeben, sobald die Generierung abgeschlossen ist.Accept: text/event-stream→ ein Server-Sent Events Stream wird mit teilweisendeltaEreignissen gefolgt von der endgültigen Ausgabe zurückgegeben. Streaming ist derzeit auf Single-Sample-Runs beschränkt (sampleCountmuss1oder nicht gesetzt sein).
Runs werden noch nicht persistiert — historischer Abruf (GET /prompt-template-runs/{'{'}id{'}'}) ist eine zukünftige Verbesserung.
Pfadparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
workspaceId | string | Ja | Der Arbeitsbereich, auf den die Anfrage operiert. Muss mit dem Workspace-Anspruch im Gateway-Token übereinstimmen. |
Anfrage-Body
promptTemplateIdstringJaID der auszuführenden Prompt-Vorlage. Verwenden Sie den id Wert aus GET /prompt-templates. Die ID kodiert das Gebietsschema, daher ist kein separates language Feld erforderlich.parametersobjectNeinFreie Zuordnung von Werten für die Parameterplatzhalter, die die ausgewählte Eingabeaufforderungsvorlage akzeptiert. Jede Vorlage kündigt an, welche Platzhalter-Schlüssel sie über ihr parameters-Objekt auf der von GET /prompt-templates zurückgegebenen :class:PromptTemplate verwendet — kopieren Sie diese Schlüssel hier. Vom Template nicht verwendete Schlüssel werden ignoriert. Standardwerte: Schlüssel, die in dieser Zuordnung weggelassen werden, fallen auf den defaultValue der Vorlage für diesen Platzhalter zurück; Schlüssel, die mit einem null- oder leeren Zeichenfolgen-Wert vorhanden sind, umgehen den Standard und werden unverändert weitergeleitet. Lassen Sie das gesamte parameters-Objekt weg, wenn die Vorlage keine Parameter benötigt.tonalityarray<string>NeinFreie Lenkungshinweise für den Schreibstil des generierten Textes, z. B. casual, professional, playful. Diese werden in die Eingabeaufforderung eingefügt; Werte sind nicht auf eine Enumeration beschränkt.lengthstringNeinFreier Lenkungshinweis für die Ausgabelänge, z. B. short, medium, long. Wird in die Eingabeaufforderung eingefügt. Keine harte Zeichenbegrenzung.sampleCountintegerNeinDas ist fast immer das, was Sie wollen. Die Anzahl der unterschiedlichen Textvarianten, die in outputs zurückgegeben werden sollen. Der Dienst führt genug LLM-Aufrufe durch, um mindestens diese Anzahl von Stichproben zu erzeugen, und schneidet dann auf genau sampleCount zu. Bereich: 1–10. Falls weggelassen, wird die defaultSampleCount der Vorlage verwendet.invocationCountintegerNeinRegler auf niedriger Ebene — die meisten Aufrufer sollten dies ungesetzt lassen. Anzahl der parallel auszuführenden LLM-Aufrufe. Jeder Aufruf kann je nach Vorlage mehrere Ausgaben liefern, daher ist dies nicht dasselbe wie die Anzahl der zurückgegebenen Varianten. Das Setzen von sampleCount ist die richtige Methode, um zu steuern, wie viele Ausgaben Sie erhalten; dieses Feld existiert für fortgeschrittene Aufrufer, die explizit zwischen Vielfalt und Kosten abwägen möchten. Wenn sampleCount ebenfalls gesetzt ist, gewinnt sampleCount.qualitystringNeinEine Enumeration.personalitystringNeinFreie Persönlichkeitsbeschreibung, die in die Eingabeaufforderung eingefügt wird. Falls zusammen mit brandVoiceId gesetzt, gewinnt der explizite personality-Text über die aufgelöste Brand Voice.brandVoiceIdstringNeinKennung der Brand Voice, die diesen Durchlauf steuern sollte. Der Dienst löst die Brand Voice serverseitig auf; Aufrufer senden die Brand-Voice-Nutzlast nicht (und können sie nicht) direkt senden.targetAudienceIdstringNeinKennung der Zielgruppe, die diesen Durchlauf steuern sollte. Der Dienst löst die Zielgruppenbeschreibung serverseitig aus dieser ID auf (Aufrufer senden die Zielgruppen-Nutzlast nicht).additionalContextarray<string>NeinZusätzliche Kontextausschnitte, die der Eingabeaufforderung vorangestellt werden (z. B. Produktfakten, Referenzausschnitte). Jeder Eintrag ist eine einfache Zeichenfolge.Antwort
outputsarray<object>Generierte Textausgaben, die durch den Durchlauf erzeugt werden. Die Länge beträgt höchstens sampleCount (oder den Standard der Vorlage). Die Reihenfolge ist randomisiert.
idstringStabile, global eindeutige Kennung für diese Ausgabe. Verwenden Sie diese als Rückverweis, wenn Sie dem System mitteilen, welche Ausgabe ein Benutzer akzeptiert oder abgelehnt hat.textstringDer generierte Text.Beispiel
- cURL
- Python
- Node.js
- Go
curl -X POST "https://app.neuroflash.com/api/v1/workspaces/{workspace_id}/prompt-template-runs" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"promptTemplateId": "string",
"parameters": {},
"tonality": [],
"length": "string",
"sampleCount": 0,
"invocationCount": 0,
"quality": "string",
"personality": "string",
"brandVoiceId": "string",
"targetAudienceId": "string",
"additionalContext": []
}'
import requests
response = requests.post(
f"https://app.neuroflash.com/api/v1/workspaces/{workspace_id}/prompt-template-runs",
headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"},
json={
"promptTemplateId": "string",
"parameters": {},
"tonality": [],
"length": "string",
"sampleCount": 0,
"invocationCount": 0,
"quality": "string",
"personality": "string",
"brandVoiceId": "string",
"targetAudienceId": "string",
"additionalContext": []
},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/v1/workspaces/${workspaceId}/prompt-template-runs`,
{
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"promptTemplateId": "string",
"parameters": {},
"tonality": [],
"length": "string",
"sampleCount": 0,
"invocationCount": 0,
"quality": "string",
"personality": "string",
"brandVoiceId": "string",
"targetAudienceId": "string",
"additionalContext": []
}),
}
).then((r) => r.json());
body, _ := json.Marshal(map[string]any{
"promptTemplateId": "string",
"parameters": map[string]any{},
"tonality": []any{},
"length": "string",
"sampleCount": 0,
"invocationCount": 0,
"quality": "string",
"personality": "string",
"brandVoiceId": "string",
"targetAudienceId": "string",
"additionalContext": []any{},
})
req, _ := http.NewRequest("POST", "https://app.neuroflash.com/api/v1/workspaces/"+workspaceID+"/prompt-template-runs", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+token)
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Antwort:
{
"outputs": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"text": "Innovate today, lead tomorrow — see what's new."
}
]
}