481 পড়া
481 পড়া

কিভাবে LlamaIndex.TS ব্যবহার করতে MCP সার্ভার অর্কেস্ট্রেট করতে

দ্বারা Wassim Chegham4m2025/07/08
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

এই পোস্টে, আমরা একটি বাস্তব বিশ্বের টাইপস্ক্রিপ্ট অ্যাপ্লিকেশনে মডেল কন্টেক্ট প্রোটোকল (এমসিপি) সার্ভারগুলি কীভাবে আর্কাইস্ট করা যায় তা দেখাবো।
featured image - কিভাবে LlamaIndex.TS ব্যবহার করতে MCP সার্ভার অর্কেস্ট্রেট করতে
Wassim Chegham HackerNoon profile picture
0-item

এই পোস্টে, আমরা দেখাব কিভাবে মডেল কনটেক্ট প্রোটোকল (এমসিপি) সার্ভারগুলি পরিচালনা করা যায়অ্যাডমিনিস্ট্রেশন.এসএকটি বাস্তব বিশ্বের TypeScript অ্যাপ্লিকেশন. আমরা ব্যবহার করবAzure ভ্রমণ এজেন্টপ্রকল্পটি আমাদের ভিত্তি হিসাবে, নিরাপদ, স্কেলযোগ্য এবং রক্ষণাবেক্ষণযোগ্য অর্কেস্টারিংয়ের জন্য সেরা অনুশীলনগুলির উপর মনোযোগ দেয়।


যদি আপনি Azure AI ভ্রমণ এজেন্ট প্রকল্পের একটি পর্যালোচনা সম্পর্কে আগ্রহী হন তবে দয়া করে আমাদের ঘোষণা ব্লগটি পড়ুন!

বিজ্ঞপ্তি ব্লগ

কেন llamaindex.TS এবং MCP?

  • llamaindex.TS টাইপস্ক্রিপ্টে এলএলএম চালিত অ্যাপ্লিকেশনগুলি তৈরি করার জন্য একটি মডুলার, কম্পোজেবল ফ্রেমওয়ার্ক সরবরাহ করে।
  • এমসিপি সরঞ্জামগুলির সামঞ্জস্যপূর্ণতা এবং স্ট্রিমিংকে সক্ষম করে, যা এটি একাধিক এআই পরিষেবাগুলি সংগঠিত করার জন্য আদর্শ।

প্রকল্প গঠন

Llamaindex.TS অর্কেস্ট্রেটর বাস করেsrc/api/src/orchestrator/llamaindex, বিভিন্ন এলএলএম ব্যাকেন্ড এবং এমসিপি ক্লায়েন্টদের জন্য প্রদানকারীর মডিউল সঙ্গে।

  • Azure খোলা
  • ডোকার মডেল
  • Azure এআই ফাউন্ড্রি স্থানীয়
  • GitHub মডেল
  • অলিমা


অনুভূতি স্বাধীনভাবে কোড বেস এবংআরো সরবরাহকারীদের প্রস্তাব.


Streamable HTTP সঙ্গে MCP ক্লায়েন্ট সেট আপ করুন

MCP সার্ভারগুলির সাথে যোগাযোগ করার জন্য, Llamaindex.TS ব্যবহার না করে, আমরা ব্যবহার করে একটি কাস্টম বাস্তবায়ন লিখতে পারিStreamableHTTPClientTransportকার্যকর, স্বীকৃত এবং স্ট্রিমিং যোগাযোগের জন্য।


// filepath: src/api/src/mcp/mcp-http-client.ts
import EventEmitter from 'node:events';
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

export class MCPClient extends EventEmitter {
  private client: Client;
  private transport: StreamableHTTPClientTransport;

  constructor(serverName: string, serverUrl: string, accessToken?: string) {
    this.transport = new StreamableHTTPClientTransport({
      url: serverUrl,
      headers: accessToken ? { Authorization: `Bearer ${accessToken}` } : {},
    });
    this.client = new Client(serverName, this.transport);
  }

  async connect() {
    await this.client.initialize();
  }

  async listTools() {
    return this.client.listTools();
  }

  async callTool(name: string, toolArgs: any) {
    return this.client.callTool(name, toolArgs);
  }

  async close() {
    await this.client.closeGracefully();
  }
}

Best Practice:সবসময় অতিক্রমAuthorizationনিরাপদ অ্যাক্সেসের জন্য হেডার, উপরের মত।

ম্যানুয়ালভাবে একটি MCP টুল কল

ধরা যাক আপনি MCP সার্ভার থেকে গন্তব্য সুপারিশগুলি পেতে চান:

import { MCPClient } from '../../mcp/mcp-http-client';

const DESTINATION_SERVER_URL = process.env.MCP_DESTINATION_RECOMMENDATION_URL!;
const ACCESS_TOKEN = process.env.MCP_DESTINATION_RECOMMENDATION_ACCESS_TOKEN;

const mcpClient = new MCPClient('destination-recommendation', DESTINATION_SERVER_URL, ACCESS_TOKEN);

await mcpClient.connect();

const tools = await mcpClient.listTools();
console.log('Available tools:', tools);

