Eingabeaufforderungs-Vorlagen
List prompt templatesâ
/api/v1/prompt-templatesReturn the catalog of prompt templates available to the caller. A prompt template is a reusable, parameterised LLM prompt that produces a specific kind of marketing copy (e.g. subject lines, social posts). Each entry advertises the parameter slots it accepts via the parameters array.
All query parameters are optional and combine with AND semantics. Pass the returned id of a template as promptTemplateId on POST /prompt-template-runs.
Abfrageparameterâ
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
country | string | â | ISO 3166-1 alpha-2 country code, e.g. de or us. |
language | string | â | ISO 639-1 language code, e.g. de or en. |
categoryKey | string | â | Restrict the listing to templates in a single category (matches :attr:PromptTemplate.categoryKey). |
type | string | â | Restrict the listing to a single task type, regardless of locale. Matches :attr:PromptTemplate.type (e.g. headlines, summarize, blog_intro). |
displayedInApp | boolean | â | Filter by whether the template appears in the in-app picker. Omit to return both displayed and hidden templates. |
page | integer | 1 | Page number to retrieve. The first page is 1 (not 0). |
size | integer | 20 | Number of elements per page. Maximum 100. |
Antwortâ
pageobject
sizeintegerRequested page size. Echoed back even when data contains fewer elements (e.g. on the last page).totalElementsintegerTotal number of elements across all pages.totalPagesintegerTotal number of pages given the requested size.currentPageintegerPage number returned. The first page is 1 (not 0).dataarray<object>Elements on the current page. May contain fewer than page.size on the last page.
idstringStable, globally unique identifier for this template (the row primary key on the underlying prompt table). Pass this as promptTemplateId on POST /prompt-template-runs â it is sufficient on its own to resolve the prompt; no separate language field is required.keystringHuman-readable composite key of the form {type}.{language}_{COUNTRY} (e.g. subject_lines.de_DE). Useful for filtering / grouping in UI pickers and for debugging. To run a template use id instead â keys are not guaranteed unique across future schema changes.typestringLocale-agnostic identifier for the kind of task this template produces (e.g. headlines, summarize, blog_intro). Shared by every locale variant of the same template kind, unlike id which is unique per locale. Filter the listing by type to narrow to a single task across locales.categoryKeystringIdentifier of the category this template belongs to (e.g. email, social, blog). Used by the UI to group templates in pickers.translationKeystringi18n-SchlĂŒssel fĂŒr den Anzeigenamen der Vorlage. Client-seitig in einen lokalisierten String auflösen; dem Benutzer nicht den rohen SchlĂŒssel anzeigen.categoryTranslationKeystringi18n-SchlĂŒssel fĂŒr den Anzeigenamen der Vorlagenkategorie. Client-seitig auflösen, wie bei translationKey.descriptionstringEnglische Beschreibung, was diese Vorlage erzeugt und wann sie verwendet wird. FĂŒr die Anzeige fĂŒr Endbenutzer stattdessen translationKey in einen lokalisierten String auflösen.countrystringISO-3166-1-Alpha-2-LĂ€ndercode, fĂŒr den diese Vorlage optimiert wurde. Mit language kombiniert, um das richtige Embedding-Modell auszuwĂ€hlen.languagestringISO-639-1-Sprachcode, fĂŒr den diese Vorlage optimiert wurde.defaultInvocationCountintegerWie oft der zugrunde liegende LLM-Aufruf standardmĂ€Ăig parallel verteilt wird. Höhere Werte fĂŒhren zu mehr Vielfalt bei höheren Kosten. Wird durch sampleCount in der Generierungsanfrage ĂŒberschrieben.defaultSampleCountintegerStandardanzahl der 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 weiterhin nach SchlĂŒssel aufrufbar, aber in Listenansichten verborgen (z. B. interne/experimentelle Vorlagen).parametersobjectParameterschlitze, die diese Vorlage akzeptiert, nach Schlitz-ID indiziert. Schlitz-IDs folgen der Konvention input1 / input2 / âŠ; nur von der Vorlage tatsĂ€chlich verwendete Schlitze erscheinen in der Zuordnung. Geben Sie dieselben SchlĂŒssel in parameters bei POST /prompt-template-runs zurĂŒck, um Werte bereitzustellen.usageVideoTutorialstringVollqualifizierte 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"
}
]
}
Prompt-Vorlage nach ID abrufenâ
/api/v1/prompt-templates/{id}Eine einzelne Prompt-Vorlage nach ihrer id zurĂŒckgeben. Geben Sie dieselbe ID als promptTemplateId bei POST /prompt-template-runs zurĂŒck.
Pfadparameterâ
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | string | Ja |
Antwortâ
idstringStable, globally unique identifier for this template (the row primary key on the underlying prompt table). Pass this as promptTemplateId on POST /prompt-template-runs â it is sufficient on its own to resolve the prompt; no separate language field is required.keystringHuman-readable composite key of the form {type}.{language}_{COUNTRY} (e.g. subject_lines.de_DE). Useful for filtering / grouping in UI pickers and for debugging. To run a template use id instead â keys are not guaranteed unique across future schema changes.typestringLocale-agnostic identifier for the kind of task this template produces (e.g. headlines, summarize, blog_intro). Shared by every locale variant of the same template kind, unlike id which is unique per locale. Filter the listing by type to narrow to a single task across locales.categoryKeystringIdentifier of the category this template belongs to (e.g. email, social, blog). Used by the UI to group templates in pickers.translationKeystringi18n-SchlĂŒssel fĂŒr den Anzeigenamen der Vorlage. Client-seitig in einen lokalisierten String auflösen; dem Benutzer nicht den rohen SchlĂŒssel anzeigen.categoryTranslationKeystringi18n-SchlĂŒssel fĂŒr den Anzeigenamen der Vorlagenkategorie. Client-seitig auflösen, wie bei translationKey.descriptionstringEnglische Beschreibung, was diese Vorlage erzeugt und wann sie verwendet wird. FĂŒr die Anzeige fĂŒr Endbenutzer stattdessen translationKey in einen lokalisierten String auflösen.countrystringISO-3166-1-Alpha-2-LĂ€ndercode, fĂŒr den diese Vorlage optimiert wurde. Mit language kombiniert, um das richtige Embedding-Modell auszuwĂ€hlen.languagestringISO-639-1-Sprachcode, fĂŒr den diese Vorlage optimiert wurde.defaultInvocationCountintegerWie oft der zugrunde liegende LLM-Aufruf standardmĂ€Ăig parallel verteilt wird. Höhere Werte fĂŒhren zu mehr Vielfalt bei höheren Kosten. Wird durch sampleCount in der Generierungsanfrage ĂŒberschrieben.defaultSampleCountintegerStandardanzahl der 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 weiterhin nach SchlĂŒssel aufrufbar, aber in Listenansichten verborgen (z. B. interne/experimentelle Vorlagen).parametersobjectParameterschlitze, die diese Vorlage akzeptiert, nach Schlitz-ID indiziert. Schlitz-IDs folgen der Konvention input1 / input2 / âŠ; nur von der Vorlage tatsĂ€chlich verwendete Schlitze erscheinen in der Zuordnung. Geben Sie dieselben SchlĂŒssel in parameters bei POST /prompt-template-runs zurĂŒck, um Werte bereitzustellen.usageVideoTutorialstringVollqualifizierte 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 zurĂŒck, die als PromptTemplateRun verpackt sind.
Die Vorlage bestimmt die Art des erzeugten Textes; tonality / length / personality / brandVoiceId / targetAudienceId steuern den Stil der Ausgabe.
Streaming. Der Media-Type der Antwort wird durch den Accept-Header des Aufrufers gewÀhlt:
Accept: application/json(Standard) â Ein vollstĂ€ndiger :class:PromptTemplateRunwird zurĂŒckgegeben, sobald die Generierung abgeschlossen ist.Accept: text/event-streamâ Ein Server-Sent Events-Stream wird mit partiellendelta-Ereignissen gefolgt von der endgĂŒltigen Ausgabe zurĂŒckgegeben. Streaming ist derzeit auf Einzelstichproben-LĂ€ufe begrenzt (sampleCountmuss1oder nicht gesetzt sein).
LĂ€ufe 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 sich die Anfrage bezieht. Muss dem Workspace-Anspruch im Gateway-Token entsprechen. |
Anfrage-Bodyâ
promptTemplateIdstringJaID der auszufĂŒhrenden Prompt-Vorlage. Verwenden Sie den id-Wert, der von GET /prompt-templates zurĂŒckgegeben wird. Die ID kodiert das Gebietsschema, daher ist kein separates language-Feld erforderlich.parametersobjectNeinFreiform-Zuordnung von Werten fĂŒr die Parameterschlitze, die die ausgewĂ€hlte Prompt-Vorlage akzeptiert. Jede Vorlage gibt durch ihr parameters-Objekt in der von GET /prompt-templates zurĂŒckgegebenen :class:PromptTemplate an, welche SchlĂŒssel sie verwendet â kopieren Sie diese SchlĂŒssel hier. SchlĂŒssel, die von der Vorlage nicht verwendet werden, werden ignoriert. Standardwerte: SchlĂŒssel, die in dieser Zuordnung weggelassen werden, greifen auf den defaultValue der Vorlage fĂŒr diesen Schlitz zurĂŒck; SchlĂŒssel mit null- oder Leerstring-Wert umgehen den Standard und werden unverĂ€ndert weitergeleitet. Lassen Sie das gesamte parameters-Objekt weg, wenn die Vorlage keine Parameter benötigt.tonalityarray<string>NeinFreiwillige Steuerungshinweise fĂŒr den Schreibstil des generierten Textes, z. B. casual, professional, playful. Diese werden in den Prompt eingefĂŒgt; Werte sind nicht auf eine Enumeration beschrĂ€nkt.lengthstringNeinFreiwilliger Steuerungshinweis fĂŒr die AusgabelĂ€nge, z. B. short, medium, long. Wird in den Prompt eingefĂŒgt. Nicht ein hartes Zeichenlimit.sampleCountintegerNeinDas, was Sie fast immer möchten. Die Anzahl der unterschiedlichen Textvarianten, die in outputs zurĂŒckgegeben werden. Der Service startet genug LLM-Aufrufe, um mindestens diese Anzahl von Stichproben zu erzeugen, und reduziert dann auf genau sampleCount. Bereich: 1â10. Wenn nicht angegeben, wird der defaultSampleCount der Vorlage verwendet.invocationCountintegerNeinRegler auf niedriger Ebene â die meisten Aufrufer sollten dies nicht setzen. Wie viele parallele LLM-Aufrufe ausgefĂŒhrt werden. Jeder Aufruf kann je nach Vorlage mehrere Ausgaben liefern, daher ist dies nicht dasselbe wie die Anzahl der zurĂŒckgegebenen Varianten. Die Einstellung 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 auch gesetzt ist, gewinnt sampleCount.qualitystringNeinEine Enumeration.personalitystringNeinFreitext-Persönlichkeitsbeschreibung eingefĂŒgt in den Prompt. Wenn zusammen mit brandVoiceId gesetzt, gewinnt der explizite personality-Text ĂŒber die aufgelöste MarkenidentitĂ€t.brandVoiceIdstringNeinBezeichner der MarkenidentitĂ€t, die diesen Lauf steuern sollte. Der Service löst die MarkenidentitĂ€t serverseitig auf; Aufrufer senden die MarkenidentitĂ€ts-Payload nicht direkt (und können dies nicht).targetAudienceIdstringNeinBezeichner der Zielgruppe, die diesen Lauf steuern sollte. Der Service löst die Zielgruppenbeschreibung serverseitig aus dieser ID auf (Aufrufer senden die Zielgruppen-Payload nicht).additionalContextarray<string>NeinZusĂ€tzliche Kontextausschnitte vorangestellt dem Prompt (z. B. Produktfakten, ReferenzauszĂŒge). Jeder Eintrag ist eine einfache Zeichenkette.Antwortâ
outputsarray<object>Generierte Textausgaben, die vom Lauf erzeugt wurden. 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ĂŒckbezug, wenn Sie dem System mitteilen, welche Ausgabe ein Benutzer ausgewĂ€hlt 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."
}
]
}