使用 @ainative/react-sdk 为 React 应用添加 AI 聊天和积分。适用于 (1) 安装 @ainative/react-sdk,(2) 使用 useChat hook 实现聊天完成。
@ainative/ react-sdk.是一项面向实际任务的技能,主要用于React chooks and 组件用于Ainative——聊天完成,信用跟踪,以及管理会话.;Install.Setup: INativeProvider.;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
AINative 的 React Hooks 与组件 — 支持聊天补全、信用额度追踪及受管会话。
npm install @ainative/react-sdk
将你的应用(或某子树)用该 Provider 包裹:
import { AINativeProvider } from '@ainative/react-sdk';
function App() {
return (
);
}
import { useChat } from '@ainative/react-sdk';
import type { Message } from '@ainative/react-sdk';
function ChatUI() {
const { messages, isLoading, error, sendMessage } = useChat({
model: 'claude-3-5-sonnet-20241022',
temperature: 0.7,
max_tokens: 1024,
});
const handleSend = async (input: string) => {
await sendMessage([
...messages,
{ role: 'user', content: input }
]);
};
return (
{messages.map((msg, i) => (
{msg.role}: {msg.content}
))}
{isLoading && Thinking...}
{error && Error: {error.message}}
e.key === 'Enter' && handleSend(e.currentTarget.value)}
placeholder="Type a message..."
/>
);
}
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
model |
string | — | 模型 ID(例如:claude-3-5-sonnet-20241022) |
temperature |
number | 0.7 | 随机性(取值范围:0–1) |
max_tokens |
number | 1024 | 响应最大 token 数 |
| 字段 | 类型 | 说明 |
|---|---|---|
messages |
Message[] |
完整对话历史 |
isLoading |
boolean |
请求发送中时为 true |
error |
AINativeError | null |
最近一次错误(如存在) |
sendMessage |
(msgs: Message[]) => Promise<...> |
发送下一条消息 |
import { useCredits } from '@ainative/react-sdk';
function CreditsBar() {
const { balance, isLoading, error, refetch } = useCredits();
if (isLoading) return Loading credits...;
if (error) return Error: {error.message};
return (
{balance?.remaining_credits} credits remaining
| Plan: {balance?.plan}
);
}
| 字段 | 类型 | 说明 |
|---|---|---|
balance |
CreditBalance | null |
余额数据 |
isLoading |
boolean |
获取状态 |
error |
AINativeError | null |
错误状态 |
refetch |
() => void |
手动刷新 |
CreditBalance 数据结构:{ remaining_credits: number, plan: string, ... }
import {
AINativeProvider,
useChat,
useCredits,
useAINativeContext, // 访问原始 config / baseUrl
type Message,
type ChatCompletionResponse,
type CreditBalance,
type AINativeError,
type UseChatOptions,
} from '@ainative/react-sdk';
REACT_APP_AINATIVE_API_KEY=ak_your_key # CRA VITE_AINATIVE_API_KEY=ak_your_key # Vite
packages/sdks/react/src/hooks/useChat.ts — Hook 实现packages/sdks/react/src/hooks/useCredits.ts — 信用额度 Hookpackages/sdks/react/src/AINativeProvider.tsx — Provider 上下文packages/sdks/react/src/index.ts — 包导出声明