Chat API (zum Ansteuern von Coworkern)

Erstellt von Johannes Eberhard, Geändert am Di, 4 Feb um 4:52 NACHMITTAGS von Ivan Dukic

POST Endpoint: subdomain.localmind.io/localmind/public-chat

Query

Eine Beispiel-Abfrage an einen Coworker findet wie folgt statt:


{
  "api_key": "DEIN_GENERIERTER_API_KEY",
  "chat": {
    "title": "Neue API-Konversation",
    "agent": "ivans-testworker",
    "message": "Wie geht es dir?"
  }
}


ParameterBeschreibung
api_keyDer generierte API-Schlüssel kommt hier rein
title
Ein Konversationstitel (optional) Ähnlich wie bei Konversationen über die UI kann hier ein Titel festgelegt werden
agent
Die Modell-ID deines Coworkers (siehe untenstehendes Bild)
messageDie Nachricht, welche du deinem Coworker übermitteln möchtest


Die Modell-ID finden Sie in der 1. Einstellungs-Zeile des jeweiligen Coworkers.

Response

Die Response ist wie folgt aufgegliedert:

{
  "id": "4d68b56a-431c-4bbc-aa34-28e7fbb4cb13",
  "user_id": "9ff85f6a-a24e-4dab-b7c4-2395a365559f",
  "title": "Neue API-Konversation",
  "chat": {
    "title": "Neue API-Konversation",
    "agent": "ivans-testworker",
    "messages": [
      {
        "role": "user",
        "content": "Wie geht es dir?"
      },
      {
        "content": "Ich bin ein Computerprogramm, daher habe ich keine Gefühle oder Emotionen wie ein Mensch. Ich kann dir jedoch helfen, Fragen zu beantworten oder Informationen bereitzustellen. Wie kann ich dir heute helfen?",
        "role": "assistant",
        "tool_calls": null,
        "function_call": null
      }
    ]
  },
  "created_at": 1729496248,
  "updated_at": 1729496250,
  "share_id": null,
  "archived": false,
  "rag_result_sources": [],
  "tools_used": []
}


Die Antwort deines Coworkers findest du unter  chat.messages.content bei der Rolle assistant

Konversationshistorie

Um die Konversationshistorie beizubehalten (sofern sie nicht manuell von deinem System implementiert wird), kannst du dich in jedem darauffolgenden Query auf die Konversations-ID beziehen:


{
  "api_key": "DEIN_GENERIERTER_API_KEY",
  "chat": {
    "id": "Die Konversations-ID der ersten Response",
    "title": "Neue API-Konversation",
    "agent": "ivans-testworker",
    "message": "Wie geht es dir?"
  }
}


Füge dazu einfach das Feld „id“ innerhalb von „chat“ ein, und befülle es mit der ID, welche du bei der ersten Response deines Coworkers erhalten hast.

Streaming-fähige Chat API

Neben eines normalen Endpoints bieten wir auch einen streamingfähigen Endpoint an:

POST Endpoint: /localmind/public-chat-stream

Query

Die Query ist ident wie beim regulären Chat API Endpoint.

Response

data: {"id":"chat-025243c075e84ce59aa678c4126ad3aa","choices":[{"index":0,"delta":{"content":"Es","role":"assistant"}}],"created":1729496718,"model":"localmind-ultra","object":"chat.completion.chunk"}
data: {"id":"chat-025243c075e84ce59aa678c4126ad3aa","choices":[{"index":0,"delta":{"content":" tut"}}],"created":1729496718,"model":"localmind-ultra","object":"chat.completion.chunk"}
data: {"id":"chat-025243c075e84ce59aa678c4126ad3aa","choices":[{"index":0,"delta":{"content":" mir"}}],"created":1729496718,"model":"localmind-ultra","object":"chat.completion.chunk"}
data: {"id":"chat-025243c075e84ce59aa678c4126ad3aa","choices":[{"index":0,"delta":{"content":" le"}}],"created":1729496718,"model":"localmind-ultra","object":"chat.completion.chunk"}
data: {"id":"chat-025243c075e84ce59aa678c4126ad3aa","choices":[{"index":0,"delta":{"content":"id"}}],"created":1729496718,"model":"localmind-ultra","object":"chat.completion.chunk"}
data: {"id":"chat-025243c075e84ce59aa678c4126ad3aa","choices":[{"index":0,"delta":{"content":","}}],"created":1729496718,"model":"localmind-ultra","object":"chat.completion.chunk"}
data: {"id":"chat-025243c075e84ce59aa678c4126ad3aa","choices":[{"index":0,"delta":{"content":" aber"}}],"created":1729496718,"model":"localmind-ultra","object":"chat.completion.chunk"}
data: {"id":"chat-025243c075e84ce59aa678c4126ad3aa","choices":[{"index":0,"delta":{"content":" ich"}}],"created":1729496718,"model":"localmind-ultra","object":"chat.completion.chunk"}
[.....]
data: {"id":"chat-025243c075e84ce59aa678c4126ad3aa","choices":[{"finish_reason":"stop","index":0,"delta":{}}],"created":1729496719,"model":"localmind-ultra","object":"chat.completion.chunk"}
data: [DONE]


Wie du siehst, wird beim streamingfähigen Endpoint die Nachricht in “Datenchunks” gestreamed. Du hast in deiner Applikation dafür zu sorgen, dass der Nachrichtenstream kohärent und vollständig angezeigt wird.

Konversationshistorie

Um die Konversationshistorie beizubehalten, ist auch hier die ID notwendig. Jedoch handelt es sich bei der streamingfähigen API nicht um die ID, welche in der Response selbst gesendet wird, sondern diese muss aus dem Response Header gezogen werden.

Im Konkreten der Header namens x-chat-id: x-chat-id: e5643183-b3a9-4692-b2cc-cf4d063a4225 


Dies ist aus Performance-Gründen notwendig, da der Chat-Stream ansonsten wesentlich länger dauern würde. Man müsste bei jedem Chunk-Stream die ID einsetzen, was dazu führen würde, dass die Performance des Outputs beeinträchtigt wäre.

War dieser Artikel hilfreich?

Das ist großartig!

Vielen Dank für das Feedback

Leider konnten wir nicht helfen

Vielen Dank für das Feedback

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus
CAPTCHA-Verifikation ist erforderlich.

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren