近年来,人工智能技术飞速发展,尤其是自然语言处理领域的突破,让 AI 对话系统成为了热门话题。而如何快速、高效地构建 AI 对话界面,成为了开发者关注的焦点。今天,我们就来介绍一个强大的 JavaScript 框架:NLUX,它让创建 AI 对话界面变得简单而直观。
github地址: https://github.com/nlkitai/nlux
什么是 NLUX?
NLUX 是一个开源的 JavaScript 和 React 库,用于快速构建对话式 AI 界面。它提供了一系列组件和 API,让开发者能够轻松地与 ChatGPT 等 AI 模型集成,打造出功能丰富、交互友好的 AI 对话应用。
NLUX 采用了分层架构设计,主要包括三个层次:
-
用户界面层 🎨 - 负责渲染屏幕上的所有内容,如用户和 AI 的消息、输入框等,并提供事件监听器、钩子等。
-
API 层 📡 - 提供与聊天机器人编程交互的 API,实现发送消息、获取对话历史等操作。
-
适配器层 🔌 - 通过处理 API 调用、响应流等,实现与 AI 后端的集成,并允许构建自定义适配器。
NLUX 的核心特性
NLUX 提供了一系列强大的特性,让开发 AI 对话界面变得更加高效和灵活:
- 快速构建 AI 聊天界面 - 只需几行代码,即可创建高质量的对话式 AI 界面。
- React 组件和钩子 - 提供
<AiChat />
组件用于 UI 构建,useChatAdapter
钩子简化集成。 - LLM 适配器 - 支持 ChatGPT、LangChain、Hugging Face 等主流 AI 模型和框架。
- 主题和扩展 - 内置
Luna
默认主题和 CSS 样式,方便界面定制。
如何使用 NLUX 构建 AI 对话界面
下面,我们通过一个简单的示例,演示如何使用 NLUX 的 React 组件来构建 AI 对话界面。
import { AiChat, useAsStreamAdapter } from '@nlux/react';
import '@nlux/themes/nova.css';
import { send } from './send';
import { personas } from './personas';
export default () => {
const adapter = useAsStreamAdapter(send, []);
return (
<AiChat
adapter={adapter}
personaOptions={personas}
displayOptions={{ colorScheme: 'dark' }}
/>
);
};
在上面的代码中,我们导入了 NLUX 的 <AiChat />
组件和 useAsStreamAdapter
钩子,然后配置适配器和界面选项,最后渲染出一个暗色主题的 AI 对话界面。是不是非常简单呢?
构建自定义适配器
NLUX 的一大亮点是允许开发者构建自定义适配器,以便与各种 AI 后端进行集成。通过实现 ChatAdapter
接口,我们可以定义自己的适配器逻辑,包括发送消息、接收响应、处理错误等。
下面是一个简单的自定义适配器示例:
import { ChatAdapter, ChatMessage } from '@nlux/core';
class MyCustomAdapter implements ChatAdapter {
async *sendMessage(messages: ChatMessage[]): AsyncIterable<ChatMessage> {
const response = await fetch('https://api.example.com/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ messages }),
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = response.body;
if (!data) {
return;
}
const reader = data.getReader();
const decoder = new TextDecoder();
let done = false;
while (!done) {
const { value, done: readerDone } = await reader.read();
if (value) {
const chunk = decoder.decode(value);
yield { content: chunk, role: 'assistant' };
}
done = readerDone;
}
}
}
在这个例子中,我们定义了一个 MyCustomAdapter
类,实现了 ChatAdapter
接口的 sendMessage
方法。该方法通过 fetch
向自定义的 API 端点发送 POST 请求,并将响应数据解析为 AsyncIterable<ChatMessage>
,以便 NLUX 能够实时显示 AI 的回复。
使用自定义适配器也非常简单,只需将其传递给 <AiChat />
组件的 adapter
属性即可:
const myAdapter = new MyCustomAdapter();
return <AiChat adapter={myAdapter} />;
通过构建自定义适配器,NLUX 为开发者提供了极大的灵活性,使其能够与各种 AI 后端无缝集成,打造出功能强大、个性化的对话式应用。
小结
NLUX 是一个功能强大、使用简单的 JavaScript 框架,让开发者能够快速构建出优雅、高效的 AI 对话界面。无论你是前端新手还是有经验的开发者,都可以利用 NLUX 提供的组件和 API,与 AI 模型无缝集成,打造出令人惊艳的对话式应用。
通过支持自定义适配器,NLUX 进一步增强了其灵活性和可扩展性,使开发者能够与各种 AI 后端进行集成,满足不同场景下的需求。
AI 正在深刻影响着我们的生活,而 NLUX 这样优秀的开源项目,为 AI 技术的普及和应用带来了更多可能。让我们一起拥抱 AI 时代,用代码创造更多精彩吧!