Chatbot ServiceTích hợp GraphQL (Mẫu)
API Gateway
Gửi Đánh Giá Phản Hồi (ExampleSubmitFeedback)
MUTATION MẪU
Yêu cầu Bearer Token
ExampleSubmitFeedback.gql
Variables
Response 200 OK
exampleSubmitFeedback.ts
Dữ Liệu Trả Về (
🛡️ Lưu Ý Schema Mẫu: Tài liệu này mô tả định dạng mutation mẫu (Example Mutation). 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.
Cho phép người dùng đánh giá mức độ hài lòng (1 đến 5 sao) hoặc gửi kèm bình luận đóng góp ý kiến về câu trả lời mà AI đã phản hồi.
💻 Chi Tiết Truy Vấn & Mã Nguồn Mẫu
GraphQL Mutation & Payload (Mẫu):
GraphQL Mutation
mutation ExampleSubmitFeedback($input: ExampleFeedbackInput!) {
exampleSubmitFeedback(input: $input) {
feedback_receipt_id
session_id
target_message_id
submission_status
}
}Variables (JSON Mẫu)
{
"input": {
"session_id": "sess_89f1a23b4c5d6e7f",
"target_message_id": "msg_ast_01j89a8bc43e",
"score_rating": 5,
"feedback_comment": "Câu trả lời rất chính xác và đầy đủ chi tiết!",
"feedback_category": "RATING",
"bot_code": "ai_assistant"
}
}Phản Hồi Thành Công (JSON Response Mẫu)
{
"data": {
"exampleSubmitFeedback": {
"feedback_receipt_id": "fb_9923812831",
"session_id": "sess_89f1a23b4c5d6e7f",
"target_message_id": "msg_ast_01j89a8bc43e",
"submission_status": "SUCCESS"
}
}
}TypeScript / Axios:
import axios from 'axios';
export interface ExampleFeedbackInput {
session_id: string;
target_message_id: string;
score_rating: number; // 1 đến 5 sao
feedback_comment?: string | null;
feedback_category?: string;
bot_code?: string;
}
export interface ExampleFeedbackPayload {
feedback_receipt_id: string;
session_id: string;
target_message_id: string;
submission_status: string;
}
/**
* Gửi đánh giá sao hoặc bình luận góp ý cho tin nhắn AI (Mã mẫu)
*/
export async function exampleSubmitFeedback(
apiUrl: string = process.env.VITE_API_URL!,
token: string,
params: ExampleFeedbackInput
): Promise<ExampleFeedbackPayload> {
const query = `
mutation ExampleSubmitFeedback($input: ExampleFeedbackInput!) {
exampleSubmitFeedback(input: $input) {
feedback_receipt_id
session_id
target_message_id
submission_status
}
}
`;
const response = await axios.post(
apiUrl,
{
query,
variables: {
input: {
session_id: params.session_id,
target_message_id: params.target_message_id,
score_rating: params.score_rating,
feedback_comment: params.feedback_comment?.trim() || null,
feedback_category: params.feedback_category || 'RATING',
bot_code: params.bot_code || 'ai_assistant',
},
},
operationName: 'ExampleSubmitFeedback',
},
{
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`,
'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?.exampleSubmitFeedback;
}📑 Bảng Tham Số Mẫu (Example Schema Definition)
ExampleFeedbackInput
| Thuộc Tính Mẫu | Kiểu Dữ Liệu | Bắt Buộc | Mô Tả |
|---|---|---|---|
session_id | String! | Có | ID phiên chat chứa tin nhắn được đánh giá |
target_message_id | String! | Có | ID tin nhắn phản hồi của trợ lý AI |
score_rating | Int! | Có | Điểm số đánh giá từ 1 đến 5 sao |
feedback_comment | String | Không | Nội dung phản hồi, nhận xét chi tiết |
feedback_category | String | Không | Loại đánh giá (mặc định "RATING") |
bot_code | String | Không | Mã định danh trợ lý AI (mặc định "ai_assistant") |
Dữ Liệu Trả Về (ExampleFeedbackPayload)
| Thuộc Tính Mẫu | Kiểu Dữ Liệu | Mô Tả |
|---|---|---|
feedback_receipt_id | String! | Mã định danh bản ghi feedback |
session_id | String! | ID phiên chat |
target_message_id | String! | ID tin nhắn được đánh giá |
submission_status | String! | Kết quả xử lý ("SUCCESS") |