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

ویژگی‌های کلیدی

  • بازیابی آنی اطلاعات: دسترسی به اطلاعات روزآمد، فراتر از داده‌های آموزشی مدل.
  • ارجاع به منابع (Citation): پاسخ‌ها به همراه لینک به منابع جهت بررسی صحت اطلاعات ارائه می‌شوند.
  • اجرای خودکار جستجو: مدل‌ها هوشمندانه و بر اساس نیاز پرسش، زمان لازم برای جستجو در وب را تشخیص می‌دهند.
  • رویکردهای متنوع جستجو: امکان انتخاب بین مدل‌هایی با قابلیت جستجوی داخلی یا مدل‌هایی که از طریق ابزارها (Tools) جستجو می‌کنند.
  • یکپارچه‌سازی آسان با API: استفاده از همان اندپوینت‌های آشنای API با کمترین تغییرات در پیکربندی.

مدل‌های موجود

این مدل‌ها قابلیت جستجوی وب را به صورت ذاتی در خود دارند:

  • OpenAI:
    • gpt-4o-search-preview: مدلی جامع با قابلیت‌های جستجوی یکپارچه.
    • gpt-4o-mini-search-preview: مدلی بهینه‌تر با قابلیت‌های جستجوی یکپارچه.

این مدل‌ها با استفاده از پیکربندی ابزارها قادر به انجام جستجو در وب هستند:

  • OpenAI:
    • gpt-4o: قابلیت جستجوی وب از طریق پارامتر tools.
    • gpt-4o-mini: قابلیت جستجوی وب از طریق پارامتر tools.
    • gpt-4.1: قابلیت جستجوی وب از طریق پارامتر tools.
    • gpt-4.1-mini: قابلیت جستجوی وب از طریق پارامتر tools.
  • Google:
    • gemini-2.0-flash: برای جستجو از پارامتر tools استفاده می‌کند.
    • gemini-2.5-pro-preview-05-06: برای جستجو از پارامتر tools استفاده می‌کند.
    • gemini-2.5-flash-preview-04-17: برای جستجو از پارامتر tools استفاده می‌کند.

نحوه استفاده مقدماتی

جستجوی داخلی با مدل‌های OpenAI

مدل‌های دارای قابلیت جستجوی داخلی، بدون نیاز به پیکربندی خاص، به طور خودکار در صورت لزوم جستجو در وب را انجام می‌دهند:

مثال Python

from openai import OpenAI

client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

response = client.chat.completions.create(
    model="gpt-4o-search-preview",
    messages=[{"role": "user", "content": "what's the news today?"}],
    response_format={"type": "text"},
    store=False,
)

# چاپ پاسخ
print(response.choices[0].message.content)

مثال Javascript

import { OpenAI } from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-4o-search-preview",
  messages: [
    {
      role: "user",
      content: "what's the news today?",
    },
  ],
  response_format: {
    type: "text",
  },
  store: false,
});

// چاپ پاسخ
console.log(response.choices[0].message.content);

مثال‌های بیشتر در زبان‌های PHP, Go, .Net در صفحه مستندات پلتفرم هوش مصنوعی AvalAI در دسترس است.

جستجو با مدل‌های Gemini

مدل‌های Gemini برای فعال‌سازی قابلیت جستجوی وب، از پارامتر tools استفاده می‌کنند:

مثال Python

from openai import OpenAI

client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

response = client.chat.completions.create(
    model="gemini-2.0-flash",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "whats the news?"},
    ],
    tools=[{"googleSearch": {}}],
)

# چاپ پاسخ
print(response.choices[0].message.content)

مثال Javascript

import { OpenAI } from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

const response = await client.chat.completions.create({
  model: "gemini-2.0-flash",
  messages: [
    { role: "system", content: "You are a helpful assistant." },
    { role: "user", content: "whats the news?" },
  ],
  tools: [{ googleSearch: {} }],
});

// چاپ پاسخ
console.log(response.choices[0].message.content);

کاربردهای رایج

جستجوی اخبار روز

مدل‌های مجهز به جستجوی وب، در ارائه آخرین اخبار و اطلاعات روز عملکرد بسیار خوبی دارند:

مثال Python

from openai import OpenAI

client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

response = client.chat.completions.create(
    model="gpt-4o-search-preview",
    messages=[{"role": "user", "content": "What are the major headlines today?"}],
)

# چاپ پاسخ
print(response.choices[0].message.content)

مثال Javascript

import { OpenAI } from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-4o-search-preview",
  messages: [{ role: "user", content: "What are the major headlines today?" }],
});

// چاپ پاسخ
console.log(response.choices[0].message.content);

پاسخ به پرسش‌های مبتنی بر واقعیت

این مدل‌ها قادرند به پرسش‌های واقعی، پاسخ‌هایی همراه با ارجاع به منابع ارائه دهند:

مثال Python

from openai import OpenAI

client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

response = client.chat.completions.create(
    model="gpt-4o-search-preview",
    messages=[
        {
            "role": "user",
            "content": "Who won the most recent Nobel Prize in Physics and what was their contribution?",
        }
    ],
)

