Trình khám phá API Chat Tương tác

Avoca AI: English Assisstant

Dữ liệu API cho mỗi lượt chat sẽ hiện ở đây.

Bắt đầu bằng cách gửi một tin nhắn trong khung chat.

Tổng quan về API Chat

API Chat hoạt động theo cơ chế hỏi-đáp. Bạn gửi tin nhắn của người dùng và nhận lại phản hồi từ AI. Để duy trì mạch truyện, bạn cần gửi lại conversation_id trong các yêu cầu tiếp theo.

Xác thực (Authentication)

Mọi yêu cầu đến API đều cần được xác thực bằng Access Token. Gửi token này trong header Authorization.

Authorization: Bearer YOUR_ACCESS_TOKEN

Endpoint

POST /v1/chat-messages

Ví dụ cURL: Yêu cầu đầu tiên

Chỉ cần gửi câu truy vấn của người dùng và token xác thực.

curl -X POST 'https://avoca.dify.host/v1/chat-messages' \\
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\
-H 'Content-Type: application/json' \\
-d '{
    "inputs": {},
    "query": "Xin chào",
    "user": "user-123",
    "response_mode": "streaming"
}'

Ví dụ cURL: Yêu cầu tiếp theo

Bắt buộc phải có conversation_id được trả về từ yêu cầu trước đó.

curl -X POST 'https://avoca.dify.host/v1/chat-messages' \\
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\
-H 'Content-Type: application/json' \\
-d '{
    "inputs": {},
    "query": "Em học lớp 7",
    "user": "user-123",
    "response_mode": "streaming",
    "conversation_id": "d8a8a7b1-..."
}'

Cấu trúc Request

interface ChatRequestPayload {
  inputs: object; // Các biến khởi tạo (nếu có)
  query: string; // Tin nhắn của người dùng
  user: string; // ID định danh người dùng
  response_mode: "streaming" | "blocking";
  conversation_id?: string; // ID hội thoại cho các tin nhắn tiếp theo
}

Cấu trúc Response (Streaming)

API sẽ trả về một chuỗi các sự kiện. Dưới đây là các sự kiện quan trọng:

// Bắt đầu một tin nhắn từ AI
interface AgentMessageEvent {
  event: "agent_message";
  id: string;
  task_id: string;
  conversation_id: string;
  answer: string; // Một phần của câu trả lời
}

// Kết thúc tin nhắn
interface MessageEndEvent {
  event: "message_end";
  id: string;
  task_id: string;
  conversation_id: string;
  metadata: object;
}