![]() |
سایفر روبات (Cypher Robot)
سایفر روبات اولین روبات پاسخ گوی فارسی زبان است.
نکته ی جالب این است که سایفر دارای شخصیت می باشد، به عنوان مثال اگر طرف مقابل بد حرف بزند ناراحت می شود یا حتی ممکن است قهر کند، و از طرف دیگر ممکن است عاشق شود! سایفر فقط یک پاسخ گو نیست بلکه بعضی اوقات سوال می پرسد و با توجه به جوابی که می گیرد به اطلاعات خود می افزاید. نکته ی جالب دیگر اطلاعات کامل این روبات در زمینه ی فیلم و آهنگ و استعداد قابل توجهش در ریاضی است! سایفر می تواند نوع شخصیت طرف مقابل خود را تا حدودی از جواب هایش حدس بزند! شما می توانید با اضافه کردن آی دی "neol3ot" در یاهو! مسنجر با سایفر حرف بزنید، اگر دیدید سایفر اسم یا سنتان را حدس زد تعجب نکنید چون کاملا عادی است! در صورتی که سوال خاصی در باره ی نحوه ی عملکرد این روبات دارید می توانید همین جا آنرا مطرح کنید. |
salam Man Mohsen 20 Az Bandar Abbas. mikhastam Darbareye Barnameye Sazandeye in ROBOT Az Shoma Soal beporsam. q3wp@yahoo.com
|
دوست عزیز از اونجایی که زبان این فروم فارسی هست، فارسی تایپ کنید.
ورژن آخر این برنامه با زبان برنامه نویسی Java نوشته شده و از بانک اطلاعاتی mySql استفاده می کنه. برای وصل شدن به سرور مسنجر یاهو! هم از jYMSG استفاده شده. اگر اطلاعات دیگری لازم دارید بگید... |
سوال
سلام سياوش !
يه نيم ساعتي هست دارم با اين بات چت مي كنم ! عملكردش برام خيلي جالبه ! اما دو تا سوال دارم : 1. چه جوري تشخيص مي ده طرف مقابل داره چرت و پرت تايپ مي كنه ؟! 2. همه ي اينا يك سري دستور ها براي عوامل محيطي از پيش تعريف شده اس ! مثلا فرايند شناسايي و دريافت اسم و جنس طرف مقابل يا مثلا بعد 4 بار تكرار كردن يك حرف ديگه جواب نده و و و ... اينا رو چه جوري در قالب هوش مصنوعي طبقه بندي كردي ؟! |
نقل قول:
در مورد سوال اول: چرت و پرت تایپ کردن یا بهتره بگیم تصادفی تایپ کردن حروف توسط کاربر بر حسب یک سری کارهای آماری در آورده شده. حدود صد بار خودم و دوستام دستمون رو روی کیبورد گذاشتیم و الکی یک سری دکمه زدیم مثل "asdas" یا "dfgdfg"... بعد از روی اون ها یک سری پترن (Pattern) در آوردم که در صورتی که اون پترن ها به روبات داده شدن، روبات حدس بزنه که طرف مقابل منظور خاصی نداشته و فقط بصورت تصادفی دکمه زده. درباره ی سوال دوم: بستگی داره تعریف ما از هوش مصنوعی چی باشه... هر وقت روبات هر تصمیمی بگیره می تونیم بگیم از یک نوع هوش مصنوعی استفاده کرده. با این تعریف حتی یک if ساده هم یک نوع هوش مصنوعی حساب می شه ولی در سطح بسیار پایین. من برای ساخت این روبات از AIML الهام گرفتم و کمی اون رو تغییر دادم. می تونید با یک سرچ ساده توی Wikipedia ببینید که ساختار AIML به چه صورت هست. من اول اومدم و یه زبان ساده طراحی کردم و یک پارسر برای اون زبان درست کردم. یک بانک اطلاعاتی داریم که داخل اون بانک از این زبان استفاده شده. به عنوان مثال در بخش جواب می تونیم داشته باشیم: كد:
<random>Khoobi?<or>Chetori"?</random> تو این زبان متغیر تعریف شده. که اطلاعاتی که پرسیده می شه داخل متغیر ها ذخیره میشه و در انتهای Session یک سری از اطلاعات داخل بانک اطلاعاتی هم ذخیره میشند. همینطور شرط تعریف کردم. مثلا به کسی که با اون صمیمی تر هست بعضی اوقات جواب متفاوتی می ده یا به کسی که بی ادب هست نوع دیگه ای جواب میده. علاوه بر این ها موضوع تعریف شده. مثلا اگر کاربر در اول صحبتش بگه Na هیچ مفهومی برای روبات نداره اما اگر بعد از یک سوال روبات Na گفته بشه مفهوم داره. پس یک کلمه در موضوع های مختلف مفهوم های مختلف داره. همچنین یک تابع هر چند دقیقه در صورتی که طرف مقابل حرفی نزنه صدا زده میشه و سوال هایی که تعریف شده براش از شخص مقابل می پرسه. متاسفانه نوشتن کل ساختار این روبات در اینجا مقداری وقت می گیره، اگر در رابطه با بخش خاصی از اون سوال دارید خوشحال می شم بپرسید. |
سلام .
دقیقآ منم برای روباتم همچین چیزایی رو تعریف کرده بودم ! روبات من با برنامه ی رویا که توسط یک ایرانی نوشته شده بود اجرا می شد و اسکریپت و دیتابیسش رو با تلاش و جون کندن نوشته بودم ! روبات من هم بسیار معروف شده بود و حدود 3 هزار نفر ادد لیست داشت و مرتب بهش پی ام می دادن ! اما به خاطر اینکه رویا با پروتوکل 5.5 و 5.6 یاهو کار میکرد ( یاهو 2 آپریل 2008 این پروتوکل رو بست ) از کار افتاد ! البته قبلش یاهو ایمیل زده بود که میخواد ببنده ! ایمیل یاهو : نقل قول:
|
دوست خوب سلام...
متاسفانه من با رویا کار نکردم... ولی کلا یاهو چند نوع پروتوکل ارتباتی داره که معروف ترین اونها YMSG هست که الان تا جایی که میدونم آخرین ورژنش YMSG13 هست. یک نوع پروتوکل دیگه داشتیم به نام YCHT که یاهو دیگه اون رو ساپورت نمی کنه! و یک پروتوکل هم به نام YChat یا Chat2 داشتیم که در حال حاضر به جای اونا از یک مدل پروتوکل با استفاده از XML استفاده می شه (توی وب مسنجر یاهو!) اول باید ببینیم رویا از کدوم نوع پروتوکل استفاده می کرده. در هر صورت اگر زبان برنامه نویسی خاصی بلدید بگید شاید بتونم کمک کنم... |
1(ها)ضميمه
سلام
من تا حدی با دلفی و ویژوال بیسیک آشنایی دارم . برنامه ی رویا هم با دلفی نوشته شده . من یک اسکریپت ساده و دیتابیس خام رو همراه با برنامه ی رویا ضمیمه کردم . لطفآ یه نگاه بنداز . من با پروتوکل های یاهو آشنایی ندارم مشکلم اینه ! یه سوال دیگه , امکان تغییر پروتوکل بدون دستکاری برنامه وجود داره ؟ من به سورس برنامه هم میتونم دسترسی پیدا کنم . یعنی Unpack و Decompile کنم ! مرسی از کمکت ;) |
میشه این برنامه رو توی سایتت بزاریش اگه همراه با آموزش ابتدایی هم باشه ممنون میشیم. محسن از بندرعباس e.mail: q3wp@yahoo.com
|
1(ها)ضميمه
دی کمپایل کردن کار دوستمون چه از نظر اخلاقی چه از نظر قانونی کار درستی نیست...
اما از اونجایی که با ویژوال بیسیک آشنایی دارید فکر کنم این سورس کد بدرد شما بخوره. این کد رو من 2 سال پیش نوشتم و با پروتوکل YMSG ورژن 12 کار می کنه که خوشبختانه در حال حاضر توی بخش لاگین و فرستادن و دریافت پیام هیچ فرقی با جدید ترین نسخه ی پروتکل یاهو نداره! در واقع این سورس کد کار بخشی که رویا برای شما انجام می داد رو انجام می ده و برای داشتن یک روبات ساده کافیه به یک بانک اطلاعاتی اکسس وصل شید و با توجه به سوال جواب رو از داخل بانک اطلاعاتی بیرون بکشید. متاسفانه این کد خوب کامنت گذاری نشده، در صورتی که هر جایی سوال داشتید همینجا می تونید سوالتون رو بپرسید. پسورد فایل: كد:
www.artificial.ir |
با سلام و خسته نباشيد من با اشتياق كامل اين بحثها رو دنبال كردم
من از زبان برنامه نويسي سر رشته اي ندارم اما ياهو روبوت من با برنامه دلفي كار ميكرد كه من قصد ويرايشش رو داشتم كه از كار افتاد اما در حال حاظر دارم دوره java مي بينم سياوش جان من خيلي دوست دارم كه آموزش طراحي يك روبوت عين cyfer رو توسط شما ببينم تا بتوانم يك روبت مثل اون را بسازم يا اينكه سورس و برنامه نوشته شده ي يك روبوت را به من بدهيد و من خود بر روي اون كنكاش مي كنمو ياد ميگيرم ،چون ياد ندارم كه در زمينه اي آموزشي فرا گرفته باشم و همه از تلاش خودم بوده خوشحال ميشم به اين دوستت كه از چندين ماه پيش پيگير اين كار بوده از طريق سايت ،ميل و حالا اين انجمن كمك كني منتظر راهنماييت هستم با تشكر اشكان |
من برنامه jymsg test client v2 رو گرفتم جای آیدی و پس که معلومه جای کانکت چی باید نوشته شه. آیا همین برنامه برای ساخت روبوته یا نه این نیست. متشکر محسن از بندرعباس e.mail: q3wp@yahoo.com
|
دوست عزیز، برای کانکت شدن به یاهو توسط jYMSG می تونید از چند خط زیر استفاده کنید!
كد:
yahooSession = new Session(); كد:
public class YourSessionListener implements SessionListener { |
واقعآ ممنون سیاوش جان در حال نوشتن برنامه جدید واسه روبات هستم !
خیلی لطف کردی ! فقط یه چیز ....... من هر بار می خوام با برنامه VB که گذاشتی لوگین کنم ارور Invalid Login میده و یعنی پسورد اشتباه ولی پسورد کاملآ درسته ! مشکل از کجاست ؟ |
فایل YCrypt.dll که برای encode کردن پسوورد هست باید حتما توی پوشه ی فایل اجرایی شما باشه. یا اگر دارید توی VB کمپایل می کنید باید توی پوشه ی سورس کد قرار داشته باشه!...
|
باز هم ممنون !
فقط یه چیز ! واسه فروم هک تشکر هم بذار ! اینطوری با یه دکمه میشه تشکر کرد ! |
هک تشکر نصبه! باید توی این استایل بقل دکمه ها اضافه کنم...
|
نقل قول:
ID : Ashkan_yazdgroup |
باز هم سئوال ! ! !
سلام . تا حد زیادی پیشرفتم ........ موفق شدم پی ام های روبوت رو جدا کنم مثلآ به این پی ام این جواب و بده و یا با این پی ام Status رو عوض کن و به این آیدی جواب نده و ...... فقط چند تا مشکل با VB دارم ..... 1 ) اگه دقت کرده باشی برای مشخص کردن فونت خواص مثلآ از کد : نقل قول:
2 ) من قبلآ یه Pocket sniffer از سایت گرفته بودم ولی متآسفانه گم کردم اگه میشه دوباره بذار همینجا 3 ) چه طوری میشه برای VB مشخص کرد که پاکت مخصوصی رو بفرسته و اگه جواب مثلآ این (هرچی ) بود کار خاصی ( هرکاری که مشخص کنم ) انجام بده و اگه جواب یه چیز دیگه بود اون کار و ( یه کاره دیگه که اونم خودم مشخص کردم ) انجام بده ! |
2(ها)ضميمه
نقل قول:
نقل قول:
< كد:
font face=""Tahoma""> نقل قول:
نقل قول:
كد:
sckYahoo.sendPacket "Packet data" هر پکتی که از سرور یاهو به شما فرستاده بشه در ساب sckYahoo_DataArrival داخل متغیر buffer ریخته میشه. اگر از کد دیگه ای استفاده می کنید لطفا کد رو در ضمیمه قرار بدید تا بتونم کمک کنم... |
واقعآ ممنون بخاطر کمک هایی که می کنی ...........
بیشتر مشکلاتم حل شد ! اما هنوز نمی دونم چطوری به VB بگم که مسیج هایی که میاد رو با مسیج هایی که توی Table مسیج در دیتا بیس هست مقایسه کنه و اگه وجود داشت که از ردیف Answer , جواب پی ام رو ارسال کنه و اگه وجود نداشت یه پی ام مخصوص ارسال کنه و یه مشکل دیگه که نمیتونم یه کدی بنویسم که مثلآ اگه پی ام به صورت : كد:
/pm L9E3 salam نمونه ی این کد در دلفی و رویا به صورت : كد:
if Req = '/pm' then begin |
دوست عزیز لطف کنید ساختار Table مورد نظرتون رو بگید! چند ستون داره؟ اسم و جنس هر ستون چی هست؟
برای مشکل دومتون از این کد می تونید استفاده کنید: كد:
Dim arrPM() As String |
اسم جدول (Table) مورد نظر Message هست و دارای 2 ستون هست : Requst ( که مسیجی که دریافت می کنه باید با این مطابقت داشته باشه ) و Response ( همون جوابی که باید ارسال کنه ) که هر دو ستون از نوع Text هستن
|
تصحیح شد!... message بود، ببخشید من روی کامپیوتری که داشتم کار می کردم VB نصب نداشتم... ولی فکر کنم الآن باید کار کنه! دوباره به کد رجوع کنید...
|
بله ! کاملآ درست شد . مرسی
فقط مشکل اولی هنوز حل نشده . باز هم تشکر می کنم |
سورس کد روبات یاهو مسنجر
1(ها)ضميمه
این تقریبا سورس یک روبات یاهو! مسنجر هست.
می تونید بهش کلمه ی جدید یاد بدید، یا کلمه ی مورد نیاز رو پاک کنید. یک سویچ ساده مثل همین /pm هم توش هست. |
نقل قول:
اما بايد بگم يه خرده چون تخصصي حرف مي زنيد بنده متوجه نميشم كه چه بايد بكنم از آقا سياوش درخواست دارم در مورد فايلي (سورس کد jYMSG ) كه گذاشتيد براي مبتدي هاي علاقه مندي مثل من بيشتر توضيح دهيد و اينكه چجوري و توسط چه برنامه اي آن را اجرا كنم باز هم تشكر ميكنم منتظر راهنماييتون هستم يك سوال ديگر : آيا سايفر رو هم ميتوان مانند رويا از امكاناتي چونhelp/ بهره مند كرد ؟ |
سلام اشکان جان .
جواب سئوال دومت خیلی واضح ! بله به راحتی میشه اینکار و کرد ! هرکدوم از این دستوراتی که خودمون برای رویا میذاشتیم یک روش خواصی دازه ! مثلآ help چیز خاصی نداره و فقط یک پی ام معمولیه که معرفی میکنه دستورات رو ! |
سلام
خیلی خوبه من تاحالا در این زمینه کار نکردم اما خوشم اومد ازش فکر کنم این مثالها و این صحبتها خیلی با یه روبات سطح بالا مثل مثلاneol3ot فاصله داشته باشه ؟ درست می گم؟ بعدش اینکه من اون فایلی رو که به عنوان یه نمونه سورس گذاشته بودید رو گرفتم اما بزرگترین مشکلش VB6 بودنشه :( در هر صورت ممنون اگه سوالی داشتم که حتما دارم بازم میپرسم |
از اونجایی که به نظر من VB6 آسونترین زبان برنامه نویسی برای کسانی که تازه شروع به کار کردن بود این کد رو توی VB6 نوشتم. به راحتی می تونید اون رو تبدیل به VB .Net کنید، خود تبدیل کننده ی .Net این کار رو انجام میده.
در صورتی که با جاوا آشنایی دارید از jYMSG می تونید استفاده کنید، همچنین در صورتی که با C++ آشنایی دارید از پروژه ی Pidgin یا همون gaim قدیمی می تونید استفاده کنید که سورس اون در sf.net قابل دریافت هست. در جواب اشکان: استفاده از jYMSG برای افرادی که مبتدی هستند فکر نکنم زیاد درست باشه. چون این سورس کاملا Object Oriented هست و درکش برای افرادی که هنوز مثال های زیاد در این زمینه ندیدند کمی سخته. در جواب سوال دومتون: اگر از یک زبان برنامه نویسی مثل Java یا VB یا ... استفاده کنید روبات شما هر کاری می تونه بکنه تقریبا و هیچ محدودیتی ندارید (همون طور که دوستمون سروش گفتند). در کد VB که به عنوان مثال قرار دادم یک سویچ ساده مثل /pm هم تعریف شده تا ببینید به چه صورت می تونید این کار رو انجام بدید. کار با این سورس خیلی ساده هست، کافیه نرم افزار VB6 که در پکیج Visual Studio 6.0 هست رو نصب کنید و فایل prjYahoo رو باز کنید، و دکمه ی مثلث رو بزنید، بعد می تونید کلمات یا جملات جدید به روبات یاد بدید (بعد از هر بار کلمه Add کردن برای Update شدن لیست دکمه ی Refresh رو بزنید). همچنین در سورس کد قسمت GetPM می تونید سویچ های جدید مثل /learn و /help و ... رو به روباتتون اضافه کنید. در جواب c++m: ساختن یک روبات مثل neol3ot خیلی سخت نیست. یک روبات بسیار هوشمند تر از neol3ot می تونه بشه، البته neol3ot برای زمان خودش که 3-4 سال پیش هست روبات نسبتا خوبی بود. برای اینکه یک روبات مثل neol3ot داشته باشید باید یک سری فیلتر ها قبل از پردازش جملات به روبات اضافه کنید و به جای مقایسه کردن دقیق جمله ی کاربر روبات باید از هر جمله یک مفهوم رو دریافت کنه و با توجه به اون مفهوم جواب بده. |
بازم سلام
من اومدم اطلاعات کامل از محضرتون کسب کنم :) خوب ر هر زمینه اول باید وسایل مور نیاز را دونست !!! مگه نه ؟ خوب تا اونجایی که من فهمیدم 1- یه کامپیوتر همش انلاین 2- یه اتصال همیشه Alive 3- یه دیتا بیس (حالا نمیدونم با Access یا XML یا ... ؟) 4-استفاده از jYMSG یا gaim به عنوان توابع کتابخانه ای ؟؟؟ اگه چیز یگه ای هم لازمه بفرمایید!!! |
البته gaim اسم درستشه، و اسم جدیدش هم Pidgin هست. که خیلی از مسنجر ها رو از جمله یاهو! پشتیبانی می کنه. از libyahoo هم می تونید استفاده کنید که فقط یاهو رو پشتیبانی می کنه و در زبون C++ قابل استفاده هست.
Net::YMSG هم هست که به زبان Perl نوشته شده. به جز مواردی که گفتید یه بخش اصلی هم هست، که با توجه به بانک اطلاعاتیتون بهترین جواب رو انتخاب می کنه! راحت ترین راه این هست که توی یک ستون دنبال سوال بگرده و توی ستون دیگه جواب رو بکشه بیرون و برای کاربر بفرسته! (همون طوری که توی کد مثال عمل می کنه!) اما این روبات خیلی ابتدایی هست مهم اینه روبات شما بتونه مفهوم جمله ی شخص مقابل رو بفهمه. اون طوری که بالا گفته شد حتی روبات متوجه نمیشه Salam و Salaam و Salam! هر سه یک منظور رو دارن. این بخش به راحتی قابل حل هست. اما روبات باید بفهمه Salam azizam و Salam dooste khoob هم یکی هست! این بخش کمی سخت تر هست. روبات باید موضوع رو تشخیص بده... باز کمی سخت تر میشه! همینطور می شه تصمیم گیری رو پیشرفته تر کرد، که قصد ما در قرار دادن این تاپیک توی انجمن بحث در همین مورد که یکی از بخش های هوش مصنوعیه هست. |
اهان راست میگی
راستش منم دنبال همونم زدی صاف تو هدف!!! هوش مصنوعی من میخوام یه ربات بسازم که بتونه هرکاری بکنه پاسخ شما واسه حل این مسئله هوش ممصنوعیه من هوش مصنوعی در زمینه تشخیص متن رو یه چیزایی ازش میدونم اما در این زمینه که بخواهیم منظور طرف رو از یه جمله بفمیم رو نه و فکر میکنم خیلی خیلی مشکلتر از تشخیص متن باشه به هر جهت تحقیق میکنم اگه سوالی بود بازم ازتون میپرسم |
سلام .
پس از چند روزی کار روی روبات بالاخره یه چیز خوب از توش داره در میاد ! من بعد از خیلی فکر کردن فهمیدم که فیلتر ها باید به صورتی باشه که اگه روبات کلمه اول رو داشت و یا یه مثلآ کدی اضافه کنیم که اگه Salam توی اون بود بفهمه طرف داره سلام و احوال پرسی می کنه و باید بگیم که تکرار حرف تآثیری نداره ! سیاوش جان راستی راجب اون کد pm/ و ساختارش یکمی بیشتر توضیح بده ! میخوام بیشتر در مورد arrPM بدونم . مثلآ اگه بخوام learn/ واسه روبات بذارم تقریبآ باید از یه کد شبیه اون استفاده کنم با این تفاوت که بجای : نقل قول:
نقل قول:
راجب arrPM یکمی بیشتر توضیح بده اگه امکان داره |
نقل قول:
|
روبات یاهو مسنجر - ورژن 1.0.3
1(ها)ضميمه
این هم ورژن جدید (1.0.3) روبات یاهو مسنجر تحت VB.
توی این ورژن سعی شده کمی سورس تمیز تر باشه و Comment برای اکثر قسمت ها گذاشته شده. سویچ /learn هم به عنوان یک مثال سویچ که کمی پیچیده تر هست اضافه شده. ساختار این سویچ به این صورت هست: كد:
در صورتی که در مورد طریقه ی پارس کردن این سویچ سوال داشتید همینجا می تونید بپرسید. پسورد فایل Zip: كد:
www.artificial.ir |
سلام
سیاوش جان اگه ممکنه راجب کدهایی که واسه ذخیره کردن یه چیزی توی دیتابیس میشه یکمی توضیح بده. مثلآ می خوام با زدن : نقل قول:
مرسی |
خوب کافیه یک سویچ دیگه توی بخش GetPM اضافه کنی که دقیقا شبیه /learn خواهد بود (که به عنوان مثال گذاشتم).
اما توی اون به جای صدا زدن AddWord یک تابع دیگرو صدا می زنید. تابع AddWord داخل فایل modFunctions قرار داره. می تونید تابع جدیدی مثل AddWord اضافه کنید یا خود AddWord رو که کارش ذخیره کردن Request و Response داخل بانک اطلاعاتی هست تغییر بدید. |
سلام سیاوش جان واقعا عالی بود فقط من تو قسمت های Make add user packet و Make packet for getting invisible مشکل دارم وقتی میخوام کامپایل کنم اررور میده!
|
مرسیییییییییییییییییییییی ییییییییییییییییییییی !
واقعآ ممنونم ! جبران می کنم ! |
زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۶:۳۷ بعد از ظهر ميباشد. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.