Module 01: Chatbot Service (API)1.5 GraphQL API & Code Examples
Module 01 • API Gateway
1.5.1 Kiểm Tra Cấu Hình Agent (AgentConfigDetail)
QUERY
Công Khai (Không cần Auth)
AgentConfigDetail.gql
Variables
Response 200 OK
fetchAgentConfigDetail.ts
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ị isEnabled, ứng dụng sẽ quyết định hiển thị hoặc ẩn nút Chat.
🎯 Luồng Nghiệp Vụ
- Nếu
isEnabled == 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 trongdisabledAnswer. Không tiếp tục gọi API đăng nhậpExternalLogin. - Nếu
isEnabled == 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:
GraphQL Query
query AgentConfigDetail($code: String!) {
agentConfigDetail(code: $code) {
code
name
disabledAnswer
isEnabled
}
}Variables (JSON)
{
"code": "buddy"
}Phản Hồi Thành Công (JSON Response)
{
"data": {
"agentConfigDetail": {
"code": "buddy",
"name": "V-Buddy Assistant",
"disabledAnswer": "Hệ thống AI hiện đang bảo trì, quý khách vui lòng quay lại sau.",
"isEnabled": true
}
}
}TypeScript / Axios:
import axios from 'axios';
export interface AgentConfig {
code: string;
name: string;
disabledAnswer?: string;
isEnabled: boolean;
}
/**
* Kiểm tra trạng thái hoạt động của Agent bot
* @param apiUrl Endpoint GraphQL Gateway
* @param agentCode Mã định danh agent (mặc định "buddy")
*/
export async function fetchAgentConfigDetail(
apiUrl: string = process.env.VITE_API_URL!,
agentCode: string = 'buddy'
): Promise<AgentConfig | null> {
const query = `
query AgentConfigDetail($code: String!) {
agentConfigDetail(code: $code) {
code
name
disabledAnswer
isEnabled
}
}
`;
try {
const response = await axios.post(
apiUrl,
{
query,
variables: { code: agentCode },
operationName: 'AgentConfigDetail',
},
{
headers: {
'Content-Type': 'application/json',
'orgId': process.env.VITE_ORG_ID,
'x-org-id': process.env.VITE_ORG_ID,
'x-client-type': 'app',
'x-external-private-key': process.env.VITE_EXTERNAL_PRIVATE_KEY,
},
}
);
return response.data?.data?.agentConfigDetail || null;
} catch (error) {
console.error('[PangoAI] Lỗi khi lấy cấu hình Agent:', error);
return null;
}
}📑 Bảng Tham Số (Schema Definition)
Tham Số Đầu Vào (Variables)
| Trường | Kiểu Dữ Liệu | Bắt Buộc | Mô Tả |
|---|---|---|---|
code | String! | Có | Mã định danh Agent do Pango cấp (ví dụ: "buddy") |
Dữ Liệu Trả Về (Response Fields)
| Trường | Kiểu Dữ Liệu | Mô Tả |
|---|---|---|
code | String | Mã định danh Agent |
name | String | Tên hiển thị của trợ lý ảo (ví dụ: "V-Buddy Assistant") |
disabledAnswer | String? | Lời nhắn thông báo hiển thị cho người dùng khi bot tắt/bảo trì |
isEnabled | Boolean | Cờ trạng thái: true nếu bot đang hoạt động, false nếu đang tắt/bảo trì |