Focus on explaining how to use the useXChat Hook, including custom Provider integration, message management, error handling, multi-conversation management, and more
中文简介正在准备中。当前显示原文说明。
Focus on explaining the practical configuration and usage of XRequest, providing accurate configuration instructions based on official documentation
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
This skill focuses on solving: How to correctly configure XRequest to adapt to various streaming interface requirements.
| Package | Version Requirement | Auto Install | Purpose |
|---|---|---|---|
| @ant-design/x-sdk | ≥2.2.2 | ✅ | Core SDK, includes XRequest tool |
# Recommended to use tnpm
tnpm install @ant-design/x-sdk
# Or use npm
npm add @ant-design/x-sdk
# Check version
npm ls @ant-design/x-sdk
import { XRequest } from '@ant-design/x-sdk';
// Minimal configuration: only need to provide API URL
const request = XRequest('https://api.example.com/chat');
// For manual control (used in Provider scenarios)
const providerRequest = XRequest('https://api.example.com/chat', {
manual: true, // Usually only this needs explicit configuration
});
💡 Tip: XRequest has built-in reasonable default configurations. In most cases, you only need to provide the API URL to use it.
graph TD
A[XRequest] --> B[Network Requests]
A --> C[Authentication Management]
A --> D[Error Handling]
A --> E[Streaming Processing]
B --> F[fetch Wrapper]
C --> G[Token Management]
D --> H[Retry Mechanism]
E --> I[Server-Sent Events]
| Concept | Role Positioning | Core Responsibilities | Usage Scenarios |
|---|---|---|---|
| XRequest | 🌐 Request Tool | Handle all network communication, authentication, error handling | Unified request management |
| Global Config | ⚙️ Config Center | Configure once, use everywhere | Reduce duplicate code |
| Streaming Config | 🔄 Streaming Processing | Support SSE and JSON response formats | AI conversation scenarios |
Core functionality reference content CORE.md
| Runtime Environment | Security Level | Configuration Method | Risk Description |
|---|---|---|---|
| Browser Frontend | 🔴 High Risk | ❌ Prohibit key configuration | Keys will be directly exposed to users |
| Node.js Backend | 🟢 Safe | ✅ Environment variable configuration | Keys stored on server side |
| Proxy Service | 🟢 Safe | ✅ Same-origin proxy forwarding | Keys managed by proxy service |
| Authentication Method | Applicable Environment | Configuration Example | Security |
|---|---|---|---|
| Bearer Token | Node.js | Bearer ${process.env.API_KEY} | ✅ Safe |
| API Key Header | Node.js | X-API-Key: ${process.env.KEY} | ✅ Safe |
| Proxy Forwarding | Browser | /api/proxy/service | ✅ Safe |
| Direct Configuration | Browser | Bearer sk-xxx | ❌ Dangerous |
Node.js Debug Configuration:
// Safe debug configuration (Node.js environment)
const debugRequest = XRequest('https://your-api.com/chat', {
headers: {
Authorization: `Bearer ${process.env.DEBUG_API_KEY}`,
},
params: { query: 'test message' },
});
Frontend Debug Configuration:
// Safe debug configuration (frontend environment)
const debugRequest = XRequest('/api/debug/chat', {
params: { query: 'test message' },
});
// Security configuration validation function
const validateSecurity = (config: any) => {
const isBrowser = typeof window !== 'undefined';
const hasAuth = config.headers?.Authorization || config.headers?.authorization;
if (isBrowser && hasAuth) {
throw new Error(
'❌ Frontend environment prohibits Authorization configuration, risk of key leakage!',
);
}
console.log('✅ Security configuration check passed');
return true;
};
// Usage example
validateSecurity({
headers: {
// Do not include Authorization
},
});
import { XRequest } from '@ant-design/x-sdk';
// Test interface availability
const testRequest = XRequest('https://httpbin.org/post', {
params: { test: 'data' },
});
// Send request immediately
const response = await testRequest();
console.log(response);
graph TD
A[x-request] -->|Configure Request| B[x-chat-provider]
A -->|Configure Request| C[use-x-chat]
B -->|Provide Provider| C
A --> D[Direct Request]
| Usage Method | Cooperating Skill | Purpose | Example |
|---|---|---|---|
| Standalone | None | Direct network request initiation | Test interface availability |
| With x-chat-provider | x-chat-provider | Configure requests for custom Provider | Configure private API |
| With use-x-chat | use-x-chat | Configure requests for built-in Provider | Configure OpenAI API |
| Complete AI Application | x-request → x-chat-provider → use-x-chat | Configure requests for entire system | Complete AI conversation application |
Important Warning: useXChat is only for frontend environments, XRequest configuration must not contain Authorization!
❌ Incorrect Configuration (Dangerous):
// Extremely dangerous: keys will be directly exposed to browser
const unsafeRequest = XRequest('https://api.openai.com/v1/chat/completions', {
headers: {
Authorization: 'Bearer sk-xxxxxxxxxxxxxx', // ❌ Dangerous!
},
manual: true,
});
✅ Correct Configuration (Safe):
// Frontend security configuration: use proxy service
const safeRequest = XRequest('/api/proxy/openai', {
params: {
model: 'gpt-3.5-turbo',
stream: true,
},
manual: true,
});
tsc --noEmit to ensure no type errorsBefore using XRequest, please confirm the following configurations are correctly set:
| Check Item | Status | Description |
|---|---|---|
| API URL | ✅ Must Configure | XRequest('https://api.xxx.com') |
| Auth Info | ⚠️ Environment Related | Frontend❌Prohibited, Node.js✅Available |
| manual Config | ✅ Provider Scenario | In Provider needs to be set to true, other scenarios need to be set according to actual situation |
| Other Config | ❌ No Need to Configure | Built-in reasonable default values |
| Interface Availability | ✅ Recommended Test | Verify with debug configuration |
// Check configuration before running
const checkConfig = () => {
const checks = [
{
name: 'Global Configuration',
test: () => {
// Check if global configuration has been set
return true; // Check according to actual situation
},
},
{
name: 'Security Configuration',
test: () => validateSecurity(globalConfig),
},
{
name: 'Type Check',
test: () => {
// Run tsc --noEmit
return true;
},
},
];
checks.forEach((check) => {
console.log(`${check.name}: ${check.test() ? '✅' : '❌'}`);
});
};
graph LR
A[x-request] -->|Configure Request| B[x-chat-provider]
A -->|Configure Request| C[use-x-chat]
B -->|Provide Provider| C
| Usage Scenario | Required Skills | Usage Order | Completion Time |
|---|---|---|---|
| Test Interface | x-request | Direct Use | 2 minutes |
| Private API Adaptation | x-request → x-chat-provider | Configure request first, then create Provider | 10 minutes |
| Standard AI Application | x-request → use-x-chat | Configure request first, then build interface | 15 minutes |
| Complete Customization | x-request → x-chat-provider → use-x-chat | Complete workflow | 30 minutes |
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Focus on explaining how to use the useXChat Hook, including custom Provider integration, message management, error handling, multi-conversation management, and more
中文简介正在准备中。当前显示原文说明。
专注讲解如何使用 useXChat Hook,包括自定义 Provider 的集成、消息管理、错误处理、多会话管理等
中文简介正在准备中。当前显示原文说明。
当需要用 @ant-design/x-card 让 AI Agent 动态渲染富交互 UI 时使用——涵盖 XCard.Box、XCard.Card、A2UI v0.9 命令、数据绑定、Catalog、Actions 和流式渲染模式。
中文简介正在准备中。当前显示原文说明。
Use when building AI-driven UIs with @ant-design/x-card — covers XCard.Box, XCard.Card, A2UI v0.9 commands, data binding, catalogs, actions, and streaming patterns.
中文简介正在准备中。当前显示原文说明。
专注于自定义 Chat Provider 的实现,帮助将任意流式接口适配为 Ant Design X 标准格式
中文简介正在准备中。当前显示原文说明。
Focus on implementing custom Chat Provider, helping to adapt any streaming interface to Ant Design X standard format
中文简介正在准备中。当前显示原文说明。