Twins
Basis-URL: https://app.neuroflash.com/api/digital-twin-service
Rufen Sie einzelne digitale Zwilling-Personas aus statischen Gruppen ab.
Statische Gruppen-Twins auflisten
GET
/v1/workspaces/{workspace_id}/static-groups/{group_key}/twinsPfadparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
workspace_id | string | Ja | |
group_key | string | Ja |
Abfrageparameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
page | integer | 1 | Seitenzahl (1-basiert) |
size | integer | 20 | Anzahl der Elemente pro Seite |
order | string | — | Sortierreihenfolge nach Name |
twinIds | string | — | Durch Kommas getrennte Twin-IDs zum Filtern |
language | string | — | Nach Sprache filtern |
Antwort
FeldTypBeschreibung
dataarray<object>Liste der Twins für diese Seite
idstringEindeutige KennungcreatedAtstringZeitstempel der DatensatzerstellungupdatedAtstringZeitstempel der letzten Aktualisierung des DatensatzescreatedByUserIdobjectID des Benutzers, der diesen Datensatz erstellt hattargetAudienceIdobjectZielgruppen-ID (entweder diese oder staticGroupKey muss gesetzt sein)staticGroupKeyobjectSchlüssel der zugehörigen statischen Gruppe (entweder dieser oder targetAudienceId muss gesetzt sein)subjectIdstringID des Subjekts, auf dem dieser Digital Twin basiertnamestringVollständiger Name des Digital TwinlanguagestringSprachcode: 'en' oder 'de'titleobjectBeschreibender Titel für den Digital TwinageobjectAlter des Digital TwingenderobjectGeschlecht des Digital TwinlocationobjectStandort des Digital TwinjobTitleobjectBerufsbezeichnung des Digital TwinselfDescriptionobjectSelbstbeschreibung des Digital Twin aus UmfrageantwortenshortBioobjectKurzer Text in dritter Person, der oben in der Persona-Übersicht angezeigt wird (1–2 Sätze, ca. 40–60 Wörter). Unterscheidet sich von selfDescription, das in der ersten Person verfasst ist.interestsAndPreferencesobjectAbsatz in der ersten Person (ca. 80–150 Wörter) über Hobbys, konsumierte Marken, Mediengewohnheiten und Lebensstil.uniqueTraitsobjectAbsatz in der ersten Person (ca. 80–150 Wörter), der die Eigenschaften beschreibt, die diese Persona von typischen Gleichaltrigen unterscheiden.demographicsobjectStrukturierte demografische Attribute, die aus den Umfrageantworten der Persona abgeleitet sind. Beibehalten zum Zeitpunkt der Twin-Erstellung. Fehlende Schlüssel blenden die entsprechende UI-Zeile aus. Frontend löst Labels über i18n-Schlüssel brand_hub.digital_twin.detail.demographics.<snake_case_key> auf.psychographicsobjectStrukturierte psychografische Attribute, die aus den Umfrageantworten der Persona abgeleitet sind. Beibehalten zum Zeitpunkt der Twin-Erstellung. Fehlende Schlüssel blenden die entsprechende UI-Zeile aus. Frontend löst Labels über i18n-Schlüssel brand_hub.digital_twin.detail.psychographics.<snake_case_key> auf.activeboolean„Wahr", wenn der Twin aktiv und nutzbar ist – kann mit ihm gechattet werden, wird für Reaktionen verwendet usw._linksobjectHATEOAS-Links (z. B. avatarUrl)pageobjectPaginierungsmetadaten.
sizeintegerAnzahl der Elemente pro SeitetotalElementsintegerGesamtanzahl der übereinstimmenden ElementetotalPagesintegerGesamtanzahl der SeitencurrentPageintegerAktuelle Seitennummer (1-basiert)Beispiel
- cURL
- Python
- Node.js
- Go
curl "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/static-groups/{group_key}/twins" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
response = requests.get(
f"https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/static-groups/{group_key}/twins",
headers={"Authorization": f"Bearer {token}"},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/${workspaceId}/static-groups/${groupKey}/twins`,
{ headers: { Authorization: `Bearer ${token}` } }
).then((r) => r.json());
req, _ := http.NewRequest("GET", "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/"+workspaceID+"/static-groups/"+groupKey+"/twins", nil)
req.Header.Set("Authorization", "Bearer "+token)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Antwort:
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z",
"createdByUserId": "12345",
"targetAudienceId": "aud_12345",
"staticGroupKey": "millennials",
"subjectId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Jens Bauer",
"language": "en",
"title": "Tech-Savvy Millennial",
"age": 28,
"gender": "Male",
"location": "Berlin, Germany",
"jobTitle": "Software Engineer",
"selfDescription": "I'm a tech enthusiast who loves innovation and problem-solving.",
"shortBio": "Sarah is a marketing director with 10+ years of experience in the fashion industry.",
"interestsAndPreferences": "I enjoy gardening and taking walks in the countryside. On weekends I usually meet friends for brunch and follow a few independent fashion designers on Instagram.",
"uniqueTraits": "I'm a 38-year-old married woman living alone in a quiet country village, which is unusual for my age group. I value independence over the social rhythms most of my peers prefer.",
"demographics": {},
"psychographics": {},
"active": true,
"_links": {}
}
],
"page": {
"size": 0,
"totalElements": 0,
"totalPages": 0,
"currentPage": 0
}
}
Mit Twin chatten
POST
/v1/workspaces/{workspace_id}/twins/{twin_id}/chat-completionsPfadparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
workspace_id | string | Ja | |
twin_id | string | Ja |
Anfrage-Body
FeldTypErforderlichBeschreibung
messagesarray<object>JaGesprächsverlauf (mindestens eine Nachricht erforderlich, letzte Nachricht muss vom Benutzer sein)
rolestringJaRolle: 'user' oder 'assistant'contentstringJaNachrichteninhaltattachmentsobjectNeinListe von Datei-IDs zum Anhängen an diese Nachricht (nur Benutzernachrichten)responseFormatobjectNeinStrukturiertes Ausgabeformat mit JSON-Schema. Falls null, verwendet Standard-Schema mit Feldern 'answer' und 'reason'.temperatureobjectNeinSamplingtemperatur für die AntworterzeugunguseWebSearchobjectNeinWeb-Suchmodus: 'never', 'auto' oder 'always'useVerbalizedSamplingobjectNeinGenerieren Sie 5 wahrscheinlichkeitsgewichtete Antwortoptionen (tau=0,10). Gegenseitig exklusiv mit benutzerdefiniertem responseFormat.Beispiel
- cURL
- Python
- Node.js
- Go
curl -X POST "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/twins/{twin_id}/chat-completions" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"messages": [],
"responseFormat": {},
"temperature": {},
"useWebSearch": {},
"useVerbalizedSampling": {}
}'
import requests
response = requests.post(
f"https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/twins/{twin_id}/chat-completions",
headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"},
json={
"messages": [],
"responseFormat": {},
"temperature": {},
"useWebSearch": {},
"useVerbalizedSampling": {}
},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/${workspaceId}/twins/${twinId}/chat-completions`,
{
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"messages": [],
"responseFormat": {},
"temperature": {},
"useWebSearch": {},
"useVerbalizedSampling": {}
}),
}
).then((r) => r.json());
body, _ := json.Marshal(map[string]any{
"messages": []any{},
"responseFormat": map[string]any{},
"temperature": map[string]any{},
"useWebSearch": map[string]any{},
"useVerbalizedSampling": map[string]any{},
})
req, _ := http.NewRequest("POST", "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/"+workspaceID+"/twins/"+twinID+"/chat-completions", 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:
{}
Twins auflisten
GET
/v1/workspaces/{workspace_id}/twinsPfadparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
workspace_id | string | Ja |
Abfrageparameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
page | integer | 1 | Seitenzahl (1-basiert) |
size | integer | 20 | Anzahl der Elemente pro Seite |
sort | string | — | Sortierfeld: 'name' oder 'createdAt' |
order | string | — | Sortierreihenfolge |
targetAudienceId | string | — | Nach Zielgruppe filtern |
name | string | — | Nach Namenspräfix filtern (Groß-/Kleinschreibung ignoriert) |
Antwort
FeldTypBeschreibung
dataarray<object>Liste der Twins für diese Seite
idstringEindeutige KennungcreatedAtstringZeitstempel der DatensatzerstellungupdatedAtstringZeitstempel der letzten Aktualisierung des DatensatzescreatedByUserIdobjectID des Benutzers, der diesen Datensatz erstellt hattargetAudienceIdobjectZielgruppen-ID (entweder diese oder staticGroupKey muss gesetzt sein)staticGroupKeyobjectSchlüssel der zugehörigen statischen Gruppe (entweder dieser oder targetAudienceId muss gesetzt sein)subjectIdstringID des Subjekts, auf dem dieser Digital Twin basiertnamestringVollständiger Name des Digital TwinlanguagestringSprachcode: 'en' oder 'de'titleobjectBeschreibender Titel für den Digital TwinageobjectAlter des Digital TwingenderobjectGeschlecht des Digital TwinlocationobjectStandort des Digital TwinjobTitleobjectBerufsbezeichnung des Digital TwinselfDescriptionobjectSelbstbeschreibung des Digital Twin aus UmfrageantwortenshortBioobjectKurzer Text in dritter Person, der oben in der Persona-Übersicht angezeigt wird (1–2 Sätze, ca. 40–60 Wörter). Unterscheidet sich von selfDescription, das in der ersten Person verfasst ist.interestsAndPreferencesobjectAbsatz in der ersten Person (ca. 80–150 Wörter) über Hobbys, konsumierte Marken, Mediengewohnheiten und Lebensstil.uniqueTraitsobjectAbsatz in der ersten Person (ca. 80–150 Wörter), der die Eigenschaften beschreibt, die diese Persona von typischen Gleichaltrigen unterscheiden.demographicsobjectStrukturierte demografische Attribute, die aus den Umfrageantworten der Persona abgeleitet sind. Beibehalten zum Zeitpunkt der Twin-Erstellung. Fehlende Schlüssel blenden die entsprechende UI-Zeile aus. Frontend löst Labels über i18n-Schlüssel brand_hub.digital_twin.detail.demographics.<snake_case_key> auf.psychographicsobjectStrukturierte psychografische Attribute, die aus den Umfrageantworten der Persona abgeleitet sind. Beibehalten zum Zeitpunkt der Twin-Erstellung. Fehlende Schlüssel blenden die entsprechende UI-Zeile aus. Frontend löst Labels über i18n-Schlüssel brand_hub.digital_twin.detail.psychographics.<snake_case_key> auf.activeboolean„Wahr", wenn der Twin aktiv und nutzbar ist – kann mit ihm gechattet werden, wird für Reaktionen verwendet usw._linksobjectHATEOAS-Links (z. B. avatarUrl)pageobjectPaginierungsmetadaten.
sizeintegerAnzahl der Elemente pro SeitetotalElementsintegerGesamtanzahl der übereinstimmenden ElementetotalPagesintegerGesamtanzahl der SeitencurrentPageintegerAktuelle Seitennummer (1-basiert)Beispiel
- cURL
- Python
- Node.js
- Go
curl "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/twins" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
response = requests.get(
f"https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/twins",
headers={"Authorization": f"Bearer {token}"},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/${workspaceId}/twins`,
{ headers: { Authorization: `Bearer ${token}` } }
).then((r) => r.json());
req, _ := http.NewRequest("GET", "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/"+workspaceID+"/twins", nil)
req.Header.Set("Authorization", "Bearer "+token)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Antwort:
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z",
"createdByUserId": "12345",
"targetAudienceId": "aud_12345",
"staticGroupKey": "millennials",
"subjectId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Jens Bauer",
"language": "en",
"title": "Tech-Savvy Millennial",
"age": 28,
"gender": "Male",
"location": "Berlin, Germany",
"jobTitle": "Software Engineer",
"selfDescription": "I'm a tech enthusiast who loves innovation and problem-solving.",
"shortBio": "Sarah is a marketing director with 10+ years of experience in the fashion industry.",
"interestsAndPreferences": "I enjoy gardening and taking walks in the countryside. On weekends I usually meet friends for brunch and follow a few independent fashion designers on Instagram.",
"uniqueTraits": "I'm a 38-year-old married woman living alone in a quiet country village, which is unusual for my age group. I value independence over the social rhythms most of my peers prefer.",
"demographics": {},
"psychographics": {},
"active": true,
"_links": {}
}
],
"page": {
"size": 0,
"totalElements": 0,
"totalPages": 0,
"currentPage": 0
}
}
Digital Twin abrufen
GET
/v1/workspaces/{workspace_id}/twins/{twin_id}Pfadparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
workspace_id | string | Ja | |
twin_id | string | Ja |
Antwort
FeldTypBeschreibung
idstringEindeutige KennungcreatedAtstringZeitstempel der DatensatzerstellungupdatedAtstringZeitstempel der letzten Aktualisierung des DatensatzescreatedByUserIdobjectID des Benutzers, der diesen Datensatz erstellt hattargetAudienceIdobjectZielgruppen-ID (entweder diese oder staticGroupKey muss gesetzt sein)staticGroupKeyobjectSchlüssel der zugehörigen statischen Gruppe (entweder dieser oder targetAudienceId muss gesetzt sein)subjectIdstringID des Subjekts, auf dem dieser Digital Twin basiertnamestringVollständiger Name des Digital TwinlanguagestringSprachcode: 'en' oder 'de'titleobjectBeschreibender Titel für den Digital TwinageobjectAlter des Digital TwingenderobjectGeschlecht des Digital TwinlocationobjectStandort des Digital TwinjobTitleobjectBerufsbezeichnung des Digital TwinselfDescriptionobjectSelbstbeschreibung des Digital Twin aus UmfrageantwortenshortBioobjectKurzer Text in dritter Person, der oben in der Persona-Übersicht angezeigt wird (1–2 Sätze, ca. 40–60 Wörter). Unterscheidet sich von selfDescription, das in der ersten Person verfasst ist.interestsAndPreferencesobjectAbsatz in der ersten Person (ca. 80–150 Wörter) über Hobbys, konsumierte Marken, Mediengewohnheiten und Lebensstil.uniqueTraitsobjectAbsatz in der ersten Person (ca. 80–150 Wörter), der die Eigenschaften beschreibt, die diese Persona von typischen Gleichaltrigen unterscheiden.demographicsobjectStrukturierte demografische Attribute, die aus den Umfrageantworten der Persona abgeleitet sind. Beibehalten zum Zeitpunkt der Twin-Erstellung. Fehlende Schlüssel blenden die entsprechende UI-Zeile aus. Frontend löst Labels über i18n-Schlüssel brand_hub.digital_twin.detail.demographics.<snake_case_key> auf.psychographicsobjectStrukturierte psychografische Attribute, die aus den Umfrageantworten der Persona abgeleitet sind. Beibehalten zum Zeitpunkt der Twin-Erstellung. Fehlende Schlüssel blenden die entsprechende UI-Zeile aus. Frontend löst Labels über i18n-Schlüssel brand_hub.digital_twin.detail.psychographics.<snake_case_key> auf.activeboolean„Wahr", wenn der Twin aktiv und nutzbar ist – kann mit ihm gechattet werden, wird für Reaktionen verwendet usw._linksobjectHATEOAS-Links (z. B. avatarUrl)Beispiel
- cURL
- Python
- Node.js
- Go
curl "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/twins/{twin_id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
response = requests.get(
f"https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/{workspace_id}/twins/{twin_id}",
headers={"Authorization": f"Bearer {token}"},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/${workspaceId}/twins/${twinId}`,
{ headers: { Authorization: `Bearer ${token}` } }
).then((r) => r.json());
req, _ := http.NewRequest("GET", "https://app.neuroflash.com/api/digital-twin-service/v1/workspaces/"+workspaceID+"/twins/"+twinID+"", nil)
req.Header.Set("Authorization", "Bearer "+token)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Antwort:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z",
"createdByUserId": "12345",
"targetAudienceId": "aud_12345",
"staticGroupKey": "millennials",
"subjectId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Jens Bauer",
"language": "en",
"title": "Tech-Savvy Millennial",
"age": 28,
"gender": "Male",
"location": "Berlin, Germany",
"jobTitle": "Software Engineer",
"selfDescription": "I'm a tech enthusiast who loves innovation and problem-solving.",
"shortBio": "Sarah is a marketing director with 10+ years of experience in the fashion industry.",
"interestsAndPreferences": "I enjoy gardening and taking walks in the countryside. On weekends I usually meet friends for brunch and follow a few independent fashion designers on Instagram.",
"uniqueTraits": "I'm a 38-year-old married woman living alone in a quiet country village, which is unusual for my age group. I value independence over the social rhythms most of my peers prefer.",
"demographics": {},
"psychographics": {},
"active": true,
"_links": {}
}