মুখ্য সামগ্ৰীৰ পৰা এৰাই চাওক
সেমাণ্টিক কৰ্ণেল ইন্টিগ্ৰেচন

Semantic Kernel পেমেন্ট ইন্টিগ্ৰেশন।

কোনো Semantic Kernel পেকেজৰ প্ৰয়োজন নাই। বাস্তৱ blockchain0x ক্লায়েন্টক এখন KernelFunction (Python বা Java)ত মুড়ি দিয়ক, অথবা C# KernelFunctionৰ পৰা REST APIক কল কৰক। যিকোনো পথত এজেন্টে Baseত USDC স্থানান্তৰ কৰে।

ছোট উত্তৰ

Semantic Kernel পেকেজ নাই। পাইথনত আপুনি বাস্তৱ blockchain0x ক্লায়েন্টটো @kernel_functionৰ সৈতে সজোৱা এটা পদ্ধতিত মুঠ কৰে; C# ত, য'ত কোনো .NET SDK পঠিওৱা নহয়, এটা [KernelFunction] REST APIক সোজাকৈ কল কৰে। ইয়াক আপোনাৰ কৰ্ণেলত ৰেজিষ্টাৰ কৰক, FunctionChoiceBehaviorক Auto ত স্থাপন কৰক, আৰু এজেন্ট Base ত USDC স্থানান্তৰ কৰিব পাৰে। পঠিওৱা মূল SDK সমূহ হৈছে Node, Python, Ruby, Go, আৰু JVM।

SEMANTIC KERNEL কিয়

একমাত্ৰ উদ্যোগ-মানৰ .NET এজেন্ট ফ্ৰেমৱৰ্ক।

যদি আপোনাৰ ষ্টেক Microsoft-আকৃতিত (Azure, .NET, SQL Server, Teams, Copilot Studio) হয়, তেন্তে Semantic Kernel প্ৰায় নিশ্চিতভাৱে সঠিক এজেণ্ট ফ্ৰেমৱৰ্ক। ই Microsoftৰ দ্বাৰা নিৰ্মিত, ই Azure OpenAI, AKS, আৰু Entraৰ সৈতে একত্ৰিত হয়, আৰু ই .NET, Python, আৰু Javaৰ মাজত প্ৰথম-শ্ৰেণীৰ সমৰ্থন প্ৰদান কৰে যি অন্য কোনো ফ্ৰেমৱৰ্কৰ সৈতে মিলে। আৰু ই ইতিমধ্যে আপোনাক যি প্ৰয়োজন তাত প্ৰদান কৰে: এটা KernelFunction মাত্ৰ এটা পদ্ধতি, সেয়ে পেমেন্টৰ সংযোগ কৰাটো এটা পদ্ধতি যি আপুনি লিখে, এটা পেকেজ নহয় যাৰ বাবে আপুনি অপেক্ষা কৰে।

সেয়া হৈছে কিয় Semantic Kernel এডাপ্টাৰ ইনষ্টল কৰিবলৈ নাই। Python আৰু Javaত আপুনি বাস্তৱ blockchain0x SDKক KernelFunctionত মুড়ি দিয়ে; C#ত, য'ত কোনো .NET SDK এতিয়ালৈকে নাহে, KernelFunctionয়ে REST APIক HttpClientৰ সৈতে সোজাকৈ কল কৰে। আপুনি বাচলিক আৰগনমিক্স বজাই ৰাখে - সজীৱ পদ্ধতি, async, গুণ-ভিত্তিক পেৰামিটাৰ ভেলিডেশ্বন - আৰু কোনো এডাপ্টাৰ সংস্কৰণৰ পৰ্যবেক্ষণ কৰিবলৈ নাই। আজিৰ দিনত থকা মূল SDKসমূহ হৈছে Node, Python, Ruby, Go, আৰু JVM।

স্থাপন

Semantic Kernel ইনষ্টল কৰক আৰু, Pythonত, মূল SDK।

যোগ কৰিবলৈ blockchain0x Semantic Kernel পেকেজ নাই। পাইথন Semantic Kernelৰ লগতে বাস্তৱ blockchain0x SDK স্থাপন কৰে; C# Microsoft.SemanticKernel স্থাপন কৰে আৰু বিল্ট-ইন HttpClientৰ সৈতে REST APIক কল কৰে। জাভা Javaৰ বাবে Semantic Kernel ব্যৱহাৰ কৰে আৰু com.blockchain0x:sdk-jvm SDK।

