AimableDocs
DocsAPI Reference

Chat

Introduction to the Chat Domain

The "chat" domain in the FastAPI API is designed to facilitate real-time communication within specified spaces. This functionality is crucial for applications that require dynamic interaction between users, such as collaborative platforms, customer support systems, or social networks. By leveraging the chat endpoint, developers can implement seamless messaging capabilities, ensuring users can communicate effectively and efficiently.

Key Concepts and Entities

Space

A "space" represents a virtual environment where users can interact. Each space is uniquely identified by a space_id, which is required to execute chat operations. Spaces can be thought of as chat rooms or channels where conversations occur.

PII Mapping

Personally Identifiable Information (PII) mapping is a critical aspect of managing user data privacy. The API provides several headers to handle PII, such as X-Pii-Mapping, X-Auto-Pii-Mapping, X-Pii-Positions, and X-Chat-History-Pii-Mapping. These headers allow developers to specify how PII is managed within chat messages, ensuring compliance with privacy regulations.

Authentication

The X-API-Key header is used for authenticating API requests. While this header is optional, it is recommended to secure your API calls and protect sensitive data.

Common Workflows

Sending a Chat Message

To send a chat message within a space, you need to make a POST request to the /v1/spaces/{space_id}/chat endpoint. This involves specifying the space_id in the URL path and optionally including headers for PII mapping and authentication.

Example Workflow

  1. Identify the Space: Determine the space_id where the chat message will be sent.
  2. Prepare Headers: Set any necessary headers for PII mapping and include the X-API-Key for authentication if required.
  3. Send the Request: Use a POST request to send the message to the specified space.

Practical Examples

Sending a Chat Message with cURL

Below is a practical example of sending a chat message using cURL:

curl -X POST "https://api.example.com/v1/spaces/12345/chat" \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key" \
-H "X-Pii-Mapping: your_pii_mapping" \
-d '{
  "message": "Hello, world!"
}'

Sending a Chat Message with Python

Here's how you can send a chat message using Python and the requests library:

import requests
 
url = "https://api.example.com/v1/spaces/12345/chat"
headers = {
    "Content-Type": "application/json",
    "X-API-Key": "your_api_key",
    "X-Pii-Mapping": "your_pii_mapping"
}
data = {
    "message": "Hello, world!"
}
 
response = requests.post(url, headers=headers, json=data)
 
if response.status_code == 200:
    print("Message sent successfully!")
else:
    print("Failed to send message:", response.status_code)

Important Considerations

  • Authentication: Always use the X-API-Key header to authenticate your requests and protect your API from unauthorized access.
  • PII Management: Properly configure PII mapping headers to ensure compliance with privacy laws and protect user data.
  • Error Handling: Implement robust error handling to manage potential issues such as network errors or invalid requests.
  • Scalability: Consider the scalability of your chat implementation, especially if handling a large number of concurrent users.

By understanding these concepts and following the outlined workflows, developers can effectively integrate chat functionality into their applications using the FastAPI API.