ChatVisi· OpenVISIOpenVisiĐăng nhập

Tài liệu API VISI

Một API cho nhiều mô hình AI, có định tuyến Mix, hạn mức và chi phí do VISI quản lý. Địa chỉ gốc: https://megaairox.com/api/visi/v1

Xác thực

Gửi Authorization: Bearer visi_…. Khoá tạo ở Cổng đối tác, chỉ hiện một lần; VISI chỉ lưu mã băm SHA-256. Mỗi khoá có phạm vi: ai (gọi mô hình), du_lieu (đẩy/đọc dữ liệu), cap_quyen (cấp quyền người dùng). Giữ khoá trên máy chủ — không đặt trong mã trình duyệt. Khoá có thể hết hạn hoặc bị thu hồi tức thì; mọi lời gọi được ghi nhật ký.

1 · Chat Completions (tương thích OpenAI)

model: visi/mix (mặc định, VISI tự chọn), visi/rocket (nhanh, rẻ), visi/lotus (chất lượng cao), visi/private (Local AI), hoặc mã mô hình cụ thể từ GET /models. Hỗ trợ stream: true (Server-Sent Events). Lỗi mở kết nối ở mô hình chính tự chuyển sang mô hình dự phòng.

curl https://megaairox.com/api/visi/v1/chat/completions \
  -H "Authorization: Bearer $VISI_API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"visi/mix","messages":[{"role":"user","content":"Tóm tắt nghị định 13 về dữ liệu cá nhân"}]}'
// Thư viện OpenAI chính thức — chỉ đổi baseURL
import OpenAI from 'openai'
const visi = new OpenAI({ apiKey: process.env.VISI_API_KEY, baseURL: 'https://megaairox.com/api/visi/v1' })
const r = await visi.chat.completions.create({ model: 'visi/mix', messages: [{ role: 'user', content: 'Xin chào' }] })
console.log(r.choices[0].message.content, r.usage, r.visi) // r.visi: mode, routing_reason, model_used, fallbacks, cost_usd

2 · Mô hình

GET https://megaairox.com/api/visi/v1/models   → { data: [ { id, name, tier, features, price_usd_per_1m_input, price_usd_per_1m_output, available } ] }

3 · Chat Widget & SDK

Máy chủ của bạn xin một phiên tạm (5–720 phút) rồi đưa mã vw_… cho trình duyệt. Mã phiên chỉ gọi được AI, không đọc/ghi được dữ liệu.

POST https://megaairox.com/api/visi/v1/widget/session   (Bearer visi_… , phạm vi ai)
{ "user": "khach-123", "minutes": 60 }   →   { "token": "vw_…", "expires_at": "…" }
<!-- Nhúng khung chat thương hiệu của bạn -->
<script src="https://megaairox.com/visi-widget.js"
        data-session-url="/api/lay-phien-visi"
        data-title="Trợ lý của Công ty A" data-color="#1c69d4" defer></script>
<!-- /api/lay-phien-visi là endpoint TRÊN MÁY CHỦ CỦA BẠN, gọi POST /widget/session và trả về { token } -->
// SDK JavaScript (máy chủ Node/Edge hoặc trình duyệt với mã phiên vw_)
import { VisiClient } from 'https://megaairox.com/visi-sdk.js'
const visi = new VisiClient({ apiKey: process.env.VISI_API_KEY })
const tl = await visi.chat([{ role: 'user', content: 'Xin chào' }], { model: 'visi/rocket' })
for await (const doan of visi.stream([{ role: 'user', content: 'Viết email chào hàng' }])) process.stdout.write(doan)
await visi.datasets.create('Sản phẩm 2026')
await visi.datasets.upsertDocuments(datasetId, [{ external_id: 'sp-1', title: 'ERP X', content: '…' }])
await visi.datasets.grant(datasetId, '@nguoidung', '2026-12-31')

4 · Dữ liệu đối tác (phạm vi du_lieu / cap_quyen)

GET    https://megaairox.com/api/visi/v1/datasets
POST   https://megaairox.com/api/visi/v1/datasets                         { "name", "description" }
POST   https://megaairox.com/api/visi/v1/datasets/{id}/documents          { "documents": [ { "external_id", "title", "content", "metadata" } ] }  (≤100/lần, ≤20.000 ký tự/tài liệu, upsert)
DELETE https://megaairox.com/api/visi/v1/datasets/{id}/documents?external_id=…
POST   https://megaairox.com/api/visi/v1/datasets/{id}/grants             { "handle": "@nguoidung", "expires_at": "2026-12-31" }
DELETE https://megaairox.com/api/visi/v1/datasets/{id}/grants?handle=@nguoidung
GET    https://megaairox.com/api/visi/v1/datasets/{id}/access-log?limit=50

Chỉ người dùng được cấp quyền mới truy xuất được tài liệu; mỗi lượt tra của OpenVISI hiện trong access-log.

5 · Truy vấn dữ liệu tại nguồn (không sao chép)

Nếu dữ liệu phải nằm lại hệ thống của bạn, mở một API tìm kiếm theo chuẩn dưới đây; quản trị VISI đăng ký URL và tên biến môi trường chứa khoá máy chủ. VISI gọi tại nguồn khi người dùng được phép hỏi, ghi nhật ký, không lưu bản sao.

GET https://api.cua-ban.vn/visi/search?q=erp+san+xuat&limit=6&visi_user=nguoidung
Authorization: Bearer <khoá máy chủ do hai bên thoả thuận>
→ 200 { "results": [ { "title": "…", "content": "…", "url": "https://…", "metadata": { … } } ] }

6 · Hạn mức, mã lỗi

Hạn mức theo đối tác, khoá, mô hình (5 giờ / tuần / tháng · token, lượt, USD) được đặt chỗ nguyên tử trước mỗi lượt. Khi chạm hạn mức: HTTP 429 quota_exceeded kèm header Retry-After.

401 missing_api_key | invalid_api_key      403 insufficient_scope | partner_suspended | model_not_available
404 dataset_not_found | user_not_found        429 quota_exceeded | tan_suat (rate limit)
503 provider_not_configured — nhà cung cấp AI chưa được cấu hình (VISI không giả lập câu trả lời)
502 upstream_error — mọi mô hình trong chuỗi dự phòng đều lỗi
Thân lỗi: { "error": { "code": "…", "message": "…" } }
OpenVisi · ChatVisi — nền tảng điều phối AIĐăng nhập để xem mô hình