@chainlit/react-client

中文文档
0.5.0发布于 2026/08/26Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 4664

Websocket 客户端可以连接到您的连锁应用程序.

中文使用文档
文档目录7 节
  1. 概览
  2. 安装
  3. 使用量
  4. useChatSession
  5. useChatMessages
  6. useChatData
  7. useChatInteract

概览

这个 @chainlit/react-client 软件包提供了一组反应钩子以及连接到您的API客户端 链条 应用程序来自任何反应应用程序。 该套件包括用于管理聊天会话的钩子,消息,数据和交互.

安装

要安装软件包,请在项目目录中运行以下命令:

npm install @chainlit/react-client

此软件包的使用 后坐力 来管理国家 这意味着您必须在后座力提供者中包装您的应用程序 :

import React from 'react';
import ReactDOM from 'react-dom/client';
import { RecoilRoot } from 'recoil';

import { ChainlitAPI, ChainlitContext } from '@chainlit/react-client';

const CHAINLIT_SERVER_URL = 'http://localhost:8000';

const apiClient = new ChainlitAPI(CHAINLIT_SERVER_URL, 'webapp');

ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
  <React.StrictMode>
    <ChainlitContext.Provider value={apiClient}>
      <RecoilRoot>
        <MyApp />
      </RecoilRoot>
    </ChainlitContext.Provider>
  </React.StrictMode>
);

使用量

useChatSession

此钩子负责管理聊天会话与WebSocket服务器的连接.

方法

  • connect: 建立与 WebSocket 服务器的连接.
  • disconnect: 从 WebSocket 服务器上断开连接.
  • setChatProfile: 设置聊天配置状态.

示例

import { useChatSession } from '@chainlit/react-client';

const ChatComponent = () => {
  const { connect, disconnect, chatProfile, setChatProfile } = useChatSession();

  // Connect to the WebSocket server
  useEffect(() => {
    connect({
      userEnv: {
        /* user environment variables */
      }
    });

    return () => {
      disconnect();
    };
  }, []);

  // Rest of your component logic
};

useChatMessages

这个钩子提供了聊天消息和第一个用户消息的访问权限.

属性

  • messages: 一系列聊天信息.
  • firstUserMessage:用户的第一个消息.

示例

import { useChatMessages } from '@chainlit/react-client';

const MessagesComponent = () => {
  const { messages, firstUserMessage } = useChatMessages();

  // Render your messages
  return (
    <div>
      {messages.map((message) => (
        <p key={message.id}>{message.output}</p>
      ))}
    </div>
  );
};

useChatData

这个钩子提供各种聊天相关数据和状态的访问.

属性

  • actions:一系列动作.
  • askUser:当前询问用户状态.
  • avatars: 一系列相声元素.
  • chatSettingsDefaultValue:聊天设置的默认值.
  • chatSettingsInputs: 当前聊天设置输入 .
  • chatSettingsValue: 聊天设置的当前值.
  • connected: 一个布尔表示是否建立了 WebSocket 连接 .
  • disabled: 一个布尔表示聊天是否被禁用 .
  • elements: 一系列聊天元素.
  • error:布尔表示会话中是否有出错.
  • loading:布尔表示聊天是否处于装入状态.
  • tasklists: 一系列任务列表元素.

示例

import { useChatData } from '@chainlit/react-client';

const ChatDataComponent = () => {
  const { loading, connected, error } = useChatData();

  // Use the data to render your component
  if (loading) return <p>Loading...</p>;
  if (error) return <p>Error connecting to chat...</p>;
  if (!connected) return <p>Disconnected...</p>;

  // Rest of your component logic
};

useChatInteract

此钩子提供了与聊天交互的方法,例如发送消息,回复,以及更新设置等.

方法

  • callAction:要求采取行动.
  • clear: 清除聊天会话.
  • replyMessage: 对消息的答复.
  • sendMessage:发送消息.
  • stopTask: 停止当前的任务.
  • setIdToResume: 设置ID以恢复一条线程 .
  • updateChatSettings: 更新聊天设置.

示例

import { useChatInteract } from '@chainlit/react-client';

const InteractionComponent = () => {
  const { sendMessage, replyMessage } = useChatInteract();

  const handleSendMessage = () => {
    const message = { output: 'Hello, World!', id: 'message-id' };
    sendMessage(message);
  };

  const handleReplyMessage = () => {
    const message = { output: 'Replying to your message', id: 'reply-id' };
    replyMessage(message);
  };

  // Render your interaction component
  return (
    <div>
      <button onClick={handleSendMessage}>Send Message</button>
      <button onClick={handleReplyMessage}>Reply to Message</button>
    </div>
  );
};

版本与发布记录

@chainlit/react-client 共发布 20 个版本,首次发布于 2023/11/16;过去 12 个月发布了 5 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.5.0latest2026/08/262 个月前
0.4.22026/04/226 个月前
0.4.12026/04/087 个月前
0.4.02026/03/247 个月前
0.3.12025/12/2510 个月前
0.3.02025/10/061.1 年前

关于 @chainlit/react-client 的常见问题

@chainlit/react-client 是什么?

Websocket 客户端可以连接到您的连锁应用程序.

如何安装 @chainlit/react-client?

在项目目录运行 npm install @chainlit/react-client,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@types/react(^18.3.1)、react(^18.3.1)、react-dom(^18.3.1)、recoil(^0.7.7)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@chainlit/react-client 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@chainlit/react-client 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@chainlit/react-client 可以商用吗?

@chainlit/react-client 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@chainlit/react-client 的下载量有多少?

根据 npm 官方下载统计,@chainlit/react-client 在 2026/10/10 – 2026/11/08 这 30 天内被下载 4,664 次,日均约 155 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@chainlit/react-client 还在维护吗?

最新版本 0.5.0 发布于 2026/08/26(2 个月前);至今共发布 20 个版本,其中过去 12 个月发布了 5 个;首次发布于 2023/11/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。