اگه مقالهی «ساخت ربات بله» یا «ساخت ربات روبیکا» رو دنبال کردید، الان یک ربات دارید که به پیامها جواب میده — ولی جوابهاش از پیش نوشته شدهن. قدم بعدی طبیعی اینه: وصلکردن ربات به یک هوش مصنوعی واقعی تا هر سوالی رو، حتی سوالاتی که پیشبینی نکرده بودید، جواب بده. توی این راهنما این کار رو با DeepSeek انجام میدیم — به یک دلیل خیلی مشخص که پایین توضیح میدم.
فهرست مطالب
- چرا DeepSeek، نه ChatGPT یا Gemini؟
- دو مسیر: نصب محلی یا API ابری
- پیشنیازها
- مرحله ۱: نصب Ollama و دانلود مدل DeepSeek
- مرحله ۲: تست مستقل مدل
- مرحله ۳: اتصال به ربات بله
- مرحله ۴: دادن شخصیت به ربات با System Prompt
- جایگزین: استفاده از API ابری DeepSeek
- جدول مقایسه: محلی در برابر ابری
- اشتباهات رایج
- سوالات متداول
چرا DeepSeek، نه ChatGPT یا Gemini؟
واقعیت سادهایه که خیلی از آموزشهای فارسی حوزهی هوش مصنوعی ازش رد میشن: اتصال مستقیم به API رسمی OpenAI یا Google برای بسیاری از کاربران ایرانی همیشه ساده نیست. DeepSeek، استارتاپ چینی توسعهدهندهی این مدل، کاربران ایرانی را محدود نکرده و هم بهصورت آنلاین، هم با نصب کاملاً محلی روی سرور خودتون قابل استفادهست — یعنی هیچ وابستگیای به دسترسی بینالمللی نداره. از این گذشته، عملکردش در تولید محتوای فنی و کدنویسی هم قابلمقایسه با گزینههای معروفتره.
دو مسیر: نصب محلی یا API ابری
دو راه برای استفاده از DeepSeek در رباتتون دارید:
- نصب محلی با Ollama: مدل کاملاً روی سرور خودتون اجرا میشه — رایگان، خصوصی، بدون نیاز به پرداخت یا کارت اعتباری بینالمللی.
- API ابری DeepSeek: سریعتر برای راهاندازی و نیازی به سختافزار قوی نداره، اما نیاز به شارژ حساب و کلید API داره.
توی این راهنما اول مسیر محلی رو کامل یاد میگیریم (چون برای اکثر پروژههای کوچک و متوسط، بهترین نقطهی شروعه)، و در انتها مسیر ابری رو هم بهعنوان جایگزین میبینیم.
پیشنیازها
- یک سرور یا سیستم لینوکسی (حداقل ۸ گیگ رم برای مدلهای کوچکتر پیشنهاد میشه)
- ربات بله یا روبیکای از قبل ساختهشده (اگه ندارید: آموزش ساخت ربات بله یا آموزش ساخت ربات روبیکا)
- آشنایی پایه با پایتون
مرحله ۱: نصب Ollama و دانلود مدل DeepSeek
Ollama ابزاریه که اجرای مدلهای هوش مصنوعی روی سرور شخصی رو خیلی ساده میکنه. نصبش با یک خط دستور انجام میشه:
curl -fsSL https://ollama.ai/install.sh | shبعد از نصب، مدل DeepSeek رو دانلود کنید. نسخهی ۷ میلیارد پارامتری (7b) برای شروع و سرورهای معمولی مناسبه:
ollama pull deepseek-r1:7bاگه سرورتون منابع محدودی داره، نسخهی سبکتر 1.5b رو امتحان کنید؛ اگه سرور قویتری دارید، میتونید نسخههای بزرگتر (14b, 32b) رو هم امتحان کنید.
مرحله ۲: تست مستقل مدل
قبل از وصلکردن به ربات، مطمئن بشید مدل درست کار میکنه:
ollama run deepseek-r1:7bیک پنجرهی گفتوگوی متنی باز میشه؛ چند سوال بپرسید و پاسخها رو ببینید. Ollama بهصورت خودکار یک سرور محلی روی پورت 11434 هم بالا میآره که در مرحلهی بعد ازش استفاده میکنیم.
مرحله ۳: اتصال به ربات بله
حالا همون ساختار ربات بلهای که قبلاً ساختیم رو با یک تابع هوش مصنوعی ترکیب میکنیم:
import requests
import time
BALE_TOKEN = "YOUR_BALE_TOKEN"
BALE_URL = f"https://tapi.bale.ai/bot{BALE_TOKEN}"
def get_updates(offset=None):
params = {}
if offset:
params["offset"] = offset
return requests.get(f"{BALE_URL}/getUpdates", params=params).json()
def send_message(chat_id, text):
requests.post(f"{BALE_URL}/sendMessage", data={"chat_id": chat_id, "text": text})
def ask_deepseek(prompt):
response = requests.post("http://localhost:11434/api/chat", json={
"model": "deepseek-r1:7b",
"messages": [{"role": "user", "content": prompt}],
"stream": False
})
return response.json()["message"]["content"]
def main():
offset = None
print("ربات هوشمند در حال اجراست...")
while True:
updates = get_updates(offset)
if updates.get("ok"):
for update in updates["result"]:
offset = update["update_id"] + 1
message = update.get("message")
if message and "text" in message:
chat_id = message["chat"]["id"]
user_text = message["text"]
ai_reply = ask_deepseek(user_text)
send_message(chat_id, ai_reply)
time.sleep(2)
if __name__ == "__main__":
main()همین! حالا هر پیامی که کاربر بفرسته، مستقیم به DeepSeek میره و پاسخش برمیگرده به همون چت بله. دقیقاً همین الگو (فقط با تعویض تابع ارسال پیام) روی ربات روبیکا هم کار میکنه.
مرحله ۴: دادن شخصیت به ربات با System Prompt
بدون راهنمایی، مدل ممکنه خیلی رسمی، خیلی طولانی، یا خارج از موضوع کسبوکارتون جواب بده. با اضافهکردن یک پیام «system»، لحن و محدودهی پاسخها رو کنترل کنید:
def ask_deepseek(prompt):
response = requests.post("http://localhost:11434/api/chat", json={
"model": "deepseek-r1:7b",
"messages": [
{
"role": "system",
"content": "شما دستیار فروشگاه اینترنتی سورس360 هستید. مختصر، دوستانه و به فارسی پاسخ بده. اگه سوال مربوط به سفارش یا پرداخت بود، کاربر رو به پشتیبانی انسانی ارجاع بده."
},
{"role": "user", "content": prompt}
],
"stream": False
})
return response.json()["message"]["content"]نکتهی مهم برای پروژهی واقعی: کد بالا هیچ حافظهای از پیامهای قبلی نداره — هر پیام جدا پردازش میشه. برای گفتوگوی چندمرحلهای، باید تاریخچهی پیامهای هر chat_id رو (مثلاً در یک دیکشنری یا دیتابیس) نگه دارید و هر بار کامل به لیست messages اضافه کنید.
جایگزین: استفاده از API ابری DeepSeek
اگه سرورتون قدرت کافی برای اجرای محلی نداره، میتونید از API رسمی DeepSeek استفاده کنید. ساختار کد تقریباً یکسانه، فقط آدرس و هدر تغییر میکنه:
DEEPSEEK_API_KEY = "YOUR_API_KEY"
def ask_deepseek_cloud(prompt):
response = requests.post(
"https://api.deepseek.com/chat/completions",
headers={"Authorization": f"Bearer {DEEPSEEK_API_KEY}"},
json={
"model": "deepseek-chat",
"messages": [{"role": "user", "content": prompt}]
}
)
return response.json()["choices"][0]["message"]["content"]توجه: خود چتبات آنلاین DeepSeek رایگان و بدون تحریمه، اما استفاده از API نیاز به ساخت حساب و شارژ اعتبار داره — پس اگه دنبال گزینهی کاملاً بدون پرداخت هستید، همون مسیر محلی (Ollama) رو انتخاب کنید.
جدول مقایسه: محلی در برابر ابری
| معیار | نصب محلی (Ollama) | API ابری |
|---|---|---|
| هزینه | رایگان | پرداختی (بر اساس مصرف) |
| نیاز به سختافزار | بالا | ندارد |
| حریم خصوصی داده | کامل (روی سرور خودتون) | وابسته به سرویسدهنده |
| سرعت پاسخ | به سختافزار بستگی داره | معمولاً پایدارتر |
اشتباهات رایج
- انتخاب مدل خیلی بزرگ برای سرور ضعیف: اگه سرورتون رم کافی نداره، با مدلهای سبکتر (1.5b یا 7b) شروع کنید.
- فراموشکردن System Prompt: بدون راهنمایی، ربات ممکنه خارج از حوزهی کسبوکارتون جواب بده.
- انتظار حافظهی خودکار گفتوگو: همونطور که دیدیم، باید تاریخچه رو خودتون مدیریت کنید.
- عدم محدودسازی طول پاسخ: بدون کنترل، پاسخهای طولانی ممکنه با محدودیت طول پیام پلتفرم (مثلاً بله) تداخل پیدا کنه.
سوالات متداول
آیا واقعاً DeepSeek برای کاربران ایرانی محدودیتی نداره؟
بر اساس اطلاعات منتشرشده، DeepSeek کاربران ایرانی رو در دسترسی به نسخهی آنلاین محدود نکرده. نصب محلی با Ollama هم کاملاً مستقل از هر سرویس بیرونیه.
آیا این روش روی ربات روبیکا هم کار میکنه؟
بله، فقط کافیه توابع get_updates و send_message رو با معادل روبیکاییشون (که در آموزش ساخت ربات روبیکا دیدیم) جایگزین کنید؛ تابع ask_deepseek بدون تغییر میمونه.
چه سختافزاری برای اجرای محلی لازمه؟
برای مدلهای کوچک (1.5b تا 7b)، یک سرور معمولی با ۸ تا ۱۶ گیگ رم کافیه. برای مدلهای بزرگتر، GPU اختصاصی توصیه میشه.
اگه نمیخوام خودم سرور و مدل رو مدیریت کنم چیکار کنم؟
تیم ما میتونه هم راهاندازی ربات هوشمند و هم میزبانی مدل رو براتون انجام بده — کافیه با ما تماس بگیرید.
جمعبندی
حالا میدونید چطور یک ربات ساده رو به یک دستیار هوشمند واقعی تبدیل کنید — رایگان، خصوصی و بدون نگرانی از دسترسی. اگه برای راهاندازی سرور، انتخاب مدل مناسب یا طراحی شخصیت اختصاصی ربات به کمک نیاز دارید، تیم ما آمادهی همراهیه.
نظرات کاربران
فقط نظرات تاییدشده مدیر نمایش داده میشود.