.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
Bem-vindo ao SDK do nó ChatBotKit. Este SDK oferece uma plataforma baseada em JavaScript para criar bots e agentes de IA conversacionais sem esforço. Com o ChatBotKit, você pode desenvolver e implantar rapidamente bots de IA capazes de interações em linguagem natural.
Este é um meta repositório para o ChatBotKit Node SDK. Ele contém os pacotes SDK para diversas plataformas e estruturas populares, como React , Next.js , NextAuth e muito mais.
O ChatBotKit Node SDK é composto pelos seguintes pacotes:
Pacote | Versão | Descrição |
---|---|---|
@chatbotkit/cli | A CLI do ChatBotKit. | |
@chatbotkit/sdk | O SDK da API ChatBotKit. | |
@chatbotkit/reagir | O SDK do ChatBotKit React. | |
@chatbotkit/próximo | O SDK do ChatBotKit Next.js. | |
@chatbotkit/nextauth | O SDK do ChatBotKit NextAuth.js. | |
@chatbotkit/buscar | A implementação de busca isométrica do ChatBotKit. |
Este repositório também contém as seguintes ferramentas:
Pacote | Versão | Descrição |
---|---|---|
criar-cbk-app | Uma ferramenta rápida para criar um novo aplicativo CBK. |
Siga estas etapas para começar com o ChatBotKit:
npm install @chatbotkit/sdk
Este exemplo demonstra recursos de streaming em ambientes Edge e Serverless:
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 )
}
}
Este exemplo mostra como construir IA conversacional avançada com streaming, chamadas de função, renderização no servidor e muito mais em um projeto Next.js:
// 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 } ` } , } , ] , } ) }
Este exemplo rápido demonstra como usar o SDK em um projeto Next.js:
// 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' , }
Explore uma série de exemplos aqui.
Alguns exemplos notáveis incluem:
Plataforma | Exemplo | Descrição |
---|---|---|
Próximo.js | Bate-papo sem estado (Roteador de aplicativo + RSC + Funções + Solicitação de função) | Um exemplo de chatbot sem estado, onde a conversa é gerenciada pelo cliente e pelo servidor. Este exemplo usa o App Router e as ações do servidor, bem como funções de IA com solicitações de função. Este é um exemplo poderoso para demonstrar todos os recursos da plataforma de IA conversacional ChatBotKit. |
Próximo.js | Chat sem estado (App Router + RSC + Funções) | Um exemplo de chatbot sem estado, onde a conversa é gerenciada pelo cliente e pelo servidor. Este exemplo usa o App Router e as ações do servidor, bem como funções de IA. |
Próximo.js | Bate-papo sem estado (Roteador de aplicativos + RSC) | Um exemplo de chatbot sem estado, onde a conversa é gerenciada pelo cliente e pelo servidor. Este exemplo usa o App Router e as ações do servidor. |
Próximo.js | Bate-papo sem estado (roteador de aplicativos) | Um exemplo de chatbot sem estado, onde a conversa é gerenciada pelo cliente. Este exemplo usa o App Router. |
Próximo.js | Bate-papo sem estado | Um exemplo de chatbot sem estado, onde a conversa é gerenciada pelo cliente. |
Próximo.js | Bate-papo básico | Um exemplo básico de chatbot, onde a conversa é gerenciada pelo ChatBotKit. |
Próximo.js | Exemplo de NextAuth | Mostra como combinar NextAuth e ChatBotKit. |
Nó | Chatbot de IA de streaming GPT4 | Um exemplo simples de chatbot de IA de streaming. |
Trabalhadores da Cloudflare | Chatbot com IA GPT4 | Um exemplo de chatbot de IA de streaming para trabalhadores da Cloudflare. |
Todos os recursos do SDK são considerados instáveis, a menos que sejam explicitamente marcados como estáveis. A estabilidade é indicada pela presença de uma tag @stable
na documentação.
Encontrou um bug ou quer contribuir? Abra um problema ou envie uma solicitação pull em nosso repositório oficial do GitHub.