ویدیو آموزشی
لینک ویدیو: https://youtu.be/s1zQGRGv1Qw
مدت ویدیو: 12:20
دسته بندی: Excel
مدرس: پویا حیاتی
آنچه در این ویدیو می بینید:
در این ویدیو یاد میگیرید چگونه اکسل را به ChatGPT متصل کنید و از API آن با ماکروهای VBA استفاده نمایید.
شامل گرفتن API Key از OpenAI، فعالسازی کتابخانهها و نمونه کدهای عملی VBA برای ارسال و دریافت پاسخ از ChatGPT.
فهرست مطالب و زمان بندی ویدیو
اگر میخواهید از قدرت ChatGPT داخل فایلهای اکسل استفاده کنید، این آموزش قدمبهقدم شما را برای اتصال اکسل به ChatGPT با API و نوشتن ماکروهای VBA راهنمایی میکند. در این مقاله و ویدیو میبینید چگونه API Key بگیرید، تنظیمات لازم را انجام دهید و با چند خط کد ساده درخواستهای هوشمند به مدلهای OpenAI ارسال کنید — مناسب برای اتوماسیون گزارشها، تولید متن و کمک در تحلیل داده.
آمادهسازی: دریافت API Key از OpenAI
برای شروع اتصال اکسل به ChatGPT ابتدا باید در سایت OpenAI حساب کاربری داشته باشید و یک API Key بسازید. به قسمت API در وبسایت OpenAI بروید، یک کلید جدید ایجاد کنید و آن را در جایی امن ذخیره کنید. این کلید به عنوان شناسه و مجوز درخواستهای شما عمل میکند، بنابراین از به اشتراکگذاری آن با دیگران خودداری کنید.
توجه کنید که استفاده از API معمولاً هزینه دارد و بسته به مدل انتخابی (مثل gpt-3.5-turbo یا gpt-4) و حجم درخواستها، صورتحساب ماهانه متفاوت خواهد بود. قبل از اجرا، ریت لیمیتها و قوانین هزینهای OpenAI را بررسی کنید.
فعالسازی Microsoft XML & Scripting Runtime در اکسل
برای ارسال درخواست HTTP از VBA معمولاً از کتابخانه MSXML استفاده میکنیم و برای کار با فایلها و رشتهها ممکن است Scripting Runtime مفید باشد. برای فعالسازی این کتابخانهها در محیط VBA اکسل: از منوی Developer وارد Visual Basic شوید، سپس به Tools > References بروید و تیک “Microsoft XML, v6.0” (یا نسخه موجود) و “Microsoft Scripting Runtime” را بزنید.
اگر نمیخواهید به References وابسته باشید، میتوانید بهصورت داینامیک از CreateObject استفاده کنید، اما فعالسازی References دسترسی به IntelliSense و خطایابی بهتر را فراهم میکند.
اتصال اکسل به ChatGPT: نوشتن کدهای VBA برای OpenAI API
اصل اتصال از طریق ارسال یک درخواست POST به نقطه پایانی (endpoint) OpenAI انجام میشود. در سطح پایه باید هدرهای Content-Type و Authorization را تنظیم کنید و بدنه درخواست را بهصورت JSON ارسال کنید. در اینجا یک نمونه ساختار کلی درخواست را میبینید:
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
Dim url As String: url = "https://api.openai.com/v1/chat/completions"
http.Open "POST", url, False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Bearer YOUR_API_KEY"
Dim body As String
body = "{"model":"gpt-3.5-turbo", "messages":[{"role":"user","content":"سلام از اکسل"}]}"
http.send body
Dim resp As String: resp = http.responseText
در مثال بالا باید YOUR_API_KEY را با کلید خود جایگزین کنید. بدنه JSON برای مدلهای چت (chat completions) شامل آرایهای از پیامها است که به مدل میگوید چه نقشی دارد و چه متنی را پردازش کند.
نمونه ماکرو: ارسال پرسش و دریافت پاسخ از ChatGPT
در این بخش یک ماکروی ساده مینویسیم که متن را از یک سلول میخواند، به ChatGPT میفرستد و پاسخ را در سلول مجاور قرار میدهد. ایده پایه برای اتوماسیون پرسش و پاسخ داخل شیتها کاربردی و سریع است.
Sub AskChatGPT()
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
Dim url As String: url = "https://api.openai.com/v1/chat/completions"
Dim apiKey As String: apiKey = "YOUR_API_KEY"
Dim prompt As String: prompt = ThisWorkbook.Sheets(1).Range("A2").Value
Dim body As String
body = "{"model":"gpt-3.5-turbo", "messages":[{"role":"user","content":"" & Replace(prompt, """, "\"") & ""}]}"
http.Open "POST", url, False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Bearer " & apiKey
http.send body
Dim resp As String: resp = http.responseText
' در پاسخ JSON معمولاً متن مدل در بخش choices[0].message.content قرار دارد
ThisWorkbook.Sheets(1).Range("B2").Value = resp
End Sub
این نمونه پاسخ خام JSON را در سلول قرار میدهد. برای استخراج فقط متن پاسخ باید از پارسینگ JSON استفاده کنید (مثلاً با یک کتابخانه JSON برای VBA یا پردازش رشته ساده). اگر Reference به Scripting Runtime فعال باشد، میتوانید از Dictionary و روشهای دیگر برای سادگی استفاده کنید.
نکات کاربردی و بهترین روشها هنگام استفاده از اکسل با ChatGPT
1) امنیت API Key: کلید خود را در شیتهای عمومی یا فایلهای به اشتراک گذاشته ذخیره نکنید. بهتر است از متغیرهای محیطی یا فایل رمزنگاری شده استفاده کنید. 2) مدیریت هزینه: هر درخواست هزینه دارد؛ درخواستها را دستهبندی، خلاصه یا محدود کنید و از تولید پاسخهای بسیار طولانی جلوگیری کنید. 3) پیشپردازش ورودی: قبل از ارسال سؤالات، دادهها را پاکسازی و خلاصه کنید تا مصرف توکن کاهش یابد و پاسخها مرتبطتر شوند.
همچنین از مدل مناسب استفاده کنید — gpt-3.5-turbo برای بیشتر کاربردها مناسب و اقتصادی است؛ اما اگر نیاز به پاسخهای دقیقتر یا تخصصی دارید ممکن است مدلهای قویتر را مدنظر قرار دهید.
عیبیابی و رفع خطاهای رایج
اگر پاسخ دریافت نمیکنید یا خطا میبینید، ابتدا موارد زیر را بررسی کنید: آیا API Key صحیح است؟ آیا هدر Authorization به شکل “Bearer ” ارسال میشود؟ آیا Endpoint و آدرس URL درست است؟ خطاهای HTTP مانند 401 (Unauthorized) یا 429 (Too Many Requests) اغلب اطلاعات مفیدی درباره مشکل میدهند.
در صورتی که پاسخ JSON غیرقابلفهم است، آن را در یک ابزار JSON formatter قرار دهید تا بخشهای choices و message را ببینید. برای خطاهای مربوط به کتابخانهها در VBA، از فعالسازی References و استفاده از CreateObject برای تشخیص مشکل بهره ببرید.
خلاصه و جمعبندی: با دنبال کردن مراحل بالا میتوانید بهسرعت اتصال اکسل به ChatGPT را برقرار کنید، ماکروهایی بسازید که سوالات را ارسال کنند و پاسخها را در شیت ذخیره نمایند. حتماً مسائل امنیتی و هزینهها را در نظر بگیرید و از تست گامبهگام برای اطمینان از عملکرد صحیح استفاده کنید. برای مشاهده پیادهسازی کامل و توضیحات بیشتر، ویدیوی آموزش را تا انتها ببینید.
