Chatbot ServiceTích hợp GraphQL (Mẫu)
API Gateway
Kiểm Tra Cấu Hình Trợ Lý (ExampleAgentConfig)
QUERY MẪU
Yêu cầu Bearer Token
ExampleAgentConfig.gql
Variables
Response 200 OK
fetchExampleAgentConfig.ts
Dữ Liệu Trả Về (
🛡️ Lưu Ý Schema Mẫu: Tài liệu này mô tả định dạng truy vấn mẫu (Example Query). Cấu trúc schema và tên trường chính thức sẽ được cấp riêng trong tài liệu hợp tác.
API này được sử dụng làm bước Pre-flight check ngay khi ứng dụng khởi động hoặc khi người dùng chuẩn bị vào màn hình có tích hợp Chatbot. Dựa vào giá trị is_online, ứng dụng sẽ quyết định hiển thị hoặc ẩn nút Chat.
Luồng Nghiệp Vụ
- Nếu
is_online == false: Ứng dụng ẩn nút chat bot hoặc hiển thị câu thông báo bảo trì được cấu hình trongsystem_notice. Không tiếp tục gọi API đăng nhập tài khoản. - Nếu
is_online == true: Ứng dụng hiển thị nút chat và tiếp tục các bước tương tác tiếp theo.
Chi Tiết Truy Vấn & Mã Nguồn Mẫu
GraphQL Query & Payload (Mẫu):
GraphQL Query
query ExampleAgentConfig($bot_code: String!) {
exampleAgentConfig(bot_code: $bot_code) {
bot_code
display_name
system_notice
is_online
}
}Variables (JSON Mẫu)
{
"bot_code": "ai_assistant"
}Phản Hồi Thành Công (JSON Response Mẫu)
{
"data": {
"exampleAgentConfig": {
"bot_code": "ai_assistant",
"display_name": "Pango AI Assistant",
"system_notice": "Hệ thống AI hiện đang bảo trì, quý khách vui lòng quay lại sau.",
"is_online": true
}
}
}TypeScript / Axios:
import axios from 'axios';
export interface ExampleAgentConfigPayload {
bot_code: string;
display_name: string;
system_notice?: string;
is_online: boolean;
}
/**
* Kiểm tra trạng thái hoạt động của trợ lý AI (Mã mẫu)
* @param apiUrl Endpoint GraphQL Gateway
* @param botCode Mã định danh agent (mặc định "ai_assistant")
*/
export async function fetchExampleAgentConfig(
apiUrl: string = process.env.VITE_API_URL!,
botCode: string = 'ai_assistant'
): Promise<ExampleAgentConfigPayload | null> {
const query = `
query ExampleAgentConfig($bot_code: String!) {
exampleAgentConfig(bot_code: $bot_code) {
bot_code
display_name
system_notice
is_online
}
}
`;
try {
const response = await axios.post(
apiUrl,
{
query,
variables: { bot_code: botCode },
operationName: 'ExampleAgentConfig',
},
{
headers: {
'Content-Type': 'application/json',
'x-org-id': process.env.VITE_ORG_ID || 'org_sample_demo',
'x-client-type': 'app',
'x-external-private-key': process.env.VITE_EXTERNAL_PRIVATE_KEY || 'your_secret_key',
},
}
);
return response.data?.data?.exampleAgentConfig || null;
} catch (error) {
console.error('[PangoAI] Lỗi khi lấy cấu hình Agent:', error);
return null;
}
}Bảng Tham Số Mẫu (Example Schema Definition)
Tham Số Đầu Vào (Variables)
| Trường Mẫu | Kiểu Dữ Liệu | Bắt Buộc | Mô Tả |
|---|---|---|---|
bot_code | String! | Có | Mã định danh Agent do Pango cấp (ví dụ: "ai_assistant") |
Dữ Liệu Trả Về (ExampleAgentConfigPayload)
| Trường Mẫu | Kiểu Dữ Liệu | Mô Tả |
|---|---|---|
bot_code | String | Mã định danh Agent |
display_name | String | Tên hiển thị của trợ lý ảo (ví dụ: "Pango AI Assistant") |
system_notice | String? | Lời nhắn thông báo hiển thị cho người dùng khi bot tắt/bảo trì |
is_online | Boolean | Cờ trạng thái: true nếu bot đang hoạt động, false nếu đang tắt/bảo trì |