یہ سروس Model Context Protocol (MCP) کے ذریعے بنیادی کیلکولیٹر آپریشنز فراہم کرتی ہے، جو Spring Boot کے WebFlux ٹرانسپورٹ کے ساتھ کام کرتی ہے۔ یہ نئے سیکھنے والوں کے لیے MCP کی امپلیمنٹیشنز کا ایک آسان مثال کے طور پر ڈیزائن کی گئی ہے۔
مزید معلومات کے لیے، MCP Server Boot Starter کی ریفرنس ڈاکیومنٹیشن دیکھیں۔
یہ سروس درج ذیل خصوصیات پیش کرتی ہے:
- SSE (Server-Sent Events) کی سپورٹ
- Spring AI کے
@Toolاینوٹیشن کے ذریعے خودکار ٹول رجسٹریشن - بنیادی کیلکولیٹر فنکشنز:
- جمع، تفریق، ضرب، تقسیم
- طاقت کا حساب اور مربع جذر
- ماڈیولس (باقی) اور مطلق قیمت
- آپریشنز کی وضاحت کے لیے ہیلپ فنکشن
یہ کیلکولیٹر سروس درج ذیل صلاحیتیں فراہم کرتی ہے:
-
بنیادی حسابی عملیات:
- دو نمبروں کا جمع کرنا
- ایک نمبر سے دوسرے نمبر کو منفی کرنا
- دو نمبروں کا ضرب دینا
- ایک نمبر کو دوسرے نمبر سے تقسیم کرنا (زیرو سے تقسیم کی جانچ کے ساتھ)
-
ترقی یافتہ عملیات:
- طاقت کا حساب (بیس کو ایکسپونینٹ پر اٹھانا)
- مربع جذر کا حساب (منفی نمبر کی جانچ کے ساتھ)
- ماڈیولس (باقی) کا حساب
- مطلق قیمت کا حساب
-
ہیلپ سسٹم:
- بلٹ ان ہیلپ فنکشن جو تمام دستیاب آپریشنز کی وضاحت کرتا ہے
یہ سروس MCP پروٹوکول کے ذریعے درج ذیل API اینڈپوائنٹس فراہم کرتی ہے:
add(a, b): دو نمبروں کو جمع کریںsubtract(a, b): دوسرے نمبر کو پہلے نمبر سے منفی کریںmultiply(a, b): دو نمبروں کا ضرب دیںdivide(a, b): پہلے نمبر کو دوسرے نمبر سے تقسیم کریں (زیرو کی جانچ کے ساتھ)power(base, exponent): نمبر کی طاقت کا حساب کریںsquareRoot(number): مربع جذر کا حساب کریں (منفی نمبر کی جانچ کے ساتھ)modulus(a, b): تقسیم کے بعد باقی کا حساب کریںabsolute(number): مطلق قیمت کا حساب کریںhelp(): دستیاب آپریشنز کی معلومات حاصل کریں
ایک سادہ ٹیسٹ کلائنٹ com.microsoft.mcp.sample.client پیکیج میں شامل ہے۔ SampleCalculatorClient کلاس کیلکولیٹر سروس کے دستیاب آپریشنز کی مثال پیش کرتی ہے۔
پروجیکٹ میں com.microsoft.mcp.sample.client.LangChain4jClient میں LangChain4j کی مثال کلائنٹ شامل ہے جو دکھاتی ہے کہ کیلکولیٹر سروس کو LangChain4j اور GitHub ماڈلز کے ساتھ کیسے انٹیگریٹ کیا جائے:
-
GitHub ٹوکن سیٹ اپ:
GitHub کے AI ماڈلز (جیسے phi-4) استعمال کرنے کے لیے آپ کو GitHub پرسنل ایکسس ٹوکن کی ضرورت ہے:
a. اپنے GitHub اکاؤنٹ کی سیٹنگز پر جائیں: https://github.com/settings/tokens
b. "Generate new token" → "Generate new token (classic)" پر کلک کریں
c. اپنے ٹوکن کو ایک وضاحتی نام دیں
d. درج ذیل اسکوپس منتخب کریں:
repo(پرائیویٹ ریپوزٹریز کا مکمل کنٹرول)read:org(آرگنائزیشن اور ٹیم ممبرشپ پڑھنا، آرگ پروجیکٹس پڑھنا)gist(گسٹ بنانے کی اجازت)user:email(یوزر ای میل ایڈریسز تک رسائی (صرف پڑھنے کے لیے))
e. "Generate token" پر کلک کریں اور نیا ٹوکن کاپی کریں
f. اسے ایک انوائرمنٹ ویریبل کے طور پر سیٹ کریں:
ونڈوز پر:
set GITHUB_TOKEN=your-github-tokenمیک او ایس/لینکس پر:
export GITHUB_TOKEN=your-github-tokeng. مستقل سیٹ اپ کے لیے، اسے سسٹم سیٹنگز کے ذریعے اپنے انوائرمنٹ ویریبلز میں شامل کریں
-
LangChain4j GitHub ڈیپینڈنسی اپنے پروجیکٹ میں شامل کریں (pom.xml میں پہلے سے شامل ہے):
<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-github</artifactId> <version>${langchain4j.version}</version> </dependency>
-
یقینی بنائیں کہ کیلکولیٹر سرور
localhost:8080پر چل رہا ہے
یہ مثال دکھاتی ہے:
- SSE ٹرانسپورٹ کے ذریعے کیلکولیٹر MCP سرور سے کنکشن
- LangChain4j کا استعمال کرتے ہوئے ایک چیٹ بوٹ بنانا جو کیلکولیٹر آپریشنز کو استعمال کرتا ہے
- GitHub AI ماڈلز کے ساتھ انٹیگریشن (اب phi-4 ماڈل استعمال کر رہا ہے)
کلائنٹ درج ذیل نمونہ سوالات بھیجتا ہے تاکہ فنکشنلٹی دکھائی جا سکے:
- دو نمبروں کا مجموعہ نکالنا
- ایک نمبر کا مربع جذر معلوم کرنا
- دستیاب کیلکولیٹر آپریشنز کے بارے میں ہیلپ معلومات حاصل کرنا
مثال چلائیں اور کنسول آؤٹ پٹ چیک کریں کہ AI ماڈل کس طرح کیلکولیٹر ٹولز کو استعمال کر کے سوالات کے جواب دیتا ہے۔
LangChain4j کلائنٹ GitHub کے phi-4 ماڈل کے ساتھ درج ذیل سیٹنگز کے تحت کنفیگر کیا گیا ہے:
ChatLanguageModel model = GitHubChatModel.builder()
.apiKey(System.getenv("GITHUB_TOKEN"))
.timeout(Duration.ofSeconds(60))
.modelName("phi-4")
.logRequests(true)
.logResponses(true)
.build();مختلف GitHub ماڈلز استعمال کرنے کے لیے، modelName پیرامیٹر کو کسی دوسرے سپورٹڈ ماڈل (مثلاً "claude-3-haiku-20240307", "llama-3-70b-8192" وغیرہ) میں تبدیل کریں۔
پروجیکٹ کو درج ذیل اہم انحصارات کی ضرورت ہے:
<!-- For MCP Server -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
</dependency>
<!-- For LangChain4j integration -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mcp</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<!-- For GitHub models support -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-github</artifactId>
<version>${langchain4j.version}</version>
</dependency>Maven کا استعمال کرتے ہوئے پروجیکٹ بنائیں:
./mvnw clean install -DskipTestsjava -jar target/calculator-server-0.0.1-SNAPSHOT.jarMCP Inspector ایک مفید ٹول ہے جو MCP سروسز کے ساتھ انٹریکٹ کرنے کے لیے استعمال ہوتا ہے۔ اس کیلکولیٹر سروس کے ساتھ اسے استعمال کرنے کے لیے:
-
MCP Inspector انسٹال اور چلائیں ایک نئے ٹرمینل ونڈو میں:
npx @modelcontextprotocol/inspector
-
ویب UI تک رسائی حاصل کریں ایپ کی طرف سے دکھائی گئی URL پر کلک کر کے (عام طور پر http://localhost:6274)
-
کنکشن کنفیگر کریں:
- ٹرانسپورٹ ٹائپ "SSE" سیٹ کریں
- URL کو اپنے چلتے ہوئے سرور کے SSE اینڈپوائنٹ پر سیٹ کریں:
http://localhost:8080/sse - "Connect" پر کلک کریں
-
ٹولز استعمال کریں:
- "List Tools" پر کلک کر کے دستیاب کیلکولیٹر آپریشنز دیکھیں
- کسی ٹول کو منتخب کریں اور "Run Tool" پر کلک کر کے آپریشن چلائیں
پروجیکٹ میں کنٹینرائزڈ ڈپلائمنٹ کے لیے Dockerfile شامل ہے:
-
Docker امیج بنائیں:
docker build -t calculator-mcp-service . -
Docker کنٹینر چلائیں:
docker run -p 8080:8080 calculator-mcp-service
یہ کرے گا:
- Maven 3.9.9 اور Eclipse Temurin 24 JDK کے ساتھ ملٹی اسٹیج Docker امیج بنائے گا
- ایک بہتر کنٹینر امیج تیار کرے گا
- سروس کو پورٹ 8080 پر ایکسپوز کرے گا
- کنٹینر کے اندر MCP کیلکولیٹر سروس شروع کرے گا
جب کنٹینر چل رہا ہو تو آپ سروس کو http://localhost:8080 پر ایکسیس کر سکتے ہیں۔
-
ٹوکن کی اجازتوں کے مسائل: اگر آپ کو 403 Forbidden ایرر ملے تو چیک کریں کہ آپ کے ٹوکن میں ضروری اجازتیں موجود ہیں جیسا کہ ضروریات میں بتایا گیا ہے۔
-
ٹوکن نہ ملنے کا مسئلہ: اگر "No API key found" ایرر آئے تو یقینی بنائیں کہ GITHUB_TOKEN انوائرمنٹ ویریبل صحیح طریقے سے سیٹ ہے۔
-
ریٹ لمیٹنگ: GitHub API پر ریٹ لمٹس ہوتے ہیں۔ اگر آپ کو ریٹ لمٹ ایرر (status code 429) ملے تو چند منٹ انتظار کریں اور دوبارہ کوشش کریں۔
-
ٹوکن کی میعاد ختم ہونا: GitHub ٹوکن کی میعاد ختم ہو سکتی ہے۔ اگر کچھ وقت بعد آتھنٹیکیشن ایرر آئے تو نیا ٹوکن جنریٹ کریں اور انوائرمنٹ ویریبل اپڈیٹ کریں۔
اگر مزید مدد کی ضرورت ہو تو LangChain4j documentation یا GitHub API documentation دیکھیں۔
دستخطی نوٹ:
یہ دستاویز AI ترجمہ سروس Co-op Translator کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں ہی معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر عائد نہیں ہوتی۔