স্থাপন কৰক - PYTHON
pip install semantic-kernel blockchain0x
INSTALL - .NET (Semantic Kernel মাত্ৰ)
dotnet add package Microsoft.SemanticKernel
পৰিবেশ চলকসমূহ
BLOCKCHAIN0X_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet
BLOCKCHAIN0X_API_KEY=sk_test_...             # same key, the name the .NET REST example reads
OPENAI_API_KEY=sk-...

BLOCKCHAIN0X_API_KEY (Python ক্লায়েন্টে ইয়াক পঢ়ে) আপোনাৰ ডেছব'ৰ্ডৰ পৰা sk_test_ testnet বা sk_live_ mainnet চাবি; C# REST উদাহৰণে BLOCKCHAIN0X_API_KEYৰ পৰা একেই মূল্য পঢ়ে। OPENAI_API_KEY (অথবা Azure-আবাসিত মডেলৰ বাবে AZURE_OPENAI_*) হৈছে আপোনাৰ LLM চাবি। Webhook হেণ্ডলাৰ লগতে BLOCKCHAIN0X_WEBHOOK_SECRETৰ প্ৰয়োজন।

সম্পূৰ্ণ এজেন্ট উদাহৰণসমূহ

এখন ৱালেট KernelFunction, Python আৰু C# ত।

Python বাস্তৱ blockchain0x ক্লায়েন্টক @kernel_functionৰে সজ্জিত এক পদ্ধতিত আবৰি ৰাখে। C#, য'ত কোনো .NET SDK নাহে, এটা [KernelFunction] উন্মোচন কৰে যি POST /v1/paymentsক HttpClientৰ সৈতে সোজাকৈ কল কৰে। দুয়োটা কৰ্ণেলত Wallet.send_usdc হিচাপে পঞ্জীয়ন হয়; কেৱল চাৰিওকাষৰ অনুষ্ঠান ভিন্ন।

PYTHON (plugin.py)
from semantic_kernel import Kernel
from semantic_kernel.functions import kernel_function
from blockchain0x import Client

blockchain0x = Client()  # reads BLOCKCHAIN0X_API_KEY from the environment

class WalletPlugin:
    @kernel_function(description="Send a USDC payment from an agent wallet.")
    def send_usdc(self, agent_id: str, to: str, amount_wei: str) -> str:
        # amount_wei is USDC base units (6 decimals): "10000" = 0.01 USDC
        return str(
            blockchain0x.payments.create(body={"agentId": agent_id, "to": to, "amountWei": amount_wei})
        )

kernel = Kernel()
kernel.add_plugin(WalletPlugin(), plugin_name="Wallet")
# Add your chat service, then let the model call Wallet.send_usdc.
.NET (WalletPlugin.cs)
using System.ComponentModel;
using System.Net.Http.Json;
using Microsoft.SemanticKernel;

// There is no .NET SDK, so a C# KernelFunction calls the REST API directly.
public class WalletPlugin
{
    private static readonly HttpClient Http = new()
    {
        BaseAddress = new Uri("https://api.blockchain0x.com"),
    };

    [KernelFunction, Description("Send a USDC payment from an agent wallet. amountWei is USDC base units (6 decimals).")]
    public async Task<string> SendUsdc(string agentId, string to, string amountWei)
    {
        Http.DefaultRequestHeaders.Authorization =
            new("Bearer", Environment.GetEnvironmentVariable("BLOCKCHAIN0X_API_KEY"));
        var res = await Http.PostAsJsonAsync("/v1/payments", new { agentId, to, amountWei });
        return await res.Content.ReadAsStringAsync();
    }
}

// builder.Plugins.AddFromType<WalletPlugin>("Wallet");

Register the function on the kernel, set FunctionChoiceBehavior to Auto, and when the user's message implies a payment the model calls Wallet.send_usdc with the agent id, recipient, and amount. amountWei is base units, so 0.01 USDC is "10000". The Python path returns the SDK result; the C# path returns the REST response body.

ৱেবহুক হেণ্ডলিং

পেমেন্ট ইভেন্ট গ্ৰহণৰ বাবে ASP.NET Core মিনিমেল API।

যেতিয়া এটা পেমেন্ট স্থিৰ হয়, Blockchain0x আপোনাৰ ৱেবহুক URLলৈ এটা স্বাক্ষৰিত ঘটনা POST কৰে। কোনো প্ৰেৰণ কৰা .NET পৰীক্ষক নাই, সেয়ে হেণ্ডলাৰে নথিভুক্ত HMACৰ বিৰুদ্ধে হাতৰ দ্বাৰা পৰীক্ষা কৰে - যি হৈছে সহায়কৰ সকলো কাম। তলত .NET উদাহৰণ; Python আৰু Java একে ভাবে নিজৰ HMAC লাইব্ৰেৰীৰ সৈতে পৰীক্ষা কৰে।

WEBHOOK.CS
using System.Security.Cryptography;
using System.Text;
using Microsoft.AspNetCore.Builder;

var app = WebApplication.CreateBuilder(args).Build();
var secret = Environment.GetEnvironmentVariable("BLOCKCHAIN0X_WEBHOOK_SECRET")!;

app.MapPost("/webhooks/payment", async (HttpRequest req) =>
{
    using var reader = new StreamReader(req.Body);
    var raw = await reader.ReadToEndAsync(); // RAW body - verify before parsing
    var sig = req.Headers["X-Blockchain0x-Signature"].ToString();
    var ts = req.Headers["X-Blockchain0x-Timestamp"].ToString();

    var parts = sig.Split(',').Select(p => p.Split('=', 2))
        .Where(p => p.Length == 2).ToDictionary(p => p[0], p => p[1]);
    var t = parts.GetValueOrDefault("t", ts);
    var v1 = parts.GetValueOrDefault("v1", sig);

    var want = Convert.ToHexString(new HMACSHA256(Encoding.UTF8.GetBytes(secret))
        .ComputeHash(Encoding.UTF8.GetBytes($"{t}.{raw}"))).ToLowerInvariant();
    var fresh = Math.Abs(DateTimeOffset.UtcNow.ToUnixTimeSeconds() - long.Parse(t)) <= 300;
    if (!fresh || !CryptographicOperations.FixedTimeEquals(
            Encoding.UTF8.GetBytes(want), Encoding.UTF8.GetBytes(v1)))
        return Results.Unauthorized();

    if (req.Headers["X-Blockchain0x-Event-Type"] == "payment.received")
        await RunFollowupAsync(); // USDC landed - do the next step
    return Results.Ok();
});

app.Run();

এলগৰিদমটো HMAC-SHA256 হৈছে t.rawBodyৰ ওপৰত, 300-ছেকেণ্ডৰ পুনৰ খেলা জাননী, আৰু এটা ধ্ৰুৱক-সময় তুলনা। স্বাক্ষৰ অক্ষত থাকিবলৈ StreamReaderৰ জৰিয়তে কাঁচা বডী পঢ়ক; পুনৰ-ডিছাৰিয়েলাইজ নকৰিব। পঠিওৱা ইভেন্টসমূহ হৈছে payment.received, payment.sent, wallet.deployed, আৰু webhook.test। উৎপাদনত ৱেবহুক প্ৰায়েই এজেণ্টৰ সৈতে এটা ডেটাবেছ ভাগ কৰা পৃথক ASP.NET Core সেৱা হিচাপে চলে যাতে দুয়োটা সমন্বয় কৰিব পাৰে।

সূত্ৰ আৰু ডক্স

SDKসমূহ আৰু REST পৃষ্ঠতল খোলা। সিহঁত পঢ়ক।

ছেমাণ্টিক কাৰ্ণেল ষ্টাৰ্টাৰ পেকেজ ক্লোন কৰিবলৈ নাই - ওপৰৰ ৰেচিপসমূহ হৈছে একীকৰণ। blockchain0x মূল SDKসমূহ (Node, Python, Ruby, Go) GitHubত খুলি আছে, আৰু তেওঁলোকৰ পদ্ধতি পৃষ্ঠাৰ লগতে REST ৰাউটসমূহ যি C# উদাহৰণ কল কৰে সেয়া ডক্সত নথিভুক্ত কৰা হৈছে।

docs.blockchain0x.com/docs/overview

SDK পদ্ধতি পৃষ্ঠ আৰু REST ৰুটসমূহ ডক্সসমূহত নথিভুক্ত কৰা হৈছে। Base Sepoliaৰ বিৰুদ্ধে sk_test_ চাবিৰ সৈতে আৰম্ভ কৰক, তাৰপিছত KernelFunction আপোনাৰ আশা কৰা কাম কৰিলে sk_live_লৈ সলনি কৰক।