# چاپ پاسخ
print(response.choices[0].message.content)

مثال Javascript

import { OpenAI } from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-4o-search-preview",
  messages: [
    {
      role: "user",
      content:
        "Who won the most recent Nobel Prize in Physics and what was their contribution?",
    },
  ],
});

// چاپ پاسخ
console.log(response.choices[0].message.content);

سفارشی‌سازی پارامترها

پارامترهای جستجو برای مدل‌های OpenAI

برای مدل‌های با قابلیت جستجوی داخلی، می‌توانید از پارامترهای استاندارد API استفاده کنید:

مثال Python

from openai import OpenAI

client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

response = client.chat.completions.create(
    model="gpt-4o-search-preview",
    messages=[
        {"role": "user", "content": "What happened in the financial markets today?"}
    ],
    temperature=0.2,  # دمای پایین‌تر برای پاسخ‌های واقعی‌تر
    response_format={"type": "text"},  # برای پاسخ‌های فقط متنی
)

# چاپ پاسخ
print(response.choices[0].message.content)

مثال Javascript

import { OpenAI } from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-4o-search-preview",
  messages: [
    { role: "user", content: "What happened in the financial markets today?" },
  ],
  temperature: 0.2, // دمای پایین‌تر برای پاسخ‌های واقعی‌تر
  response_format: { type: "text" }, // برای پاسخ‌های فقط متنی
});

// چاپ پاسخ
console.log(response.choices[0].message.content);

پارامترهای جستجو برای مدل‌های Gemini

برای مدل‌های Gemini، می‌توانید رفتار جستجو را از طریق پارامتر tools سفارشی‌سازی کنید:

مثال Python

from openai import OpenAI

client = OpenAI(api_key="your-avalai-api-key", base_url="https://api.avalai.ir/v1")

response = client.chat.completions.create(
    model="gemini-2.0-flash",
    messages=[
        {
            "role": "user",
            "content": "What are the latest developments in quantum computing?",
        }
    ],
    tools=[{"googleSearch": {"detail_level": "high"}}],
)

# چاپ پاسخ
print(response.choices[0].message.content)

مثال Javascript

import { OpenAI } from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

const response = await client.chat.completions.create({
  model: "gemini-2.0-flash",
  messages: [
    {
      role: "user",
      content: "What are the latest developments in quantum computing?",
    },
  ],
  tools: [
    {
      googleSearch: {
        detail_level: "high",
      },
    },
  ],
});

// چاپ پاسخ
console.log(response.choices[0].message.content);

ارجاع به منابع در نتایج جستجو

فرمت‌های ارجاع به منابع

مدل‌های OpenAI بسته به اندپوینتی که استفاده می‌کنید، ارجاعات را در فرمت‌های گوناگونی ارائه می‌دهند:

  1. Chat Completions API: ارجاعات به صورت درون‌خطی (inline) در متن، معمولاً به شکل هایپرلینک یا پانویس، نمایش داده می‌شوند.
  2. Responses API: ارجاعات در یک ساختار مشخص و با استفاده از حاشیه‌نویسی‌های (annotations) URL ارائه می‌گردند.

نمونه‌ای از یک ارجاع ساختاریافته در Responses API:

import { OpenAI } from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

const response = await client.chat.completions.create({
  model: "gemini-2.0-flash",
  messages: [
    {
      role: "user",
      content: "What are the latest developments in quantum computing?",
    },
  ],
  tools: [
    {
      googleSearch: {
        detail_level: "high",
      },
    },
  ],
});

// چاپ پاسخ
console.log(response.choices[0].message.content);

نحوه پردازش ارجاعات

برای پردازش و استخراج ارجاعات در برنامه خود:

مثال Python

# برای API پاسخ‌ها
response = client.responses.create(
 model="gpt-4.1",
 tools=[{"type": "web_search_preview"}],
 input="What was a positive news story from today?"
)

# استخراج استنادات
content = response.output_text
annotations = response.annotations

for annotation in annotations:
 if annotation.type == "url_citation":
 url = annotation.url
 title = annotation.title
 start = annotation.start_index
 end = annotation.end_index
 
 # پردازش استناد بر اساس نیاز
 print(f"Citation: {title} - {url}")

مثال Javascript

// برای API پاسخ‌ها
const response = await client.responses.create({
  model: "gpt-4.1",
  tools: [{ type: "web_search_preview" }],
  input: "What was a positive news story from today?",
});

// استخراج استنادات
const content = response.output_text;
const annotations = response.annotations;

for (const annotation of annotations) {
  if (annotation.type === "url_citation") {
    const url = annotation.url;
    const title = annotation.title;
    const start = annotation.start_index;
    const end = annotation.end_index;

    // پردازش استناد بر اساس نیاز
    console.log(`Citation: ${title} - ${url}`);
  }
}

