Spaces:
Running
POST /chat-messages Send Chat Message Send a request to the chat application.
Request Body Name query Type string Description User Input/Question content
Name inputs Type object Description Allows the entry of various variable values defined by the App. The inputs parameter contains multiple key/value pairs, with each key corresponding to a specific variable and each value being the specific value for that variable. Default {}
Name response_mode Type string Description The mode of response return, supporting:
streaming Streaming mode (recommended), implements a typewriter-like output through SSE (Server-Sent Events). blocking Blocking mode, returns result after execution is complete. (Requests may be interrupted if the process is long) Due to Cloudflare restrictions, the request will be interrupted without a return after 100 seconds. Note: blocking mode is not supported in Agent Assistant mode Name user Type string Description User identifier, used to define the identity of the end-user for retrieval and statistics. Should be uniquely defined by the developer within the application.
Name conversation_id Type string Description Conversation ID, to continue the conversation based on previous chat records, it is necessary to pass the previous message's conversation_id.
Name files Type array[object] Description File list, suitable for inputting files (images) combined with text understanding and answering questions, available only when the model supports Vision capability.
type (string) Supported type: image (currently only supports image type) transfer_method (string) Transfer method, remote_url for image URL / local_file for file upload url (string) Image URL (when the transfer method is remote_url) upload_file_id (string) Uploaded file ID, which must be obtained by uploading through the File Upload API in advance (when the transfer method is local_file) Name auto_generate_name Type bool Description Auto-generate title, default is true. If set to false, can achieve async title generation by calling the conversation rename API and setting auto_generate to true.
Response When response_mode is blocking, return a CompletionResponse object. When response_mode is streaming, return a ChunkCompletionResponse stream.
ChatCompletionResponse Returns the complete App result, Content-Type is application/json.
message_id (string) Unique message ID conversation_id (string) Conversation ID mode (string) App mode, fixed as chat answer (string) Complete response content metadata (object) Metadata usage (Usage) Model usage information retriever_resources (array[RetrieverResource]) Citation and Attribution List created_at (int) Message creation timestamp, e.g., 1705395332 ChunkChatCompletionResponse Returns the stream chunks outputted by the App, Content-Type is text/event-stream. Each streaming chunk starts with data:, separated by two newline characters \n\n, as shown below:
data: {"event": "message", "task_id": "900bbd43-dc0b-4383-a372-aa6e6c414227", "id": "663c5084-a254-4040-8ad3-51f2a3c1a77c", "answer": "Hi", "created_at": 1705398420}\n\n
Copy Copied! The structure of the streaming chunks varies depending on the event:
event: message LLM returns text chunk event, i.e., the complete text is output in a chunked fashion. task_id (string) Task ID, used for request tracking and the below Stop Generate API message_id (string) Unique message ID conversation_id (string) Conversation ID answer (string) LLM returned text chunk content created_at (int) Creation timestamp, e.g., 1705395332 event: agent_message LLM returns text chunk event, i.e., with Agent Assistant enabled, the complete text is output in a chunked fashion (Only supported in Agent mode) task_id (string) Task ID, used for request tracking and the below Stop Generate API message_id (string) Unique message ID conversation_id (string) Conversation ID answer (string) LLM returned text chunk content created_at (int) Creation timestamp, e.g., 1705395332 event: tts_message TTS audio stream event, that is, speech synthesis output. The content is an audio block in Mp3 format, encoded as a base64 string. When playing, simply decode the base64 and feed it into the player. (This message is available only when auto-play is enabled) task_id (string) Task ID, used for request tracking and the stop response interface below message_id (string) Unique message ID audio (string) The audio after speech synthesis, encoded in base64 text content, when playing, simply decode the base64 and feed it into the player created_at (int) Creation timestamp, e.g.: 1705395332 event: tts_message_end TTS audio stream end event, receiving this event indicates the end of the audio stream. task_id (string) Task ID, used for request tracking and the stop response interface below message_id (string) Unique message ID audio (string) The end event has no audio, so this is an empty string created_at (int) Creation timestamp, e.g.: 1705395332 event: agent_thought thought of Agent, contains the thought of LLM, input and output of tool calls (Only supported in Agent mode) id (string) Agent thought ID, every iteration has a unique agent thought ID task_id (string) (string) Task ID, used for request tracking and the below Stop Generate API message_id (string) Unique message ID position (int) Position of current agent thought, each message may have multiple thoughts in order. thought (string) What LLM is thinking about observation (string) Response from tool calls tool (string) A list of tools represents which tools are called,split by ; tool_input (string) Input of tools in JSON format. Like: {"dalle3": {"prompt": "a cute cat"}}. created_at (int) Creation timestamp, e.g., 1705395332 message_files (array[string]) Refer to message_file event file_id (string) File ID conversation_id (string) Conversation ID event: message_file Message file event, a new file has created by tool id (string) File unique ID type (string) File type,only allow "image" currently belongs_to (string) Belongs to, it will only be an 'assistant' here url (string) Remote url of file conversation_id (string) Conversation ID event: message_end Message end event, receiving this event means streaming has ended. task_id (string) Task ID, used for request tracking and the below Stop Generate API message_id (string) Unique message ID conversation_id (string) Conversation ID metadata (object) Metadata usage (Usage) Model usage information retriever_resources (array[RetrieverResource]) Citation and Attribution List event: message_replace Message content replacement event. When output content moderation is enabled, if the content is flagged, then the message content will be replaced with a preset reply through this event. task_id (string) Task ID, used for request tracking and the below Stop Generate API message_id (string) Unique message ID conversation_id (string) Conversation ID answer (string) Replacement content (directly replaces all LLM reply text) created_at (int) Creation timestamp, e.g., 1705395332 event: error Exceptions that occur during the streaming process will be output in the form of stream events, and reception of an error event will end the stream. task_id (string) Task ID, used for request tracking and the below Stop Generate API message_id (string) Unique message ID status (int) HTTP status code code (string) Error code message (string) Error message event: ping Ping event every 10 seconds to keep the connection alive. Errors 404, Conversation does not exists 400, invalid_param, abnormal parameter input 400, app_unavailable, App configuration unavailable 400, provider_not_initialize, no available model credential configuration 400, provider_quota_exceeded, model invocation quota insufficient 400, model_currently_not_support, current model unavailable 400, completion_request_error, text generation failed 500, internal server error