সাধাৰণ বিপদ

পাঁচটা Semantic Kernel-নির্দিষ্ট ফাঁদ যিবোৰ এৰাব লাগে।

Semantic Kernel ৰ প্লাগিন মডেলটো পৰিষ্কাৰ কিন্তু ভাষাৰ মাজত আৰু ব্যৱহাৰৰ ডিফল্ট সমস্যা আছে। সিহঁতক আগতীয়াকৈ জানিলে সময় বাচে।

PITFALL 1

কোনো ভাষাত Semantic Kernel পেকেজ নাই

NuGet, PyPI, বা Maven এডাপ্টাৰ নাই। পঠিওৱা মূল SDK সমূহ হৈছে Node, Python, Ruby, Go, আৰু JVM - .NET নহয়। সেয়ে এটা পাইথন কৰ্ণেল blockchain0x পাইথন ক্লায়েন্টটো @kernel_functionত মুঠ কৰে, এটা জাভা কৰ্ণেল com.blockchain0x:sdk-jvm SDK ব্যৱহাৰ কৰে, আৰু এটা C# কৰ্ণেল REST APIক সোজাকৈ KernelFunction (ওপৰত দেখুওৱা)ৰ পৰা কল কৰে। এই তিনিও কেইটামান লাইন।

PITFALL 2

FunctionChoiceBehavior স্বয়ংক্ৰিয় হ'ব লাগিব

সেমাণ্টিক কৰ্ণেল মাত্ৰ তেতিয়া প্লাগিন ফাংশনসমূহক আহ্বান কৰে যেতিয়া FunctionChoiceBehavior প্ৰম্পট-কাৰ্য্যৰ ছেটিংছত Autoত স্থাপন কৰা হয়। ডিফল্ট হৈছে None, সেয়ে মডেলটি আপোনাৰ ৱালেট ফাংশনক কেতিয়াও কল নকৰে যেতিয়া ব্যৱহাৰকাৰী স্পষ্টভাৱে সোধে। যদি এজেন্টে সম্পূৰ্ণৰূপে ফাংশনটো উপেক্ষা কৰে, তেন্তে প্ৰথমে এইটো পৰীক্ষা কৰক।

PITFALL 3

মাত্ৰাসমূহ USDC বেছ ইউনিট, ষ্ট্ৰিং হিচাপে

The payments call takes amountWei: a string of USDC base units (6 decimals), so 0.01 USDC is "10000" and 5 USDC is "5000000". Type the function argument as a string in any language. payments.create also does not retry by default and can answer 503 until the chain adapter is wired for your network - return a clear message rather than letting the agent loop.

PITFALL 4

এজেন্টসমূহৰ মাজত প্লাগইন পৰিসৰ

খৰচৰ অধিকাৰ ৰাখিবলগীয়া এজেন্টৰ কৰ্ণেলত মাত্ৰ ৱালেট ফাংশন পঞ্জীয়ন কৰক। প্লাগিনটো বিশ্বজনীন নহয় - যাৰ কৰ্ণেলত ইয়াৰ অভাৱ আছে সেই এজেন্টে ইয়াক কল কৰিব নোৱাৰে। এজন পৰ্যালোচক এজেন্টক ৱালেট ফাংশন নথকা কৰ্ণেল দিয়ক, অথবা প্ৰতিজন এজেন্টৰ বাবে অনুমোদিত ফাংশনসমূহ সীমাবদ্ধ কৰক, যাতে ধন এটা ভূমিকা ৰাখে।

PITFALL 5

কাঁচা বডীৰ বিৰুদ্ধে ৱেবহুক পৰীক্ষা কৰক

কাঁচা অনুৰোধৰ শৰীৰ পঢ়ক আৰু ডিচেৰিয়ালাইজ কৰাৰ আগতে পৰীক্ষা কৰক - HMAC সঠিক বাইটসমূহ ঢাকিছে, সেয়ে এটা পাৰ্স-তথা-ৰিচেৰিয়ালাইজ ৰাউণ্ড ট্ৰিপে ইয়াক ভাঙে। তলৰ .NET হেণ্ডলাৰে নথিভুক্ত এলগৰিদমটো বাস্তৱায়ন কৰে: HMAC-SHA256 t.rawBodyৰ ওপৰত, 300-ছেকেণ্ডৰ উইণ্ডো, আৰু এক ধ্ৰুৱক-সময় তুলনা। Python আৰু Java তেওঁলোকৰ নিজৰ HMAC লাইব্ৰেৰীৰ সৈতে একে ধৰণে পৰীক্ষা কৰে।

