5 دلیل برای استفاده از OpenAI Assistants API✅


نویسنده(های): طالب

در ابتدا منتشر شد به سمت هوش مصنوعی.

5 دلیل برای استفاده از OpenAI Assistants API✅

در این وبلاگ قصد داریم چند تفاوت کلیدی بین آنها را بررسی کنیم مدل های تکمیل چت (مانند موارد ارائه شده از طریق نقطه پایانی Chat Completions) و پیشرفته تر OpenAI Assistance API. نحوه مدیریت این دو رویکرد با پیام‌ها، تاریخچه مکالمه، اسناد بزرگ، وظایف کدگذاری، محدودیت‌های پنجره زمینه و موارد دیگر را بررسی خواهیم کرد. همچنین بررسی خواهیم کرد که چگونه Assistance API ابزارهای اضافی مانند مفسر کد، بازیابی اسناد و فراخوانی عملکرد را فراهم می کند که بر بسیاری از محدودیت های تکمیل چت غلبه می کند.

مشترک شدن در خبرنامه رایگان هوش مصنوعی من | محمد طالب | زیر پشته

من دوست دارم موضوعات پیچیده را با کلمات ساده تجزیه کنم

substack.com

اعتبار: analyticsindiamag.com

درک مدل های تکمیل چت

مدل های تکمیل چت، مانند GPT-4 یا GPT‑4o، معمولاً دنباله ای از پیام ها را به عنوان ورودی انتظار می رود. روند معمول ساده است:

  • شما لیستی از پیام ها را برای مدل ارسال می کنید.
  • مدل یک پاسخ تولید می کند.
  • شما پاسخ را به عنوان خروجی دریافت می کنید.

جریان نمونه از تکمیل چت

می پرسی: پایتخت ژاپن کجاست؟

  • مدل پاسخ می دهد: “پایتخت ژاپن توکیو است.”

سپس می‌پرسید: «درباره شهر به من بگویید.»

  • این مدل می‌گوید هیچ زمینه‌ای ندارد و نمی‌داند منظور شما کدام شهر است، زیرا ذاتاً تاریخچه پیام را در همان حالت مکالمه پیگیری نمی‌کند.

محدودیت های مدل های تکمیل چت

1. بدون سابقه پیام دائمی

یکی از اشکالات این است عدم وجود تاریخچه پیام. در تکمیل چت، مدل به طور خودکار پیام های قبلی را به خاطر نمی آورد. به عنوان مثال، اگر ابتدا بپرسید “پایتخت ژاپن چیست؟” و سپس به سادگی بگویید «چیزی در مورد شهر به من بگو»، مدل اغلب نمی تواند به نام شهر اشاره کند مگر اینکه دوباره آن را به صورت دستی ارائه دهید.

2. بدون رسیدگی مستقیم به اسناد

مدل های تکمیل چت نیز چنین نمی کنند به طور مستقیم از مدیریت اسناد بزرگ پشتیبانی می کند. اگر یک PDF 500 صفحه ای دارید و می خواهید چیزی مانند “شرکت من در سه ماهه اول 2023 چقدر حاشیه سود داشته است؟” پرس و جو کنید. شما به فرآیندی به نام نیاز دارید Retrieval-Augmented Generation (RAG). این شامل:

  • تبدیل سند به متن
  • آن را به قطعات کوچکتر تقسیم کنید.
  • تبدیل آن تکه ها به جاسازی.
  • ذخیره آنها در یک پایگاه داده برداری
  • بازیابی تکه های مربوطه در زمان پرس و جو، سپس انتقال آنها به عنوان زمینه به مدل.

مشترک شدن در خبرنامه رایگان هوش مصنوعی من | محمد طالب | زیر پشته

من دوست دارم موضوعات پیچیده را با کلمات ساده تجزیه کنم

substack.com

3. چالش ها با وظایف کدگذاری

موضوع دیگر رسیدگی است وظایف محاسباتی. اگر از تکمیل‌های چت بخواهید کاری مانند معکوس کردن یک رشته انجام دهند، مدل ممکن است یک پاسخ اشتباه یا ناقص ایجاد کند. به عنوان مثال:

