استفاده از OpenAI در React به سادگی آب خوردن!
اگه به ری اکت مسلط هستی، خوشبختانه میتونی از OpenAI تو پروژه های خودت استفاده کنی و یک عالمه ایده خفن و خلاقانه بصورت رایگان پیاده سازی کنی مثلا : چت بات هوش مصنوعی، مترجم زبان، دستیار پزشکی، مشاور و ..
خود OpenAI ( چت جی پی تی ) یک API رایگان داره که میتونیم تو پروژه های ری اکتی خودمون ازش استفاده کنیم!
نصب کتابخانه OpenAI
برای شروع به کمک دستور زیر کتابخانه OpenAI رو نصب میکنیم:
npm install openai
خب ! حالا اولین قدم اینه که از OpenAI یک کلید ( API ) بگیریم تا بتونیم از خدماتش استفاده کنیم.
تعریف کلید API ( با بیخیالی کامل )
تو فایل .env
توی ریشه پروژه باید این api key رو قرار بدیم ( البته ک اینکار به لحاظ امنیتی کار درستی نیست چون این api key میتونه لو بره – راهکار درستش پیاده سازی یک middleware هست ):
// .env
REACT_APP_OPENAI_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
شروع استفاده از OpenAI داخل کامپوننت ری اکتی!
حالا میتونیم یه کامپوننت بسازیم و کد زیر رو داخلش قرار بدیم:
// src/ChatBot.js
import React, { useState } from 'react';
import { OpenAI } from 'openai';
const openai = new OpenAI({
apiKey: process.env.REACT_APP_OPENAI_KEY,
dangerouslyAllowBrowser: true,
});
function ChatBot() {
const [input, setInput] = useState('');
const [response, setResponse] = useState('');
const sendMessage = async () => {
const chatCompletion = await openai.chat.completions.create({
model: 'gpt-4o', // یا gpt-3.5-turbo
messages: [{ role: 'user', content: input }],
});
setResponse(chatCompletion.choices[0]?.message?.content || 'پاسخی نبود');
};
return (
💬 چتبات باحال با GPT
setInput(e.target.value)}
placeholder="سؤالت رو بنویس"
style={{ width: '100%', padding: '0.5rem' }}
/>
پاسخ:
{response}
);
}
export default ChatBot;
تو کامپوننت بالا ما یک Chat Bot هوش مصنوعی به کمک OpenAI ساختیم، حالا برای اینکه نمایش داده بشه باید کامپوننت بالارو فراخوانی کنیم:
// App.js
import React from 'react';
import ChatBot from './ChatBot';
function App() {
return (
);
}
export default App;
انتخاب نوع مدل هوش مصنوعی OpenAI
بسته به نوع مدل هوش مصنوعی که میخوای، باید مقدار model رو تنظیم کنی. ( بعضیاشون رایگانن، برخی پولی، برخی سریعتر و .. )
پاسخ های استریمینگ
اگه میخوای پاسخ چت بات بجای اینکه یکجا و کامل برگرده، کم کم و خط به خط بیاد ( درست مثل وقتی که تو ChatGPT میبینی متن داره کم کم تایپ میشه ) باید مقدار stream رو تنظیم کنی :
const stream = await client.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: 'یه شعر باحال بگو!' }],
stream: true,
});
شخصی سازی بیشتر
بسته به نیاز پروژت، کلی شخصی سازی میتونی روی مدل هوش مصنوعی انجام بدی ( از Pagination گرفته تا فیچر آپلود فایل و Voice و .. )
داکیومنت کاملش رو میتونی از صفحه خود openai بخونی.
درباره احمد احمدنژاد
من یه برنامه نویس و توسعه دهنده وب هستم که عاشق دنیای صفر و یکم❤️
نوشتههای بیشتر از احمد احمدنژاد2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
آقا عاااالی بود دم شما گرم
قربانت سعید جان 🙂