সাধাৰণতে সোধা হয়

এটা ছেমাণ্টিক কৰ্ণেল-নির্দিষ্ট তিনিটা প্ৰশ্ন।

ইনষ্টল কৰিবলৈ Semantic Kernelৰ পেকেজ আছে নেকি (NuGet, PyPI, বা Maven)?

নাই। সৎ পথ আপোনাৰ ভাষাৰ ওপৰত নিৰ্ভৰ কৰে। Python Semantic Kernel বাস্তৱ blockchain0x Python ক্লায়েন্টক @kernel_functionৰ ভিতৰত মুড়ি দিয়ে, যেন উপৰোক্তত দেখুওৱা হৈছে। Java Semantic Kernel com.blockchain0x:sdk-jvm SDKক KernelFunctionৰ ভিতৰত ব্যৱহাৰ কৰে। C# আৰু অন্যান্য .NET ভাষাসমূহৰ কোনো blockchain0x SDK নাই - প্ৰেৰণ কৰা মূল SDKসমূহ হৈছে Node, Python, Ruby, Go, আৰু JVM - সেয়ে এখন .NET KernelFunction সোজাকৈ REST APIক কল কৰে, যেন উপৰোক্তত দেখুওৱা হৈছে। মাত্ৰ প্ৰেৰণ কৰা ফ্ৰেমৱৰ্ক পেকেজসমূহ হৈছে blockchain0x-langchain আৰু blockchain0x-crewai (দুয়োটা Python) আৰু @blockchain0x/mcp ছাৰ্ভাৰ।

.NET SDKত কিয় এটা গ্যাপ আছে, আৰু সেয়া কি সমস্যা?

এয়া মাত্ৰ SDK ৰোডমেপৰ অৱস্থান: Node, Python, Ruby, Go, আৰু JVM বিতৰণ, .NET এতিয়ালৈকে নহয়। ই এটা বাধা নহয়। REST API হৈছে HTTPSৰ ওপৰত সাধাৰণ JSON বেয়াৰ-টোকেন প্ৰমাণীকৰণৰ সৈতে, আৰু এটা C# KernelFunction যিয়ে POST /v1/payments (উপৰ) কল কৰে সেয়া HttpClientৰ সৈতে কেইটামান লাইনৰ। যদি প্ৰথম-শ্ৰেণীৰ .NET SDK আপোনাৰ বাবে গুৰুত্বপূর্ণ হয়, আমাক জনাব আৰু আমি ইয়াক চাহিদাৰ বিৰুদ্ধে পৰিমাপ কৰিম।

এইটো Agent Framework আৰু Microsoft 365 Copilotৰ সৈতে কাম কৰে নেকি?

হয়। ৱালেট ফাংশন হৈছে এটা সাধাৰণ Semantic Kernel ফাংশন, সেয়ে ই একক ChatCompletionAgent চলন আৰু AgentGroupChat সমন্বয়ত কাম কৰে - ইয়াক কেৱল বিলিং এজেণ্টৰ কৰ্ণেলত পঞ্জীয়ন কৰক আৰু আনবোৰক পেমেন্ট স্থিৰ হোৱাৰ পিছত কাম কৰিবলৈ দিয়ক। Microsoft 365 Copilot এক্সটেনচনসমূহ যিয়ে Semantic Kernel ৰ পিছত চলে সেয়া একে ৰূপে পঞ্জীয়ন কৰিব পাৰে; আপোনাৰ নিজৰ UI ৰ সৈতে ব্যৱহাৰকাৰীলৈ পেমেন্টটো প্ৰদৰ্শন কৰক। কোনো Copilot-নির্দিষ্ট পেকেজ নাই; ই একে ৰেচিপি।

আপোনাৰ SK এজেন্টত বিলিং যোগ কৰক।

এখন KernelFunction বাস্তৱ ক্লায়েন্ট বা REST APIৰ ওপৰত, ইনষ্টল কৰিবলৈ কোনো পেকেজ নাই। আৰম্ভ কৰিবলৈ মুক্ত।