const result = await mcpClient.callTool('getDestinationsByPreferences', {
  activity: 'CULTURAL',
  budget: 'MODERATE',
  season: 'SUMMER',
  familyFriendly: true,
});
console.log('Recommended destinations:', result);

await mcpClient.close();

Tip:সবসময় সম্পদ মুক্ত করার জন্য MCP ক্লায়েন্টটি চমৎকারভাবে বন্ধ করুন।


Llamaindex.TS এর সাথে LLMs এবং MCP টুলগুলি সংগঠিত করা

এরmcpগ্রাহক থেকে@llamaindex/toolsMCP সার্ভারগুলির সাথে সংযোগ করা এবং সরঞ্জাম সংজ্ঞাগুলি দৈনন্দিনভাবে পুনরুদ্ধার করা সহজ করে তোলে।mcpপ্রতিটি MCP সার্ভারের জন্য সরঞ্জামগুলি সংগ্রহ এবং এজেন্ট তৈরি করুন।


এখানে একটি উদাহরণ যা একটিmcpServerConfigObject হতে পারে:

const mcpServerConfig = {
  url: "http://localhost:5007", // MCP server endpoint
  accessToken: process.env.MCP_ECHO_PING_ACCESS_TOKEN, // Secure token from env
  name: "echo-ping", // Logical name for the server
};


আপনি এই কনফিগার ব্যবহার করতে পারেন।mcpগ্রাহক :

import { mcp } from "@llamaindex/tools";
import { agent, multiAgent, ToolCallLLM } from "llamaindex";

// ...existing code...

const mcpServerConfig = mcpToolsConfig["echo-ping"].config;
const tools = await mcp(mcpServerConfig).tools();
const echoAgent = agent({
  name: "EchoAgent",
  systemPrompt:
    "Echo back the received input. Do not respond with anything else. Always call the tools.",
  tools,
  llm,
  verbose,
});
agentsList.push(echoAgent);
handoffTargets.push(echoAgent);
toolsList.push(...tools);

// ...other code...

const travelAgent = agent({
  name: "TravelAgent",
  systemPrompt:
    "Acts as a triage agent to determine the best course of action for the user's query. If you cannot handle the query, please pass it to the next agent. If you can handle the query, please do so.",
  tools: [...toolsList],
  canHandoffTo: handoffTargets
    .map((target) => target.getAgents().map((agent) => agent.name))
    .flat(),
  llm,
  verbose,
});
agentsList.push(travelAgent);

// Create the multi-agent workflow
return multiAgent({
  agents: agentsList,
  rootAgent: travelAgent,
  verbose,
});

আপনি এই প্যাটার্নটি পুনরাবৃত্তি করতে পারেন একটি মাল্টি-এজেন্ট ওয়ার্কফ্লো তৈরি করতে, যেখানে প্রতিটি এজেন্টটি MCP সার্ভার থেকে রানটাইমে আবিষ্কার করা সরঞ্জামগুলির দ্বারা চালিত হয়।পূর্ণ উদাহরণ.


তারপর আপনি এই এলএলএম ইনস্টিটিউটটি ব্যবহার করতে পারেন MCP সরঞ্জামগুলির কলগুলি, যেমন পথ পরিকল্পনা বা গন্তব্য সুপারিশ করার জন্য।


নিরাপত্তা বিবেচনা

  • সবসময় অ্যাক্সেস টোকেন এবং নিরাপদ হেডার ব্যবহার করুন।
  • কখনোই হার্ডকোড গোপনীয়তা ব্যবহার করবেন না; পরিবেশ পরিবর্তন এবং গোপন ম্যানেজার ব্যবহার করুন।

কমিউনিটিতে যোগ দিন:

আমরা আপনাকে আপনার অভিজ্ঞতা ভাগ করতে, প্রশ্ন জিজ্ঞাসা করতে এবং সমর্থন পেতে আমাদের Azure AI Foundry ডেভেলপার সম্প্রদায়ের সাথে যোগ দিতে উৎসাহিত করি:

  • aka.ms/foundry/discord বাস্তব সময়ে আলোচনা এবং সহায়তা জন্য আমাদের Discord সম্প্রদায়ের সাথে যোগ দিন।
  • aka.ms/foundry/forum - প্রশ্ন করতে এবং আপনার জ্ঞান ভাগ করতে আমাদের Azure AI Foundry ডেভেলপার ফোরামে যান।

উপসংহার

MCP এর স্ট্রিমেবল HTTP ট্রান্সপোর্টের সাথে llamaindex.TS সংযুক্ত করে, আপনি TypeScript-এ শক্তিশালী, নিরাপদ এবং স্কেলযোগ্য AI ওয়ার্কফ্লোজ অর্গানাইজ করতে পারেন. Azure AI Travel Agents প্রকল্পটি আপনার নিজস্ব অর্গানাইজার তৈরি করার জন্য একটি শক্তিশালী টেমপ্লেট প্রদান করে।


References:

  • ডকুমেন্টেশন llamaindex.TS
  • MCP Streamable HTTP স্পেক
  • Azure AI ভ্রমণ এজেন্ট নমুনা


Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks