노드 SDK
1.0.0
.d8888b. 888888b. 888 d8P
d88P Y88b 888 "88b 888 d8P
888 888 888 .88P 888 d8P
888 8888888K. 888d88K
888 888 "Y88b 8888888b
888 888 888 888 888 Y88b
Y88b d88P 888 d88P 888 Y88b
"Y8888P" 8888888P" 888 Y88b .ai
ChatBotKit Node SDK에 오신 것을 환영합니다. 이 SDK는 대화형 AI 봇과 에이전트를 쉽게 구축할 수 있는 JavaScript 기반 플랫폼을 제공합니다. ChatBotKit을 사용하면 자연어 상호 작용이 가능한 AI 봇을 신속하게 개발하고 배포할 수 있습니다.
ChatBotKit Node SDK의 메타 저장소입니다. 여기에는 React , Next.js , NextAuth 등과 같은 널리 사용되는 여러 플랫폼 및 프레임워크용 SDK 패키지가 포함되어 있습니다.
ChatBotKit Node SDK는 다음 패키지로 구성됩니다.
패키지 | 버전 | 설명 |
---|---|---|
@chatbotkit/cli | ChatBotKit CLI. | |
@chatbotkit/sdk | ChatBotKit API SDK. | |
@chatbotkit/반응 | ChatBotKit React SDK. | |
@chatbotkit/다음 | ChatBotKit Next.js SDK. | |
@chatbotkit/nextauth | ChatBotKit NextAuth.js SDK. | |
@chatbotkit/가져오기 | ChatBotKit 아이소메트릭 가져오기 구현입니다. |
이 저장소에는 다음 도구도 포함되어 있습니다.
패키지 | 버전 | 설명 |
---|---|---|
생성-cbk-앱 | 새로운 CBK 애플리케이션을 생성하는 빠른 도구입니다. |
ChatBotKit을 시작하려면 다음 단계를 따르세요.
npm install @chatbotkit/sdk
이 예에서는 Edge 및 서버리스 환경의 스트리밍 기능을 보여줍니다.
import { ConversationClient } from '@chatbotkit/sdk/conversation/index.js'
const client = new ConversationClient ( /* configuration */ )
for await ( const { type , data } of client
. complete ( null , { model : 'gpt-4' , messages } )
. stream ( ) ) {
if ( type === 'token' ) {
process . stdout . write ( data . token )
}
}
이 예에서는 Next.js 프로젝트에서 스트리밍, 함수 호출, 서버 측 렌더링 등을 통해 고급 대화형 AI를 구축하는 방법을 보여줍니다.
// file: ./app/page.jsx import ChatArea from '../components/ChatArea.jsx' export default function Page ( ) { return < ChatArea / > } // file: ./components/ChatArea.jsx 'use client' import { useContext } from 'react' import { complete } from '../actions/conversation.jsx' import { ChatInput , ConversationContext } from '@chatbotkit/react' import ConversationManager from '@chatbotkit/react/components/ConversationManager' export function ChatMessages ( ) { const { thinking , text , setText , messages , submit , } = useContext ( ConversationContext ) return ( < div > < div > { messages . map ( ( { id , type , text , children } ) => { switch ( type ) { case 'user' : return ( < div key = { id } > < div > < strong > user: < / strong > { text } < / div > < / div > ) case 'bot' : return ( < div key = { id } > < div > < strong > bot: < / strong > { text } < / div > { children ? < div > { children } < / div > : null } < / div > ) } } ) } { thinking ? ( < div key = "thinking" > < strong > bot: < / strong > thinking... < / div > ) : null } < / div > < ChatInput value = { text } onChange = { ( e ) => setText ( e . target . value ) } onSubmit = { submit } placeholder = "Type something..." style = { { border : 0 , outline : 'none' , resize : 'none' , width : '100%' , marginTop : '10px' , } } / > < / div > ) } export default function ChatArea ( ) { return ( < ConversationManager endpoint = { complete } > < ChatMessages / > < / ConversationManager > ) } // file: ./actions/conversation.jsx 'use server' import CalendarEvents from '../components/CalendarEvents.jsx' import { streamComplete } from '@chatbotkit/react/actions/complete' import { ChatBotKit } from '@chatbotkit/sdk' const cbk = new ChatBotKit ( { secret : process . env . CHATBOTKIT_API_SECRET , } ) export async function complete ( { messages } ) { return streamComplete ( { client : cbk . conversation , messages , functions : [ { name : 'getUserName' , description : 'Get the authenticated user name' , parameters : { } , handler : async ( ) => { return 'John Doe' } , } , { name : 'getCalendarEvents' , description : 'Get a list of calendar events' , parameters : { } , handler : async ( ) => { const events = [ { id : 1 , title : 'Meeting with Jane Doe' } , { id : 2 , title : 'Meeting with Jill Doe' } , ] return { children : < CalendarEvents events = { events } / > , result : { events , } , } } , } , { name : 'declineCalendarEvent' , description : 'Decline a calendar event' , parameters : { type : 'object' , properties : { id : { type : 'number' , description : 'The ID of the event to decline' , } , } , required : [ 'id' ] , } , handler : async ( { id } ) => { return `You have declined the event with ID ${ id } ` } , } , ] , } ) }
이 빠른 예는 Next.js 프로젝트에서 SDK를 사용하는 방법을 보여줍니다.
// file: ./pages/index.js import { AutoTextarea , useConversationManager } from '@chatbotkit/react' export default function Index ( ) { const { thinking , text , setText , messages , submit , } = useConversationManager ( { endpoint : '/api/conversation/complete' , } ) function handleOnKeyDown ( event ) { if ( event . keyCode === 13 ) { event . preventDefault ( ) submit ( ) } } return ( < div style = { { fontFamily : 'monospace' , padding : '10px' } } > { messages . map ( ( { id , type , text } ) => ( < div key = { id } > < strong > { type } : < / strong > { text } < / div > ) ) } { thinking && ( < div key = "thinking" > < strong > bot: < / strong > thinking... < / div > ) } < AutoTextarea value = { text } onChange = { ( e ) => setText ( e . target . value ) } onKeyDown = { handleOnKeyDown } placeholder = "Type something..." style = { { border : 0 , outline : 'none' , resize : 'none' , width : '100%' , marginTop : '10px' , } } / > < / div > ) } // file: ./pages/api/conversation/complete.js import { ChatBotKit } from '@chatbotkit/sdk' import { stream } from '@chatbotkit/next/edge' const cbk = new ChatBotKit ( { secret : process . env . CHATBOTKIT_API_SECRET , } ) export default async function handler ( req ) { const { messages } = await req . json ( ) return stream ( cbk . conversation . complete ( null , { messages } ) ) } export const config = { runtime : 'edge' , }
여기에서 다양한 예시를 살펴보세요.
몇 가지 주목할만한 예는 다음과 같습니다.
플랫폼 | 예 | 설명 |
---|---|---|
Next.js | 무상태 채팅(앱 라우터 + RSC + 기능 + 기능 요청) | 클라이언트와 서버가 대화를 관리하는 상태 비저장 챗봇의 예입니다. 이 예에서는 기능 요청과 함께 앱 라우터 및 서버 작업은 물론 AI 기능도 사용합니다. 이는 ChatBotKit 대화형 AI 플랫폼의 모든 기능을 보여주는 강력한 예입니다. |
Next.js | 무상태 채팅(앱 라우터 + RSC + 기능) | 클라이언트와 서버가 대화를 관리하는 상태 비저장 챗봇의 예입니다. 이 예에서는 앱 라우터 및 서버 작업과 AI 기능을 사용합니다. |
Next.js | 상태 비저장 채팅(앱 라우터 + RSC) | 클라이언트와 서버가 대화를 관리하는 상태 비저장 챗봇의 예입니다. 이 예에서는 앱 라우터 및 서버 작업을 사용합니다. |
Next.js | 상태 비저장 채팅(앱 라우터) | 클라이언트가 대화를 관리하는 상태 비저장 챗봇의 예입니다. 이 예에서는 앱 라우터를 사용합니다. |
Next.js | 무상태 채팅 | 클라이언트가 대화를 관리하는 상태 비저장 챗봇의 예입니다. |
Next.js | 기본 채팅 | ChatBotKit에서 대화를 관리하는 기본 챗봇 예제입니다. |
Next.js | 다음인증 예시 | NextAuth와 ChatBotKit을 결합하는 방법을 보여줍니다. |
마디 | GPT4 스트리밍 AI 챗봇 | 간단한 스트리밍 AI 챗봇 예시. |
Cloudflare 작업자 | GPT4 AI 챗봇 | Cloudflare Workers를 위한 스트리밍 AI 챗봇 예시입니다. |
모든 SDK 기능은 명시적으로 안정적이라고 표시되지 않는 한 불안정한 것으로 간주됩니다. 안정성은 문서에 @stable
태그가 있으면 표시됩니다.
버그가 발생했거나 기여하고 싶으십니까? 문제를 열거나 공식 GitHub 저장소에 풀 요청을 제출하세요.