# Example question to a Chat Completion model
reverse("Subscribetotalib")
# Hypothetical incorrect output
# "bilattoebircsubs"

همچنین ممکن است اطلاعات نادرست یا قدیمی در مورد تاریخ فعلی ارائه دهد، زیرا فاقد قابلیت‌های محاسباتی بلادرنگ است.

4. پنجره زمینه محدود

مدل های تکمیل چت دارای یک حداکثر محدودیت رمز ثابت. اگر از این حد تجاوز کنید، نمی توانید تمام اطلاعات لازم را در یک درخواست ارسال کنید. این محدودیت می تواند جریان مکالمات در مقیاس بزرگ یا کارهای سنگین زمینه را مختل کند.

5. پردازش همزمان

در نهایت، مدل های تکمیل چت همزمان هستند. هنگامی که سوالی را مطرح می کنید، باید منتظر یک پاسخ باشید. شما نمی توانید چندین درخواست را به صورت موازی ارسال کنید و سپس نتایج را بدون هماهنگی دقیق ترکیب کنید.

معرفی Assistance API

این OpenAI Assistance API چالش های فوق را با اجازه دادن به شما برای ساخت دستیارهای هوش مصنوعی با قابلیت های اضافی برطرف می کند. فراهم می کند:

  1. دستورالعمل ها – مشابه یک پیام سیستمی، اینها تعریف می کنند که دستیار شما قرار است چه کاری انجام دهد.
  2. موضوعات – همه پیام‌های قبلی در رشته‌ها ذخیره می‌شوند، بنابراین دستیار می‌تواند زمینه را در چندین نوبت نگه دارد.
  3. ابزار – شامل ویژگی هایی مانند مفسر کد، بازیابی اسناد، و فراخوانی تابع است.
  4. مدل ها — در حال حاضر از GPT-4 (پیش‌نمایش 1106) پشتیبانی می‌کند و در آینده از مدل‌های سفارشی تنظیم‌شده پشتیبانی می‌کند.

ابزارهای موجود در Assistance API

  • مترجم کد: وقتی یک کار محاسباتی درخواست می شود – مانند معکوس کردن یک رشته یا پیدا کردن تاریخ امروز – دستیار می تواند از a استفاده کند مفسر کد ابزاری برای اجرای کدهای پایتون سپس دستیار به جای اتکا به پیش‌بینی‌های نشانه، نتیجه صحیح را برمی‌گرداند.
  • بازیابی: با بازیابی، می توانید حداکثر 20 فایل (هر کدام تا 52 مگابایت و حداکثر 2 میلیون توکن در هر فایل) آپلود کنید. وقتی پرس و جو می کنید، دستیار می تواند مستقیماً به آن فایل ها ارجاع دهد و کار با اسناد بزرگ را بسیار ساده تر می کند.
  • فراخوانی تابع: می توانید تابعی را تعریف کنید که از شما درخواست کند پایگاه داده داخلی (برای کارهایی مانند بررسی ارقام فروش). دستیار درخواست می کند تا آن تابع را با آرگومان های مورد نیاز فراخوانی کند و سپس نتایج را به دستیار برگردانید. به این ترتیب، مدل می‌تواند از داده‌های به‌روزی استفاده کند که معمولاً نداشت.
  • مدیریت ویندوز با زمینه بزرگتر: این رشته ها در Assistance API به صورت پویا انتخاب کنید که کدام پیام‌ها به عنوان زمینه درج شود و به آن کمک می‌کند تا حجم بیشتری از مکالمه را مدیریت کند. این بدان معنی است که شما دیگر به شدت به یک پنجره زمینه کوچک وابسته نیستید.

5. اجرای مثال

در زیر نمونه ای از قطعه پایتون وجود دارد که نحوه ایجاد دستیار، تنظیم دستورالعمل ها، فعال کردن ابزارها و سپس اجرای پرس و جوها با استفاده از رشته ها را نشان می دهد. این کد گردش کار ناهمزمان و استفاده از ویژگی هایی مانند تفسیر کد را نشان می دهد.

