মুখ্য সামগ্ৰীৰ পৰা এৰাই চাওক
LANGCHAIN একত্ৰিতকৰণ

LangChain পেমেণ্ট একত্ৰিতকৰণ।

যিকোনো LangChain এজেন্টলৈ USDC পেমেন্ট যোগ কৰক। বাস্তৱ Python পেকেজে ইয়াক ৱালেট টুল - পঠিয়াব, সমাধান কৰক, আৰু পঢ়ক - কেইটামান লাইনৰ ভিতৰত দিয়ে।

ছোট উত্তৰ

Blockchain0x এ এটা বাস্তৱ Python package, , প্ৰদান কৰে, যিয়ে এটা LangChain agentক native wallet tool দিয়ে: Base ত USDC পঠিয়াওক, on-chain proofৰে invoice settle কৰক, আৰু wallet আৰু transaction পঢ়ক। ইয়াক install কৰক, set কৰক, call কৰক, আৰু toolসমূহ আপোনাৰ agentক দিয়ক। TypeScriptত? কোনো npm adapter নাই - x402 clientক এটা LangChain.js toolত wrap কৰক।

WRAPPER কিয় আছে

Blockchain0x HTTP APIৰ ওপৰত এটা পাত্ৰ পাতল স্তৰ।

blockchain0x-langchainৰ প্ৰতিটো টুল হৈছে চৰকাৰী blockchain0x মূল SDKৰ ওপৰত এটা চিকন ৰেপাৰ। কোনো পুনঃবাস্তৱায়িত REST বা x402 যুক্তি নাই, কোনো চাবি কাষ্টডি নাই: এডাপ্টাৰ আপোনাৰ API চাবি পিছৰ পৃষ্ঠলৈ আগবঢ়ায় আৰু নিজৰ কোনো গোপনীয়তা ৰাখে। create_blockchain0x_toolset(client) LangChainক পাঁচটা টুল প্ৰদান কৰে - এটা পেমেন্ট পঠিয়াব, এটা ইনভয়চ সমাধান কৰিব, এটা ৱালেট পঢ়িব, ৱালেটৰ তালিকা, এটা লেনদেন পঢ়িব - প্ৰতিটো ইতিমধ্যে টাইপ কৰা আৰু সীমাবদ্ধ।

আপুনি যদি ইচ্ছা কৰে তেন্তে কাঁচা API বা মূল SDK সোজাকৈ কল কৰিব পাৰে। এডাপ্টৰ হৈছে সৰ্বনিম্ন বাধাৰ পথ; API হৈছে চুক্তি। blockchain0x-langchain ক langchain-core ৰেঞ্জত পিন কৰক যি সি সমৰ্থন কৰে, দুয়োটাৰ নতুনতমৰ পিছত দৌৰাৰ সলনি।

স্থাপন

এখন ইনষ্টল। এখন পৰিবেশ ভেৰিয়েবল। প্রস্তুত।

পেকেজটোৰ Python 3.9 বা নতুনৰ প্ৰয়োজন। ই মূল blockchain0x SDK আৰু langchain-coreক নিৰ্ভৰশীলতা হিচাপে আনে; আন কিছু যোগ কৰিবলৈ নাই।

স্থাপন কৰক
pip install blockchain0x-langchain
পৰিবেশ চলকসমূহ
export BLOCKCHAIN0X_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet

BLOCKCHAIN0X_API_KEY হৈছে আপোনাৰ Blockchain0x ডেছব'ৰ্ডৰ পৰা sk_test_ testnet বা sk_live_ mainnet চাবি। ইয়াই একমাত্ৰ চলক যি এডাপ্টাৰে প্ৰয়োজন; ইয়াক বেকএণ্ডলৈ আগবঢ়ায় আৰু নিজৰ কোনো গোপনীয়তা ৰাখে। তলত দেখুওৱা webhook হেণ্ডলাৰৰ বাবে আপুনি BLOCKCHAIN0X_WEBHOOK_SECRETও স্থাপন কৰে, যি ডেছব'ৰ্ডে আপোনাৰ webhook সৃষ্টি বা ঘূৰাই দিলে একবাৰ মাক কৰে।

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

এখন কাম কৰি থকা LangChain এজেন্ট যাৰ পেমেন্ট সমৰ্থন আছে।

তলত Pythonত এটা সম্পূৰ্ণ LangChain এজেন্ট আছে। create_blockchain0x_toolset ৱালেট টুলসমূহ উভতি দিয়ে, create_react_agent সিহঁতক ReAct লুপত সংযোগ কৰে, আৰু মডেলটোৱে প্ৰম্পটৰ পৰা সঠিক টুল বাচে। BLOCKCHAIN0X_API_KEY স্থাপন কৰক, ইয়াক চলাও, আৰু এজেন্টে Baseত USDC স্থানান্তৰ আৰু পঢ়িব পাৰে।

AGENT.PY
from blockchain0x import Client
from blockchain0x_langchain import create_blockchain0x_toolset
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent

client = Client()  # reads BLOCKCHAIN0X_API_KEY from the environment
tools = create_blockchain0x_toolset(client)

llm = ChatOpenAI(model="gpt-4o")
agent = create_react_agent(llm, tools)

result = agent.invoke({
    "messages": [{
        "role": "user",
        "content": "Pay 0.01 USDC from my agent to 0xRecipient for the dataset.",
    }],
})

Run it with the prompt above and the model picks the send-payment tool, the SDK submits the transfer on Base, and you get a transaction hash back. amount_wei is USDC base units (6 decimals), so 0.01 USDC is the string "10000". A sk_test_ key keeps you on Base Sepolia until you switch to sk_live_. Heads up: payments.create can answer 503 until the chain adapter is wired for your network.

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

ব্যৱহাৰকাৰী পেমেন্ট কৰাৰ পিছত কি ঘটে।

আপোনাৰ এজেণ্টৰ webhook URL (Blockchain0x ডেছব'ৰ্ডত নিৰ্ধাৰিত) পেমেন্ট স্থিৰ হ'লে এখন POST গ্ৰহণ কৰে। webhook verify সহায়ক Node SDK ত আছে, সেয়ে এই হেণ্ডলাৰটো TypeScript হৈছে যদিও আপোনাৰ এজেণ্টটো Python। তলত এখন Express হেণ্ডলাৰ আছে যিয়ে চিহ্নিতকৰণ পৰীক্ষা কৰে আৰু পেইড কাম চলায়। যিকোনো HTTP ফ্ৰেমৱৰ্কত একে ধৰণৰ প্যাটাৰ্ন ব্যৱহাৰ কৰক।

WEBHOOK-HANDLER.TS
import express from "express";
import { webhooks } from "@blockchain0x/node";

const app = express();
// Capture the RAW body. The HMAC is over the exact bytes on the wire.
app.use(express.raw({ type: "application/json" }));

app.post("/webhooks/payment", (req, res) => {
  const result = webhooks.verify({
    headers: req.headers,
    rawBody: req.body, // Buffer, raw bytes
    secret: process.env.BLOCKCHAIN0X_WEBHOOK_SECRET!,
  });
  if (!result.ok) return res.status(400).json({ code: result.code });

  if (result.eventType === "payment.received") {
    // USDC landed in your agent wallet - do the paid work
  }
  res.status(200).send("ok");
});

webhooks.verify HMAC-SHA256 নিৰন্তৰ সময়ত কৰে আৰু এটা বাচনি কৰা ইউনিয়ন উলিয়ায়, সেয়ে আপুনি result.ok ত কোনো চেষ্টা/ধৰা নকৰাকৈ শাখা কৰে আৰু result.eventType পঢ়ে। কাঁচা শৰীৰ পঢ়ক, এটা বিশ্লেষিত কপি নহয়: বিশ্লেষণ কৰাৰ পাছত পুনৰ-সিরিয়ালাইজেশন চিহ্নটো ভাঙে। পঠোৱা ঘটনাসমূহ হৈছে payment.received, payment.sent, wallet.deployed, আৰু webhook.test; আপোনাৰ এজেণ্টলৈ এখন ইনবাউণ্ড চাৰ্জ হৈছে payment.received।

TYPESCRIPT? X402 ক্লায়েন্টক মুড়ি দিয়ক

কোনো npm LangChain এডাপ্টাৰ নাই। ইয়াত সৎ ৰেচিপি।

পঠিওৱা LangChain এডাপ্টাৰটো কেৱল পাইথনৰ বাবে। npm ত LangChain এডাপ্টাৰ নাই। এটা TypeScript LangChain বা LangGraph এজেন্টৰ বাবে, আপুনি বাস্তৱ x402 ক্লায়েন্টটো LangChain.js টুলত নিজে মুঠ কৰে। ই কেইটামান লাইন, আৰু ই একেবাৰে সেইটো যি এটা বিশেষ এডাপ্টাৰে আৱৰণৰ তলত কৰিব।

PAY-TOOL.TS
import { createClient } from "@blockchain0x/node";
import { createX402Client } from "@blockchain0x/x402/client";
import { tool } from "@langchain/core/tools";
import { z } from "zod";

const sdk = createClient({ apiKey: process.env.BLOCKCHAIN0X_API_KEY! });
const fetchWithPay = createX402Client({ sdk });

// There is no npm LangChain adapter. Wrap the x402 client in a LangChain.js tool.
export const payAndFetch = tool(
  async ({ url }) => (await fetchWithPay(url)).text(),
  {
    name: "pay_and_fetch",
    description: "Fetch a URL, answering any x402 payment challenge automatically",
    schema: z.object({ url: z.string().url() }),
  },
);

উৎস আৰু টেষ্টনেট উদাহৰণসমূহ Python SDK ৰেপোত থাকে; SDK সমৰ্থন মেট্ৰিক্স ডক্সত আছে। Python ধোঁৱা উদাহৰণে Base Sepoliaত $0.01 USDC স্থানান্তৰ প্ৰেৰণ কৰে LangChain টুলে যি একে send-payment কাৰ্যৰ সৈতে মোড়ে।

সাধাৰণ বিপদ

প্ৰথম একীকৰণত সমস্যা সৃষ্টি কৰা পাঁচটা কথা।

এইবোৰ আমাৰ সমৰ্থন ইনবক্সৰ পৰা আহে। ইয়াৰ ভিতৰত কোনোবোৰ চুক্তি-ভাঙি নাযায়, কিন্তু আগতীয়াকৈ জানিলে প্ৰতিটোতে এক ঘণ্টাৰ মাথা-চুলা বাচে।

PITFALL 1

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

The payment tools take amount_wei: a string of USDC base units, not a float and not a dollar figure. USDC has 6 decimals, so 0.01 USDC is "10000" and 5 USDC is "5000000". Always pass a string; large integers lose precision as JSON numbers. Send "5.00" and you will either get a validation error or move a millionth of what you meant.

PITFALL 2

বিলৰ সঁজুলি সমাধান কৰে, সেয়া সৃষ্টি নকৰে

blockchain0x_settle_invoice এটা বিদ্যমান পেমেন্ট অনুৰোধক অন-চেইন প্ৰমাণৰ সৈতে স্থিৰ কৰে। এটা নতুন ইনভইচ বা হোস্ট কৰা চেকআউট লিংক সৃষ্টি কৰা কোনো টুল নাই: পেমেন্ট অনুৰোধসমূহ ডেছব'ৰ্ডত সৃষ্টি কৰা হয়, আৰু মূল SDK ত মাত্ৰ স্থিৰতা প্ৰকাশ কৰে। যদি আপুনি আশা কৰিছিল যে এজেণ্টে তাত্ক্ষণিকভাৱে এখন পেমেন্ট লিংক সৃষ্টি কৰিব, তেন্তে সেয়া আকাৰ নহয়। অনুৰোধটো আউট অফ বেণ্ডত সৃষ্টি কৰক, তাৰপিছত এজেণ্টক ইয়াক স্থিৰ কৰিবলৈ দিয়ক।

PITFALL 3

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

ৱেবহুকসমূহ আপোনাৰ URLলৈ POST কৰে, আৰু যিজনেই সেই URLটো জানে সি জাঙ্ক POST কৰিব পাৰে। আপুনি যেতিয়া এটা ঘটনাত বিশ্বাস কৰে, তেতিয়া RAW অনুৰোধ বাইটসমূহৰ ওপৰত @blockchain0x/nodeৰ পৰা webhooks.verify চলাব। প্ৰথমে JSONটো বিশ্লেষণ কৰক আৰু HMAC মিলা নকৰিব, কাৰণ স্বাক্ষৰটো ঠিক যি বাইটসমূহ আহিছিল সেয়া আৱৰি থাকে। ই HMAC-SHA256 হৈছে 300-ছেকেণ্ডৰ পুনৰ খেলা জাননীৰ সৈতে। ইয়াক এৰি দিয়া হৈছে আটাইতকৈ সাধাৰণ উৎপাদন মিছ।

PITFALL 4

send_payment আগতীয়াকৈ 503 উলিয়াব পাৰে

payments.create, যি blockchain0x_send_payment ৰেপ কৰে, ডিফল্টৰূপে পুনৰ চেষ্টা নকৰে আৰু আপোনাৰ নেটৱৰ্কৰ বাবে চেইন এডাপ্টৰ সংযোগ কৰা নহওঁতে 503 উলিয়াব পাৰে। LLMক ত্ৰুটিত পুনৰ চেষ্টা লুপত টুলটোত আঘাত কৰিবলৈ দিয়াৰ সলনি: ই টোকেন জ্বলাই দিয়ে আৰু আপোনাৰ উদ্দেশ্য লগটো মুদ্ৰা কৰে। অন্তৰ্নিহিত idempotency চাবিৰ ওপৰত নিৰ্ভৰ কৰক, বিফলত উঠি আহক, আগবাঢ়ি যাওক।

PITFALL 5

langchain-core সংস্কৰণৰ সৈতে মেল খাওক

blockchain0x-langchain 0.1.x langchain-core >=0.2,<0.4 লৈ লক্ষ্য কৰে। যদি আপুনি এডাপ্টাৰে সমৰ্থন কৰা নতুন কোৰত থাকে, তেন্তে দুয়োটা নতুনৰ পিছত ধৰা দিবলৈ সলনি মিল থকা জোড়টো পিন কৰক। সমৰ্থন মেট্ৰিক্স ডক্সত থাকে।

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

এটা লেংচেইন-নির্দিষ্ট তিনিটা প্ৰশ্ন।

মোৰ এজেন্ট USDC গ্ৰহণ কৰিব পাৰেনে, কেৱল পঠিয়াবলৈ নহয়?

হয়, দুটা উপায়। নিষ্ক্রিয়ভাৱে: আপোনাৰ এজেণ্টৰ এটা ৱালেট ঠিকনা আৰু এটা জনসাধাৰণ পৃষ্ঠা আছে, সেয়ে যিকোনো লোকে ইয়াক পেমেন্ট কৰিব পাৰে আৰু চেইন স্থিৰ হ'লে payment.received ৱেবহুক প্ৰেৰণ কৰে। সক্ৰিয়ভাৱে: blockchain0x_settle_invoiceএ আপোনাৰ ডেছব’ৰ্ডত সৃষ্টি কৰা এটা পেমেন্ট অনুৰোধ স্থিৰ কৰে আৰু চেইনত প্ৰমাণ ৰেকৰ্ড কৰে। যি বস্তু নাই সেয়া হৈছে এটা টুল যি এজেণ্টৰ ভিতৰত এটা নতুন ইনভইচ বা হোস্ট কৰা লিংক মিণ্ট কৰে। ডেছব’ৰ্ডত অনুৰোধ সৃষ্টি কৰক, এজেণ্টটোক ইয়াক স্থিৰ কৰিবলৈ দিয়ক। বহুতো ছেটআপে দুয়োটা ব্যৱহাৰ কৰে: টিপৰ বাবে জনসাধাৰণ পৃষ্ঠা, নিৰ্দিষ্ট ইনভইচৰ বাবে স্থিৰ টুল।

এইটো LangGraphৰ সৈতে কাম কৰে নে?

হয়। create_blockchain0x_toolset মানক LangChain টুলসমূহ উভতি দিয়ে, সেয়ে সিহঁত create_react_agent (উপৰ দেখুওৱা), AgentExecutor, বা যিকোনো LangGraph নোডত যিয়ে বাৰ্তা ব্যৱহাৰ কৰে, আৰু checkpointing আৰু human-in-the-loop ৰ সৈতে মিলিত হয়। এই হৈছে Python ৰ কাহিনী। যদি আপোনাৰ LangGraph এজেণ্ট হৈছে TypeScript, তেন্তে কোনো npm এডাপ্টাৰ নাই: createX402Client (অথবা @blockchain0x/node ক্লায়েন্ট) ক LangChain.js টুলত মুড়ি দিয়ক, যেনে উপৰোক্ত TypeScript ৰেচিপি।

কোন কোন চেইন আৰু টোকেন সমৰ্থিত হৈছে?

Base mainnet (sk_live_ কী) আৰু Base Sepolia টেষ্টনেট (sk_test_ কী), 6 দশমিকৰ সৈতে USDCত সমাধান কৰা। আজিৰ বাবে এইটো সম্পূৰ্ণ লাইভ পৃষ্ঠাসমূহ: এটা চেইন পৰিয়াল, এটা টোকেন। অন্যান্য চেইনসমূহ ৰোডমেপত আছে, সক্ৰিয় নহয়, সেয়ে এতিয়ালৈকে ইয়াৰ চাৰিওপিনে ডিজাইন নকৰিব। কী প্ৰিফিক্সে আপোনাৰ বাবে নেটৱৰ্ক বাচে, আৰু sk_test_ কী মেইননেটৰ তহবিল স্থানান্তৰ কৰিব নোৱাৰে, যি আপোনাৰ নিৰ্মাণৰ সময়ত আপোনাৰ প্ৰয়োজন।

পেমেন্টসমূহ আপোনাৰ LangChain এজেন্টত সংযোগ কৰক।

pip ইনষ্টলৰ পৰা আপোনাৰ প্ৰথম পেইড অনুৰোধলৈ মিনিটৰ ভিতৰত। আৰম্ভ কৰিবলৈ বিনামূল্যে।