اتصال اکسل به ChatGPT با API و ماکرو — راهنمای کامل

ویدیو آموزشی

link alt لینک ویدیو: https://youtu.be/s1zQGRGv1Qw
clock three مدت ویدیو: 12:20
category alt دسته بندی: Excel
person chalkboard مدرس: پویا حیاتی
subtitles آنچه در این ویدیو می بینید:

در این ویدیو یاد می‌گیرید چگونه اکسل را به ChatGPT متصل کنید و از API آن با ماکروهای VBA استفاده نمایید.
شامل گرفتن API Key از OpenAI، فعال‌سازی کتابخانه‌ها و نمونه کدهای عملی VBA برای ارسال و دریافت پاسخ از ChatGPT.

excel chatgpt

فهرست مطالب و زمان بندی ویدیو

0:00اتصال اکسل به API چت جی پی تی

1:30دریافت API Key از سایت OpenAI

3:46فعال‌سازی Microsoft XML & Scripting Runtime

4:47کدهای VBA برای اتصال به OpenAI API

7:30نحوه استفاده از اکسل با 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 را برقرار کنید، ماکروهایی بسازید که سوالات را ارسال کنند و پاسخ‌ها را در شیت ذخیره نمایند. حتماً مسائل امنیتی و هزینه‌ها را در نظر بگیرید و از تست گام‌به‌گام برای اطمینان از عملکرد صحیح استفاده کنید. برای مشاهده پیاده‌سازی کامل و توضیحات بیشتر، ویدیوی آموزش را تا انتها ببینید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *