Giao diện
@tasco/ai/server
Handler Nitro proxy chat tới AI gateway — chỉ import trong server/ của app, không dùng ở client. Hướng dẫn: AI trong sản phẩm.
Hàm
createAiChatProxy()
ts
function createAiChatProxy(options): EventHandler<EventHandlerRequest, Promise<Response>>;Tạo Nitro handler proxy chat-completions streaming tới AI gateway. App sản phẩm dùng: tạo file server/api/ai/chat.post.ts:
import { createAiChatProxy } from '@tasco/ai/server' export default createAiChatProxy({ gatewayUrl: process.env.AI_GATEWAY_URL!, apiKey: process.env.AI_GATEWAY_KEY!, defaultModel: 'claude-sonnet-5', })
Tham số
| Tham số | Kiểu |
|---|---|
options | AiChatProxyOptions |
Trả về
EventHandler<EventHandlerRequest, Promise<Response>>
sanitizeChatRequest()
ts
function sanitizeChatRequest(body, options?): SanitizeResult;Whitelist + validate body từ client trước khi forward tới gateway. Nguyên tắc: client KHÔNG được đẩy param tuỳ ý xuống gateway — chỉ các field đã duyệt (model/messages/temperature/max_tokens) đi qua, phần còn lại bị bỏ.
Tham số
| Tham số | Kiểu |
|---|---|
body | unknown |
options | SanitizeOptions |
Trả về
Interface
AiChatProxyOptions
Tuỳ chọn của createAiChatProxy: địa chỉ gateway, key và giới hạn request.
Kế thừa
Thuộc tính
ChatGatewayPayload
Payload đã whitelist, sẵn sàng forward tới gateway OpenAI-compatible.
Thuộc tính
SanitizeOptions
Giới hạn áp lên body chat client gửi lên, dùng chung cho sanitizeChatRequest và createAiChatProxy.
Được kế thừa bởi
Thuộc tính
Kiểu
SanitizeResult
ts
type SanitizeResult =
| {
ok: true;
payload: ChatGatewayPayload;
}
| {
ok: false;
reason: string;
};Kết quả kiểm tra body: ok kèm payload sạch, hoặc lý do từ chối (tiếng Việt, trả cho client ở lỗi 400).