.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 هذا نظامًا أساسيًا يستند إلى JavaScript لإنشاء روبوتات ووكلاء محادثة تعمل بالذكاء الاصطناعي بسهولة. باستخدام ChatBotKit، يمكنك تطوير ونشر روبوتات الذكاء الاصطناعي القادرة على التفاعلات اللغوية الطبيعية بسرعة.
هذا مستودع تعريفي لـ ChatBotKit Node SDK. يحتوي على حزم SDK لعدد من الأنظمة الأساسية وأطر العمل الشائعة مثل React و Next.js و NextAuth والمزيد.
يتكون ChatBotKit Node SDK من الحزم التالية:
طَرد | إصدار | وصف |
---|---|---|
@chatbotkit/cli | واجهة سطر الأوامر ChatBotKit. | |
@chatbotkit/sdk | واجهة برمجة تطبيقات ChatBotKit SDK. | |
@chatbotkit/رد فعل | ChatBotKit React SDK. | |
@chatbotkit/التالي | ChatBotKit Next.js SDK. | |
@chatbotkit/nextauth | ChatBotKit NextAuth.js SDK. | |
@chatbotkit/fetch | تنفيذ الجلب متساوي القياس ChatBotKit. |
يحتوي هذا المستودع أيضًا على الأدوات التالية:
طَرد | إصدار | وصف |
---|---|---|
create-cbk-app | أداة سريعة لإنشاء تطبيق CBK جديد. |
اتبع هذه الخطوات لبدء استخدام ChatBotKit:
npm install @chatbotkit/sdk
يوضح هذا المثال إمكانيات البث في بيئات Edge و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 )
}
}
يوضح هذا المثال كيفية إنشاء الذكاء الاصطناعي للمحادثة المتقدم من خلال البث واستدعاءات الوظائف والعرض من جانب الخادم وغير ذلك الكثير في مشروع 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 } ` } , } , ] , } ) }
يوضح هذا المثال السريع كيفية استخدام SDK في مشروع 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' , }
استكشف مجموعة من الأمثلة هنا.
بعض الأمثلة البارزة تشمل:
منصة | مثال | وصف |
---|---|---|
Next.js | دردشة عديمة الحالة (جهاز توجيه التطبيق + RSC + الوظائف + طلب الوظيفة) | مثال على برنامج chatbot عديم الحالة، حيث تتم إدارة المحادثة بواسطة العميل والخادم. يستخدم هذا المثال جهاز توجيه التطبيق وإجراءات الخادم بالإضافة إلى وظائف الذكاء الاصطناعي مع طلبات الوظائف. يعد هذا مثالًا قويًا لتوضيح القدرات الكاملة لمنصة ChatBotKit للذكاء الاصطناعي للمحادثة. |
Next.js | الدردشة بدون حالة (جهاز توجيه التطبيقات + RSC + الوظائف) | مثال على برنامج chatbot عديم الحالة، حيث تتم إدارة المحادثة بواسطة العميل والخادم. يستخدم هذا المثال جهاز توجيه التطبيق وإجراءات الخادم بالإضافة إلى وظائف الذكاء الاصطناعي. |
Next.js | الدردشة عديمة الحالة (جهاز توجيه التطبيق + RSC) | مثال على برنامج chatbot عديم الحالة، حيث تتم إدارة المحادثة بواسطة العميل والخادم. يستخدم هذا المثال جهاز توجيه التطبيق وإجراءات الخادم. |
Next.js | الدردشة عديمة الحالة (جهاز توجيه التطبيق) | مثال لروبوتات الدردشة عديمة الحالة، حيث تتم إدارة المحادثة من قبل العميل. يستخدم هذا المثال جهاز توجيه التطبيقات. |
Next.js | دردشة عديمي الجنسية | مثال لروبوتات الدردشة عديمة الحالة، حيث تتم إدارة المحادثة من قبل العميل. |
Next.js | الدردشة الأساسية | مثال أساسي لبرنامج chatbot، حيث تتم إدارة المحادثة بواسطة ChatBotKit. |
Next.js | مثال المصادقة التالية | يوضح كيفية الجمع بين NextAuth وChatBotKit. |
العقدة | GPT4 دفق الدردشة AI | مثال بسيط لروبوتات الدردشة الذكية المتدفقة. |
عمال كلاودفلير | روبوت الدردشة GPT4 AI | مثال لروبوتات المحادثة المتدفقة بتقنية الذكاء الاصطناعي لعمال Cloudflare. |
تعتبر جميع ميزات SDK غير مستقرة ما لم يتم وضع علامة واضحة عليها على أنها مستقرة. تتم الإشارة إلى الاستقرار من خلال وجود علامة @stable
في الوثائق.
تواجه خطأ أو ترغب في المساهمة؟ افتح مشكلة أو أرسل طلب سحب على مستودع GitHub الرسمي الخاص بنا.