Demo tích hợp bên thứ ba

Cổng trường học / LMS nhúng SGK AI

Trang này mô phỏng một website của trường đã nhúng widget chat. Bấm biểu tượng ở góc phải để mở trợ lý.

1. Nhúng cho môi trường phát triển (khóa hiển thị công khai)

<script src="https://api.example.edu/static/widget/sgk-chat-widget.js"
        data-api-url="https://api.example.edu"
        data-token="dev-student-key" data-grade="6" data-subject="Toán"></script>
Không dùng cách này trên production: ai xem mã nguồn trang cũng lấy được khóa.

2. Nhúng cho production (token ngắn hạn từ backend của trường)

<script>
  window.SGKChatWidgetConfig = {
    apiUrl: "https://api.example.edu",
    // Backend của trường đổi phiên đăng nhập SSO thành JWT ngắn hạn cho SGK AI.
    tokenProvider: () => fetch("/api/sgk-ai/token", { credentials: "include" })
                          .then(r => r.json()).then(j => j.token),
    grade: 9, subject: "Toán", stream: true, audio: false,
    greeting: "Chào em, cô là trợ lý Toán 9 của trường."
  };
</script>
<script src="https://api.example.edu/static/widget/sgk-chat-widget.js" defer></script>

Máy chủ SGK AI cần bật CORS cho origin của trường (CORS_ALLOW_ORIGINS). Vai trò học sinh/giáo viên, trường và lớp lấy từ token; widget không thể tự nâng quyền.

3. Điều khiển bằng JavaScript

SGKChatWidget.open();
SGKChatWidget.send("Giải thích định lý Pythagoras");
SGKChatWidget.setContext({ grade: 8, subject: "Vật lí" });
SGKChatWidget.on("message", m => console.log(m.role, m.content));
SGKChatWidget.identity().then(me => console.log(me.role, me.school_id));