نکات و بهترین شیوه‌ها

  1. پرسش‌های دقیق مطرح کنید: به روشنی مشخص کنید که دقیقاً به دنبال چه اطلاعاتی هستید.
  2. صراحتاً درخواست منابع کنید: برای دریافت ارجاعات قابل اعتمادتر، عبارتی مانند «لطفاً منابع را ذکر کن» را در پرامپت خود بیاورید.
  3. از temperature پایین استفاده کنید: برای دریافت پاسخ‌های واقعی‌تر و کمتر خلاقانه، مقدار temperature را بین 0.1 تا 0.3 تنظیم کنید.
  4. در صورت نیاز، به تاریخ اشاره کنید: عباراتی مانند «تا به امروز» یا «آخرین اطلاعات موجود» را در پرسش خود بگنجانید.
  5. اطلاعات حیاتی را مجدداً بررسی کنید: صحت اطلاعات بسیار مهم را با مراجعه به چندین منبع تأیید کنید.
  6. ترکیب دانش مدل و نتایج جستجو: از توانایی‌های مدل در کنار قابلیت جستجو به صورت ترکیبی بهره ببرید.

قیمت‌گذاری

هزینه استفاده از قابلیت جستجوی وب به مدل انتخابی و همچنین «اندازه زمینه جستجو» (Search Context Size) بستگی دارد:

مدلاندازه زمینه جستجوهزینه
gpt-4.1، gpt-4o یا gpt-4o-search-previewکم30.00$ برای هر 1000 فراخوانی
gpt-4.1، gpt-4o یا gpt-4o-search-previewمتوسط (پیش‌فرض)35.00$ برای هر 1000 فراخوانی
gpt-4.1، gpt-4o یا gpt-4o-search-previewزیاد50.00$ برای هر 1000 فراخوانی
gpt-4.1-mini، gpt-4o-mini یا gpt-4o-mini-search-previewکم25.00$ برای هر 1000 فراخوانی
gpt-4.1-mini، gpt-4o-mini یا gpt-4o-mini-search-previewمتوسط (پیش‌فرض)27.50$ برای هر 1000 فراخوانی
gpt-4.1-mini، gpt-4o-mini یا gpt-4o-mini-search-previewزیاد30.00$ برای هر 1000 فراخوانی
gemini-2.0-flash و سایر مدل‌های Geminiهمه سطوحمشابه قیمت‌گذاری OpenAI

عیب‌یابی

مشکلات متداول

  1. عدم انجام جستجو در مواقع مورد انتظار:
    • اطمینان حاصل کنید که پرسش شما نیازمند اطلاعاتی فراتر از دانش داخلی مدل است.
    • سعی کنید نیاز به اطلاعات به‌روز را صریح‌تر در پرامپت خود بیان کنید.
    • بررسی کنید که از مدل و پیکربندی صحیحی استفاده می‌کنید.
  2. ارجاعات ناقص یا ناموجود:
    • درخواست ذکر منابع را به طور واضح در پرامپت خود مطرح کنید.
    • برای دریافت متادیتای ساختاریافته ارجاعات، از Responses API استفاده کنید.
    • استفاده از تنظیمات بالاتر برای «اندازه زمینه جستجو» را مد نظر قرار دهید.
  3. نتایج جستجوی متناقض:
    • نتایج جستجو ممکن است بسته به زمان، موقعیت جغرافیایی و رفتار موتور جستجو متغیر باشند.
    • برای دستیابی به نتایج یکسان در طول آزمایش، می‌توانید پاسخ‌های جستجو را شبیه‌سازی (mock) کنید.
  4. برخورد با محدودیت نرخ (Rate Limiting):
    • فراخوانی‌های مربوط به جستجوی وب ممکن است دارای محدودیت نرخ متفاوتی نسبت به سایر فراخوانی‌های API باشند.
    • برای برنامه‌هایی با حجم درخواست بالا، استراتژی‌های مناسبی برای تلاش مجدد با تأخیر (backoff) پیاده‌سازی کنید.
  5. هزینه‌های بالا:
    • «اندازه زمینه جستجو» را متناسب با نیاز خود انتخاب کنید.
    • نتایج جستجوهای پرتکرار را کش (cache) کنید.
    • برای پرسش‌های ساده‌تر، از مدل‌های کوچک‌تر (mini) استفاده نمایید.

محدودیت‌ها

  • ممکن است نتایج جستجو همیشه کاملاً با پرسش مرتبط نباشند.
  • ارجاعات گاهی اوقات ممکن است ناقص یا نادرست باشند.
  • مدل‌ها ممکن است دانش داخلی خود را با نتایج جستجو ترکیب کنند.
  • قابلیت‌های جستجو عمدتاً برای پرسش‌های به زبان انگلیسی بهینه‌سازی شده‌اند.
  • کیفیت نتایج به در دسترس بودن و عملکرد موتور جستجو وابسته است.
  • تمام اطلاعات موجود در وب از طریق این قابلیت قابل دسترسی نیستند.

جمع‌بندی

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

برگرفته از صفحه مستندات پلتفرم هوش مصنوعی AvalAI