# Step 1: Create the Assistant
from openai import OpenAI
client = OpenAI()

my_assistant = client.beta.assistants.create(
instructions="You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
name="Math Tutor",
tools=[{"type": "code_interpreter"}],
model="gpt-4-1106-preview",
)
print(my_assistant)

# Step 2: Create a Thread
thread = client.beta.threads.create()
print(f"Thread ID: {thread.id}")

'''
Response

{
"id": "thread_abc123",
"object": "thread",
"created_at": 1699012949,
"metadata": {},
"tool_resources": {}
}

'''

print(json.dumps(run.model_dump(), indent =4))

خروجی
# Step 3: Ask a Question
question_1 = "Reverse the string 'openaichatgpt'."
message_1 = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content=question_1
)
# Run the Query Asynchronously
run_1 = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id
)
# Check the run status
current_run = client.beta.threads.runs.retrieve(run_id=run_1.id)
print(f"Initial Run Status: {current_run.status}")
# Once completed, retrieve the messages
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(json.dumps(messages.model_dumps(), indent=4))

# Ask Another Question in the Same Thread
question_2 = "Make the previous input uppercase and tell me the length of the string."
message_2 = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content=question_2
)
# Run the second query
run_2 = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id
)
# Check the new run status
current_run_2 = client.beta.threads.runs.retrieve(run_id=run_2.id)
print(f"Second Run Status: {current_run_2.status}")
# Retrieve the new messages
messages_2 = client.beta.threads.messages.list(thread_id=thread.id)
for msg in messages_2:
print(msg.content)

در این مثال، می توانید ببینید که چگونه نخ زمینه ادامه دارد. وقتی از دستیار می خواهیم رشته را معکوس کند، از ابزار مفسر کد استفاده می کند. در مرحله بعد، ما یک نسخه بزرگ از آن را درخواست می کنیم قبلی ورودی و دریافت طول. دستیار سؤال قبلی ما را به دلیل پیام های رشته ذخیره شده به خاطر می آورد.

این OpenAI Assistance API مجموعه ای قوی از ویژگی ها را ارائه می دهد که فراتر از مدل های تکمیل چت معمولی است. تاریخچه پیام را ردیابی می کند، از بازیابی اسناد بزرگ پشتیبانی می کند، کد پایتون را برای محاسبات اجرا می کند، زمینه های بزرگتر را مدیریت می کند، و تابع فراخوانی برای ادغام های پیشرفته را فعال می کند. اگر به محاسبات بلادرنگ، پرسش و پاسخ مبتنی بر سند یا تعاملات پویاتر در برنامه‌های هوش مصنوعی خود نیاز دارید، Assistance API راه‌حل‌های قدرتمندی را ارائه می‌کند که محدودیت‌های اصلی تکمیل چت استاندارد را برطرف می‌کند.

با استفاده از دستورالعمل‌ها، رشته‌ها، ابزارها (مانند مفسر کد و بازیابی)، و فراخوانی تابع، می‌توانید دستیارهای هوش مصنوعی پیچیده‌ای ایجاد کنید که به‌طور یکپارچه همه چیز را از معکوس کردن رشته‌ها گرفته تا جستجو در پایگاه‌های داده داخلی انجام می‌دهند. این رویکرد جدید می تواند نحوه ساخت و استفاده از سیستم های مبتنی بر هوش مصنوعی را در سناریوهای دنیای واقعی تغییر دهد.

با تشکر از شما برای خواندن!

بیایید در لینکدین وصل شویم!

مشترک شدن در خبرنامه رایگان هوش مصنوعی من | محمد طالب | زیر پشته

من دوست دارم موضوعات پیچیده را با کلمات ساده تجزیه کنم

substack.com

ممکن است به خواندن علاقه مند باشید!

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/machine-learning/5-reasons-when-to-use-openai-assistants-api